(Verouderd) iOS/tvOS SDK Cookbook iostvos-sdk-cookbook

NOTE
De inhoud op deze pagina wordt alleen ter informatie verstrekt. Voor het gebruik van deze API is een huidige licentie van Adobe vereist. Ongeautoriseerd gebruik is niet toegestaan.
IMPORTANT
Zorg ervoor u over de recentste het productmededelingen van de Authentificatie van Adobe Pass en ontmantelingschronologie wordt geïnformeerd die in de pagina van de Mededelingen van het Productwordt samengevoegd.

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:

  1. De identiteit van de aanvrager instellen
  2. Verificatie aanvragen bij een bepaalde identiteitsprovider
  3. Autorisatie voor een bepaalde bron controleren en ophalen
  4. Afmelden
  5. 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

  1. Maak uw callback-functies:

    • setRequestorComplete()

    • Teweeggebracht door setRequest (), keert succes of mislukking terug.

    • Het succes wijst erop u met machtigingsvraag kunt te werk gaan.

    • displayProviderDialog(mvpds)

      • 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.
    • 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.
    • navigateToUrl(url)

      • Wordt geactiveerd door getAuthentication() nadat de gebruiker een MVPD selecteert. De parameter url biedt de locatie van de MVPD-aanmeldingspagina.
    • sendTrackingData(event, data)

      • Wordt geactiveerd door checkAuthentication(), getAuthentication(), checkAuthorization(), getAuthorization(), setSelectedProvider() .
      • De parameter event geeft aan welke gebeurtenis entitlement heeft plaatsgevonden. De parameter data is een lijst met waarden die betrekking hebben op de gebeurtenis.
    • 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 parameter resource 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 parameter code is de foutcode die aangeeft welk type fout is opgetreden. De parameter description 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.
    • setMetadataStatus(metadata, key, arguments)

      • geactiveerd door getMetadata().
      • De metadata parameter verstrekt de specifieke gegevens u vroeg; de key parameter is de sleutel die in wordt gebruikt getMetadata ()verzoek; en de arguments parameter is het zelfde woordenboek dat tot getMetadata ()werd overgegaan.
    • "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

  1. Start de toepassing op het hoogste niveau.

  2. 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; geef requestorID 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:

    1. Wacht op het teweegbrengen van setRequestorComplete() callback (deel van de afgevaardigde AccessEnabler). Deze optie biedt de meeste zekerheid dat setRequestor() is voltooid en wordt daarom aangeraden voor de meeste implementaties.

    2. 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 na setRequestor() zal maken. Deze optie kan af en toe worden onderbroken als, bijvoorbeeld, de netwerkverbinding instabiel is.

  3. 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.

C. Verificatiestroom zonder Apple SSO authn_flow_wo_applesso

  1. Roep getAuthentication() aan om de verificatiestroom te starten of om bevestiging te krijgen dat de gebruiker al is
    geverifieerd.

    Trekkers:

  2. De gebruiker de lijst met providers presenteren die is verzonden naar
    displayProviderDialog().

  3. Nadat de gebruiker een provider heeft geselecteerd, haalt u de URL van de MVPD van de gebruiker op via de callback navigateToUrl: of navigateToUrl:useSVC: en opent u een controller UIWebView/WKWebView of SFSafariViewController en stuurt u die controller naar de URL.

  4. Via de UIWebView/WKWebView - of SFSafariViewController -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.

NOTE
Op dit punt, heeft de gebruiker de kans om de authentificatiestroom te annuleren. Als dit voorkomt, is uw laag UI verantwoordelijk voor het informeren van AccessEnabler over deze gebeurtenis door setSelectedProvider () te roepenmet null als parameter. Dit staat AccessEnabler toe om het interne staat op te schonen en de Stroom van de Authentificatie terug te stellen.
  1. 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 - of SFSafariViewController -controller te sluiten. In het geval dat a SFSafariViewController controlemechanisme wordt vereist om worden gebruikt wordt de specifieke douane URL bepaald door application's custom scheme (b.v. adbe.u-XFXJeTSDuJiIQs0HVRAg://adobe.com), anders wordt dit specifieke douane URL bepaald door de ADOBEPASS_REDIRECT_URL constante (namelijk adobepass://ios.app).

  2. 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.

  3. (Optioneel) Roep checkPreauthorizedResources(resources) aan om te controleren welke bronnen de gebruiker mag bekijken. De parameter resources 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).

  4. Ga door naar de machtigingsstroom als de verificatie is gelukt.

D. Verificatiestroom met Apple SSO op iOS authn_flow_with_applesso

  1. 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.
  2. 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.

  3. setAuthenticationStatus ()callback zal worden teweeggebracht. Op dit moment moet de gebruiker worden geverifieerd met Apple SSO.

  4. [ Facultatieve ] Vraag checkPreauthorizedResources(resources) om te controleren welke middelen de gebruiker aan mening wordt gemachtigd. De parameter resources 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).

  5. Ga door naar de machtigingsstroom als de verificatie is gelukt.

E. Verificatiestroom met Apple SSO op tvOS authn_flow_with_applesso_tvOS

  1. 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.
  2. 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.

  3. 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.

  4. [ Facultatieve ] Vraag checkPreauthorizedResources(resources) om te controleren welke middelen de gebruiker aan mening wordt gemachtigd. De parameter resources 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).

  5. Ga door naar de machtigingsstroom als de verificatie is gelukt.

F. Vergunningsstroom authz_flow

  1. 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
  2. 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.
  3. 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.
  4. Ga terug naar de normale stroom van de toepassing.

G. Media-stroom weergeven media_flow

  1. De gebruiker selecteert de media die u wilt weergeven.

  2. 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

  1. 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: of navigateToUrl: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 callback url 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 de UIWebView/WKWebView - of SFSafariViewController -controller te sluiten. Wanneer het controlemechanisme deze specifieke douane URL laadt moet uw toepassing het UIWebView/WKWebView or SFSafariViewController controlemechanisme sluiten en de 1} API methode van AccessEnabler roepen handleExternalURL:url. Als een SFSafariViewController controlemechanisme moet worden gebruikt wordt de specifieke douane URL bepaald door application's custom scheme (bijvoorbeeld, adbe.u-XFXJeTSDuJiIQs0HVRAg://adobe.com), anders wordt deze specifieke douane URL bepaald door de ADOBEPASS_REDIRECT_URL constante (namelijk adobepass://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

  1. Roep logout() aan om de gebruiker af te melden.
  2. De status ()callback zal met identiteitskaart VSA203 worden geroepen.
  3. 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.
recommendation-more-help
3f5e655c-af63-48cc-9769-2b6803cc5f4b