(Verouderd) iOS/tvOS SDK Cookbook iostvos-sdk-cookbook
Inleiding intro
In dit document worden de machtigingsworkflows beschreven die de toepassing op hoofdniveau van een programmeur kan implementeren via de API's die worden weergegeven door de iOS/tvOS AccessEnabler-bibliotheek.
De Adobe Pass-verificatieoplossing voor iOS/tvOS bestaat uiteindelijk uit twee domeinen:
-
Het domein UI - dit is de bovenste toepassingslaag die UI uitvoert en de diensten gebruikt die door de bibliotheek AccessEnabler worden verleend om toegang tot beperkte inhoud te verlenen.
-
Het domein AccessEnabler - dit is waar de machtigingswerkschema's in de vorm van worden uitgevoerd:
- De vraag van het netwerk die aan de backendservers van de Adobe wordt gemaakt
- Zakelijke en logische regels met betrekking tot de workflows voor verificatie en autorisatie
- Beheer van diverse bronnen en verwerking van workflowstatus (zoals de tokencache)
Het doel van het domein AccessEnabler is alle ingewikkeldheid van de machtigingswerkschema's te verbergen, en aan de hogere laagtoepassing (door de bibliotheek AccessEnabler) een reeks eenvoudige machtigingsprimitieven te verstrekken waarmee u de machtigingswerkschema's uitvoert:
- De identiteit van de aanvrager instellen
- Verificatie aanvragen bij een bepaalde identiteitsprovider
- Autorisatie voor een bepaalde bron controleren en ophalen
- Afmelden
- SSO van Apple stroomt door het VSA-kader van Apple te verfijnen
De het netwerkactiviteit van AccessEnabler vindt plaats in zijn eigen draad, zodat wordt de draad UI nooit geblokkeerd. Het communicatiekanaal in twee richtingen tussen de twee toepassingsdomeinen moet daarom een volledig asynchroon patroon volgen:
- De toepassingslaag UI verzendt berichten naar het domein AccessEnabler via de API vraag die door de bibliotheek AccessEnabler wordt blootgesteld.
- AccessEnabler antwoordt aan de laag UI door de callback methodes inbegrepen in het protocol AccessEnabler dat de laag UI met de bibliotheek AccessEnabler registreert.
De service voor Experience Cloud-id configureren (bezoeker-id) visitorIDSetup
Het vormen van de 🔗 waarde van identiteitskaart van 0} Experience Cloud {is belangrijk van het Analytics standpunt. Wanneer een visitorID
-waarde is ingesteld, verzendt de SDK deze informatie samen met elke netwerkaanroep en verzamelt de Adobe Pass -verificatieserver deze informatie. U kunt de analyses van de Adobe Pass Authentication-service koppelen aan andere analytische rapporten die u hebt van andere toepassingen of websites. De informatie over hoe te opstellings bezoekorID kan hierworden gevonden.
Machtigingsstromen entitlement
A. Eerste vereisten
B. Stroom van de Opstarten
C. de Stroom van de Authentificatie met Apple SSO
D. de Stroom van de Authentificatie met Apple SSO op iOS
E. de Stroom van de Authentificatie met Apple SSO op tvOS
F. de Stroom van de Vergunning
G. de Stroom van Media van de Mening
H. Logout Stroom zonder Apple SSO
I. Logout Stroom met Apple SSO
A. Vereisten prereqs
-
Maak uw callback-functies:
-
setRequestorComplete()
-
Teweeggebracht door setRequest (), keert succes of mislukking terug.
-
Het succes wijst erop u met machtigingsvraag kunt te werk gaan.
-
- Wordt alleen geactiveerd door
getAuthentication()
als de gebruiker geen provider (MVPD) heeft geselecteerd en nog niet is geverifieerd. - De parameter
mvpds
is een array van providers die beschikbaar zijn voor de gebruiker.
- Wordt alleen geactiveerd door
-
setAuthenticationStatus(status, errorcode)
- Wordt telkens geactiveerd door
checkAuthentication()
. - Wordt alleen geactiveerd door
getAuthentication()
als de gebruiker al is geverifieerd en een provider heeft geselecteerd. - De geretourneerde status is geslaagd of mislukt. De foutcode beschrijft het type fout.
- Wordt telkens geactiveerd door
-
- Wordt geactiveerd door
getAuthentication()
nadat de gebruiker een MVPD selecteert. De parameterurl
biedt de locatie van de MVPD-aanmeldingspagina.
- Wordt geactiveerd door
-
sendTrackingData(event, data)
- Wordt geactiveerd door
checkAuthentication()
,getAuthentication()
,checkAuthorization()
,getAuthorization()
,setSelectedProvider()
. - De parameter
event
geeft aan welke gebeurtenis entitlement heeft plaatsgevonden. De parameterdata
is een lijst met waarden die betrekking hebben op de gebeurtenis.
- Wordt geactiveerd door
-
setToken(token, resource)
- Teweeggebracht door checkAuthorization ()en getAuthorization ()na een succesvolle vergunning om een middel te bekijken.
- De parameter
token
is het kortstondige media-token; de parameterresource
is de inhoud die de gebruiker mag bekijken.
-
tokenRequestFailed(resource, code, description)
- Teweeggebracht door checkAuthorization ()en getAuthorization ()na een onsuccesvolle vergunning.
- De parameter
resource
is de inhoud die de gebruiker probeerde te bekijken. De parametercode
is de foutcode die aangeeft welk type fout is opgetreden. De parameterdescription
beschrijft de fout die aan de foutcode is gekoppeld.
-
selectedProvider(mvpd)
- Wordt geactiveerd door
getSelectedProvider()
. - De parameter
mvpd
biedt informatie over de provider die door de gebruiker is geselecteerd.
- Wordt geactiveerd door
-
setMetadataStatus(metadata, key, arguments)
- geactiveerd door
getMetadata().
- De
metadata
parameter verstrekt de specifieke gegevens u vroeg; dekey
parameter is de sleutel die in wordt gebruikt getMetadata ()verzoek; en dearguments
parameter is het zelfde woordenboek dat tot getMetadata ()werd overgegaan.
- geactiveerd door
-
"preauthorisedResources(authorisedResources)"
-
Wordt geactiveerd door
checkPreauthorizedResources()
. -
De parameter
authorizedResources
geeft de bronnen weer die de gebruiker
is geautoriseerd om te bekijken.
-
-
presentTvProviderDialog(viewController)
- Teweeggebracht door getAuthentication ()wanneer de huidige aanvrager minstens op MVPD steunt die steun SSO heeft.
- De parameter viewController is de dialoog van Apple SSO en moet op het belangrijkste meningscontrolemechanisme worden voorgesteld.
-
dismissTvProviderDialog(viewController)
- Wordt geactiveerd door een gebruikershandeling (door "Annuleren" of "Andere tv-providers" te selecteren in het dialoogvenster Apple SSO).
- De viewController parameter is de Dialoog van Apple SSO en moet van het belangrijkste meningscontrolemechanisme worden verworpen.
-
B. Startstroom startup_flow
-
Start de toepassing op het hoogste niveau.
-
Adobe Pass-verificatie starten
a. Vraag
init
aan om één instantie van Adobe Pass Authentication AccessEnabler te maken.- Afhankelijkheid: Eigen iOS/tvOS Bibliotheek van de Authentificatie van Adobe Pass (AccessEnabler)
b. Roep
setRequestor()
aan om de identiteit van de programmeur vast te stellen; geefrequestorID
van de programmeur en (optioneel) een array van eindpunten voor Adobe Pass-verificatie door. Voor tvOS zult u ook de openbare sleutel en het geheim moeten verstrekken. Zie Clientless documentatievoor details.-
Afhankelijkheid: Geldige VraagID van de Authentificatie van Adobe Pass (het Werk met uw Rekening van de Authentificatie van Adobe Pass
Manager om dit te rangschikken). -
Trekkers:
setRequestorComplete ()callback.
note note NOTE Er kunnen geen aanvragen voor een machtiging worden ingevuld totdat de identiteit van de aanvrager volledig is vastgesteld. Dit betekent in feite dat terwijl setRequestor()
nog wordt uitgevoerd, alle volgende aanvragen voor machtigingen worden uitgevoerd.checkAuthentication()
worden bijvoorbeeld geblokkeerd.U hebt twee implementatieopties: wanneer de informatie over de identificatie van de aanvrager naar de back-endserver is verzonden, kan de toepassingslaag van de gebruikersinterface een van de volgende twee methoden kiezen:
-
Wacht op het teweegbrengen van
setRequestorComplete()
callback (deel van de afgevaardigde AccessEnabler). Deze optie biedt de meeste zekerheid datsetRequestor()
is voltooid en wordt daarom aangeraden voor de meeste implementaties. -
Ga verder zonder te wachten op het activeren van de callback van
setRequestorComplete()
en geef aanvragen voor machtigingen af. Deze vraag (checkAuthentication, checkAuthorization, getAuthentication, getAuthorization, checkPreauthorisedResource, getMetadata, logout) wordt een rij gevormd door de bibliotheek AccessEnabler, die de daadwerkelijke netwerkvraag nasetRequestor()
zal maken. Deze optie kan af en toe worden onderbroken als, bijvoorbeeld, de netwerkverbinding instabiel is.
-
Roep
checkAuthentication()
aan om op een bestaande authentificatie te controleren zonder de volledige stroom van de Authentificatie in werking te stellen. Als deze vraag slaagt, kunt u aan de stroom van de Vergunning direct te werk gaan. Zo niet, ga dan door naar de verificatiestroom.-
Afhankelijkheid: Een succesvolle vraag aan setRequestor ()(dit gebiedsdeel is eveneens op alle verdere vraag van toepassing).
-
Trekkers: setAuthenticationStatus ()callback.
-
C. Verificatiestroom zonder Apple SSO authn_flow_wo_applesso
-
Roep
getAuthentication()
aan om de verificatiestroom te starten of om bevestiging te krijgen dat de gebruiker al is
geverifieerd.Trekkers:
-
setAuthenticationStatus ()callback, als de gebruiker reeds voor authentiek verklaard is. In dit geval, ga direct aan de Stroom van de Vergunningte werk.
-
displayProviderDialog ()callback, als de gebruiker nog niet voor authentiek verklaard is.
-
-
De gebruiker de lijst met providers presenteren die is verzonden naar
displayProviderDialog()
. -
Nadat de gebruiker een provider heeft geselecteerd, haalt u de URL van de MVPD van de gebruiker op via de callback
navigateToUrl:
ofnavigateToUrl:useSVC:
en opent u een controllerUIWebView/WKWebView
ofSFSafariViewController
en stuurt u die controller naar de URL. -
Via de
UIWebView/WKWebView
- ofSFSafariViewController
-code die in de vorige stap is geïnstantieerd, landt de gebruiker op de MVPD-aanmeldingspagina en voert deze de aanmeldingsgegevens in. Verscheidene omleidingsverrichtingen vinden binnen het controlemechanisme plaats.
null
als parameter. Dit staat AccessEnabler toe om het interne staat op te schonen en de Stroom van de Authentificatie terug te stellen.-
Wanneer de gebruiker zich met succes heeft aangemeld, detecteert de toepassingslaag het laden van een specifieke aangepaste URL. Deze specifieke aangepaste URL is in feite ongeldig en is niet bestemd voor de controller om deze daadwerkelijk te laden. Deze mag alleen door uw toepassing worden geïnterpreteerd als een signaal dat de verificatiestroom is voltooid en dat het veilig is om de
UIWebView/WKWebView
- ofSFSafariViewController
-controller te sluiten. In het geval dat aSFSafariViewController
controlemechanisme wordt vereist om worden gebruikt wordt de specifieke douane URL bepaald doorapplication's custom scheme
(b.v.adbe.u-XFXJeTSDuJiIQs0HVRAg://adobe.com
), anders wordt dit specifieke douane URL bepaald door deADOBEPASS_REDIRECT_URL
constante (namelijkadobepass://ios.app
). -
Sluit het UIWebView/WKWebView of SFSafariViewController controlemechanisme en vraag de API methode van AccessEnabler
handleExternalURL:url
, die AccessEnabler opdraagt om het authentificatietoken van de backendserver terug te winnen. -
(Optioneel) Roep
checkPreauthorizedResources(resources)
aan om te controleren welke bronnen de gebruiker mag bekijken. De parameterresources
is een array met beveiligde bronnen die is gekoppeld aan het verificatietoken van de gebruiker. U kunt onder andere de machtigingsgegevens van de MVPD van de gebruiker gebruiken om de gebruikersinterface te versieren (bijvoorbeeld vergrendelde/ontgrendelde symbolen naast beveiligde inhoud).- Trekkers:
preauthorizedResources()
callback - het punt van de Uitvoering: na de voltooide Stroom van de Authentificatie
- Trekkers:
-
Ga door naar de machtigingsstroom als de verificatie is gelukt.
D. Verificatiestroom met Apple SSO op iOS authn_flow_with_applesso
-
Vraag
getAuthentication()
om de authentificatiestroom in werking te stellen, of bevestiging te krijgen dat de gebruiker reeds voor authentiek verklaard is.
Trekkers:- presentTvProviderDialog ()callback, als de gebruiker niet voor authentiek wordt verklaard en de huidige aanvrager heeft minstens op MVPD die SSO steunt. Als geen MVPDs SSO steunt, zal de klassieke authentificatiestroom worden gebruikt.
-
Nadat de gebruiker een leverancier selecteert zal de bibliotheek AccessEnabler een authentificatietoken van de informatie verkrijgen die door het kader van Apple VSA wordt verstrekt.
-
setAuthenticationStatus ()callback zal worden teweeggebracht. Op dit moment moet de gebruiker worden geverifieerd met Apple SSO.
-
[ Facultatieve ] Vraag
checkPreauthorizedResources(resources)
om te controleren welke middelen de gebruiker aan mening wordt gemachtigd. De parameterresources
is een array met beveiligde bronnen die is gekoppeld aan het verificatietoken van de gebruiker. U kunt onder andere de machtigingsgegevens van de MVPD van de gebruiker gebruiken om de gebruikersinterface te versieren (bijvoorbeeld vergrendelde/ontgrendelde symbolen naast beveiligde inhoud).- Trekkers:
preauthorizedResources()
callback - het punt van de Uitvoering: na de voltooide Stroom van de Authentificatie
- Trekkers:
-
Ga door naar de machtigingsstroom als de verificatie is gelukt.
E. Verificatiestroom met Apple SSO op tvOS authn_flow_with_applesso_tvOS
-
Roep
getAuthentication()
aan om de
verificatiestroom of om bevestiging te krijgen dat de gebruiker al
geverifieerd.
Trekkers:- De callback van
presentTvProviderDialog()
als de gebruiker niet voor authentiek wordt verklaard en de huidige aanvrager minstens op MVPD heeft die SSO steunt. Als geen MVPDs SSO steunt, zal de klassieke authentificatiestroom worden gebruikt.
- De callback van
-
Nadat de gebruiker een provider selecteert, wordt de callback van
status()
aangeroepen. Er wordt een registratiecode opgegeven en de AccessEnabler-bibliotheek begint de server te pollen voor een geslaagde verificatie op het tweede scherm. -
Als de opgegeven registratiecode is gebruikt voor verificatie op het tweede scherm, wordt de callback van
setAuthenticatiosStatus()
geactiveerd. Op dit moment moet de gebruiker worden geverifieerd met Apple SSO. -
[ Facultatieve ] Vraag
checkPreauthorizedResources(resources)
om te controleren welke middelen de gebruiker aan mening wordt gemachtigd. De parameterresources
is een array met beveiligde bronnen die is gekoppeld aan het verificatietoken van de gebruiker. U kunt onder andere de machtigingsgegevens van de MVPD van de gebruiker gebruiken om de gebruikersinterface te versieren (bijvoorbeeld vergrendelde/ontgrendelde symbolen naast beveiligde inhoud).-
Trekkers:
preauthorizedResources()
callback -
het punt van de Uitvoering: na de voltooide Stroom van de Authentificatie
-
-
Ga door naar de machtigingsstroom als de verificatie is gelukt.
F. Vergunningsstroom authz_flow
-
Vraag getAuthorization ()om de vergunningsstroom in werking te stellen.
- Afhankelijkheid: Geldige ResourceID(s) overeengekomen met MVPD(s).
- Middel IDs zou het zelfde moeten zijn als die gebruikt op andere apparaten of platforms, en zal het zelfde over MVPDs zijn. Voor informatie over Middel IDs, zie Herkenningsteken van het Middel
-
Verificatie en autorisatie valideren.
-
Als de getAuthorization ()vraag slaagt: De gebruiker heeft geldige tokens AuthN en AuthZ (de gebruiker wordt voor authentiek verklaard en gemachtigd om op de gevraagde media te letten).
-
Als getAuthorization ()ontbreekt: Onderzoek de geworpen uitzondering om zijn type (AuthN, AuthZ, of iets anders) te bepalen:
- Als het een authentificatie (AuthN) fout was dan herstart de authentificatiestroom.
- Als het een autorisatiefout (AuthZ) was, dan is de gebruiker niet geautoriseerd om de gevraagde media te bekijken en een soort foutbericht zou aan de gebruiker moeten worden getoond.
- Als er een ander type fout is opgetreden (verbindingsfout, netwerkfout, enz.), geeft u een geschikt foutbericht weer voor de gebruiker.
-
-
Valideer de token voor korte media.
Gebruik de TokenVerificatiebibliotheek van de Media van de Authentificatie van Adobe Pass om het kortstondige media teken te verifiëren dat van is teruggekeerd getAuthorization ()hierboven vraag:- Als de validatie is gelukt: de gevraagde media afspelen voor de gebruiker.
- Als de validatie mislukt: de AuthZ-token was ongeldig, wordt de mediaquery geweigerd en wordt een foutbericht weergegeven aan de gebruiker.
-
Ga terug naar de normale stroom van de toepassing.
G. Media-stroom weergeven media_flow
-
De gebruiker selecteert de media die u wilt weergeven.
-
Zijn de media beveiligd? Uw toepassing controleert of het geselecteerde medium is beveiligd:
-
Als de geselecteerde media beschermd is, begint uw toepassing de Stroom van de Vergunninghierboven.
-
Als het geselecteerde medium niet is beveiligd, kunt u het medium afspelen voor
de gebruiker.
-
H. Logout Flow zonder Apple SSO logout_flow_wo_AppleSSO
-
Roep
logout()
aan om de gebruiker af te melden. AccessEnabler ontruimt alle caching waarden en tekenen. Na het ontruimen van het geheime voorgeheugen, richt AccessEnabler een servervraag om de server-zijzittingen schoon te maken. Merk op dat aangezien de servervraag in SAML kon resulteren die aan IdP (dit staat voor de zittingsschoonmaak op de kant IdP toe) wordt omgeleid, deze vraag moet alle omleidingen volgen. Om deze reden, moet deze vraag binnen een controlemechanisme UIWebView/WKWebView of SFSafariViewController worden behandeld.a. Na het zelfde patroon als het authentificatiewerkschema, doet het domein AccessEnabler een verzoek aan de UI toepassingslaag, via
navigateToUrl:
ofnavigateToUrl:useSVC:
callback, om een UIWebView/WKWebView of SFSafariViewController tot stand te brengen en die opdracht te geven om URL te laden die in de parameter van callbackurl
wordt verstrekt. Dit is URL van het logout eindpunt op de achtergrondserver.b. Uw toepassing moet toezicht houden op de activiteit van de
UIWebView/WKWebView or SFSafariViewController
-controller en het moment detecteren waarop een specifieke aangepaste URL wordt geladen, aangezien deze meerdere omleidingen doorloopt. Deze specifieke aangepaste URL is in feite ongeldig en is niet bestemd voor de controller om deze daadwerkelijk te laden. Deze moet alleen door uw toepassing worden geïnterpreteerd als een signaal dat de afmeldingsflow is voltooid en dat het veilig is om deUIWebView/WKWebView
- ofSFSafariViewController
-controller te sluiten. Wanneer het controlemechanisme deze specifieke douane URL laadt moet uw toepassing hetUIWebView/WKWebView or SFSafariViewController
controlemechanisme sluiten en de 1} API methode van AccessEnabler roepenhandleExternalURL:url
. Als eenSFSafariViewController
controlemechanisme moet worden gebruikt wordt de specifieke douane URL bepaald doorapplication's custom scheme
(bijvoorbeeld,adbe.u-XFXJeTSDuJiIQs0HVRAg://adobe.com
), anders wordt deze specifieke douane URL bepaald door deADOBEPASS_REDIRECT_URL
constante (namelijkadobepass://ios.app
).note note NOTE De logout stroom verschilt van de authentificatiestroom in die zin dat de gebruiker niet wordt vereist om met UIWebView/WKWebView of SFSafariViewController op om het even welke manier in wisselwerking te staan. De toepassingslaag UI gebruikt UIWebView/WKWebView of SFSafariViewController om ervoor te zorgen dat alle omleidingen worden gevolgd. Daarom is het mogelijk (en aanbevolen) om de controller tijdens het aflogproces onzichtbaar te maken (dat wil zeggen verborgen).
I. Afmeldingsstroom met Apple SSO logout_flow_with_AppleSSO
- Roep
logout()
aan om de gebruiker af te melden. - De status ()callback zal met identiteitskaart VSA203 worden geroepen.
- De gebruiker zou aan login van de systeemmontages ook moeten worden geïnstrueerd. Als u dit niet doet, wordt de verificatie opnieuw uitgevoerd wanneer de toepassing opnieuw wordt gestart.