Apple SSO Cookbook (iOS/tvOS SDK) apple-sso-cookbook-iostvos-sdk
Introduktion Introduction
Adobe Primetime Authentication AccessEnabler iOS/tvOS SDK har stöd för plattformsautentisering med enkel inloggning (SSO) för slutanvändare av klientprogram som körs på iOS, iPadOS eller tvOS via det vi kallar Apple SSO-arbetsflöde.
Observera att det här dokumentet fungerar som ett tillägg till den befintliga dokumentationen för AccessEnabler iOS/tvOS SDK, som finns här.
Cookbook Cookbook
För att dra nytta av Apple SSO-användarupplevelse måste ett program integrera AccessEnabler iOS/tvOS SDK och följa de tips som presenteras nedan.
Förutsättningar Prerequisites
Behörighet
Settings -> TV Provider
på iOS/iPadOS eller Settings -> Accounts -> TV Provider
på tvOS.Settings -> TV Provider
på iOS/iPadOS eller Settings -> Accounts -> TV Provider
på tvOS. ...
let videoSubscriberAccountManager: VSAccountManager = VSAccountManager();
videoSubscriberAccountManager.checkAccessStatus(options: [VSCheckAccessOption.prompt: true]) { (accessStatus, error) -> Void in
switch (accessStatus) {
// The user allows the application to access subscription information.
case VSAccountAccessStatus.granted:
// Do nothing.
// The user has not yet made a choice or does not allow the application to access subscription information.
default:
// Incentivize users who refuse to give permission to access subscription information by explaining the benefits of the Single Sign-On (SSO) user experience. Please bear in mind that the user can change its decision by going to the application settings (TV Provider permission access) or to the section from Settings -> TV Provider on iOS/iPadOS or Settings -> Accounts -> TV Provider on tvOS.
...
}
}
...
Återanrop
- presentTVProviderDialog - Återanropet utlöses när Apple MVPD-väljaren ska öppnas.
- dismissTVProviderDialog - Återanropet utlöses när Apple MVPD-väljaren kommer att stängas.
Felrapportering
- N003 - Användaren valde alternativet "Annan TV-leverantör" i Apple MVPD-väljaren.
- N004 - Användaren valde en TV-leverantör i Apple MVPD-väljaren, vilket inte stöds (integrering eller enkel inloggning inaktiverad) av den aktuella begäraren.
- N005 - Användaren bestämde sig för att avbryta den vanliga MVPD-väljaren eller Apple MVPD-väljaren.
- VSA403 - Användarens TV-leverantörsbehörighet nekas för programmet.
- VSA404 - Användarens TV-leverantörsbehörighet är inte definierad för programmet.
- VSA503 - Metadatabegäran för videoprenumerantkontot misslyckades. Mer kontext anges i fältet message.
- AAPL/APPL_ERROR - Metadatabegäran för videoprenumerantkontot misslyckades, mer kontext anges i fältet details.
Autentisering Authentication
-
Programmet måste initiera AccessEnabler iOS/tvOS SDK.
-
Programmet måste ange den aktuella begärande-identifieraren.
Viktigt! Det här andra steget kan utlösa en avancerad felkod som är specifik för Apple SSO-arbetsflöde, om något av följande är sant:
- VSA403 - Användarens TV-leverantörsbehörighet nekas för programmet.
- VSA404 - Användarens TV-leverantörsbehörighet är inte definierad för programmet.
- APPL - Ett fel uppstod i kommunikationen mellan AccessEnabler iOS/tvOS SDK och ramverket för videoprenumerantkontot.
Det andra steget skulle försöka att tyst byta ut Apple SSO-profilen mot en Adobe-autentiseringstoken, om alla ovanstående är falska och alla följande är sanna:
- Användarens TV-leverantörsbehörighet beviljas för programmet.
- Användaren är inloggad på sitt TV-leverantörskonto på enhetssystemnivå.
- AccessEnabler iOS/tvOS SDK tog emot användarens identifierare för tv-leverantör från ramverket för videoprenumerantkontot.
- Användarens TV-leverantörsintegrering med programmet aktiveras via Adobe Primetime TVE Dashboard.
- Användarens TV-leverantör enkel inloggning med programmet aktiveras via Adobe Primetime TV-instrumentpanelen.
- Användarens TV-leverantör fungerar inte på Adobe Primetime TV Dashboard.
- AccessEnabler iOS/tvOS SDK tog emot användarens SAML-svar från Video Subscriber Account Framework.
Pro Tip: Det andra steget utlöser inga andra återanrop förutom återanropet setRequestorComplete eftersom autentiseringen inte initierades explicit av programmet.
-
Programmet måste kontrollera autentiseringsstatusen.
Viktigt! Det här tredje steget kan utlösa en avancerad felkod som är specifik för Apple SSO-arbetsflöde, om något av följande är sant:
- *VSA403 - Användaren är inloggad på sitt TV-leverantörskonto på
enhetssystemnivån, men användarens TV-leverantörsbehörighet är
nekas för programmet. - *VSA404 - Användaren är inloggad på sitt TV-leverantörskonto på
enhetssystemnivån, men användarens TV-leverantör har behörighet
är inte definierad för programmet. - *APPL_ERROR - Användaren är inloggad på sin TV-leverantör
på enhetssystemnivå, men kommunikationen mellan
AccessEnabler iOS/tvOS SDK och Video Subscriber Account
ett fel uppstod i ramverket.
Viktigt: Det tredje steget utlöser återanropet setAuthenticationStatus med status lika med 0, om något av följande är sant:
- Användaren är inte inloggad på sitt TV-leverantörskonto på enhetssystemnivå eller via ett regelbundet autentiseringsflöde.
- Användaren är inloggad på sitt TV-leverantörskonto på enhetssystemnivå eller via det reguljära autentiseringsflödet, men användarens TV-leverantörs autentiseringstoken TTL har passerat.
- Användaren är inloggad på sitt TV-leverantörskonto på enhetssystemnivå eller via ett regelbundet autentiseringsflöde, men användarens TV-leverantörsintegrering med programmet inaktiveras via Adobe Primetime TV-instrumentpanel.
- Användaren är inloggad på sitt TV-leverantörskonto på enhetssystemnivå, men användarens TV-leverantör enkel inloggning med programmet är inaktiverad via Adobe Primetime TV Dashboard.
- Användaren är inloggad på sitt TV-leverantörskonto på enhetssystemnivå, men användarens TV-leverantörsbehörighet nekas för programmet.
- Användaren är inloggad på sitt TV-leverantörskonto på enhetssystemnivå, men användarens TV-leverantörsbehörighet är inte fastställd för programmet.
- Användaren är inloggad på sitt TV-leverantörskonto på enhetssystemnivå, men ett fel uppstod i kommunikationen mellan AccessEnabler iOS/tvOS SDK och ramverket för videoprenumerantkontot.
Viktigt! Det tredje steget utlöser återanropet setAuthenticationStatus med status lika med 1, om alla ovanstående är falska.
- *VSA403 - Användaren är inloggad på sitt TV-leverantörskonto på
-
Programmet måste initiera autentiseringen om den föregående autentiseringsstatuskontrollen utlöste återanropet setAuthenticationStatus med status som är lika med 0.
Pro Tip: Implementera ett av följande AccessEnabler iOS/tvOS SDK API getAuthentication eller getAuthentication:filter.
Viktigt! Det här fjärde steget kan utlösa en avancerad felkod som är specifik för Apple SSO-arbetsflöde, om något av följande är sant:
- VSA403 - Användarens TV-leverantörsbehörighet nekas för programmet.
- VSA404 - Användarens TV-leverantörsbehörighet är inte definierad för programmet.
- VSA503 - Ett fel uppstod i kommunikationen mellan AccessEnabler iOS/tvOS SDK och ramverket för videoprenumerantkontot.
- N003 - Användaren valde alternativet "Annan TV-leverantör" i Apple MVPD-väljaren.
- N004 - Användaren valde en TV-leverantör i Apple MVPD-väljaren, vilket inte stöds (integrering eller enkel inloggning inaktiverad) av den aktuella begäraren.
- N005 - Användaren bestämde sig för att avbryta den vanliga MVPD-väljaren eller Apple MVPD-väljaren.
Viktigt! Det här fjärde steget skulle återgå till det reguljära autentiseringsflödet genom att utlösa callback-funktionen displayProviderDialog och en av de avancerade felkoderna ovan, om en av de ovanstående är true.
Viktigt! Det här fjärde steget återgår till det reguljära autentiseringsflödet genom att utlösa callback-funktionen navigateToUrl eller navigateToUrl:useSVC och none i de avancerade felkoderna om användaren har valt en TV-leverantör som inte stöder Apple SSO, men som finns i Apple MVPD-väljaren.
Pro Tips: AccessEnabler iOS/tvOS SDK anropar setSelectedProvider i tysthet API:t om användaren väljer en TV-leverantör som inte stöder Apple SSO, men som finns i Apple MVPD-väljaren.
Viktigt! Det här fjärde steget skulle försöka att tyst byta ut Apple SSO-profilen mot en Adobe-autentiseringstoken, om alla ovanstående är falska och alla följande är sanna:
- Användarens TV-leverantörsbehörighet beviljas för programmet.
- Användaren är inloggad/loggar för närvarande in på sitt TV-leverantörskonto på enhetssystemnivå.
- AccessEnabler iOS/tvOS SDK tog emot användarens identifierare för tv-leverantör från ramverket för videoprenumerantkontot.
- Användarens TV-leverantörsintegrering med programmet aktiveras via Adobe Primetime TVE Dashboard.
- Användarens TV-leverantör enkel inloggning med programmet aktiveras via Adobe Primetime TV-instrumentpanelen.
- Användarens TV-leverantör fungerar inte på Adobe Primetime TV Dashboard.
- AccessEnabler iOS/tvOS SDK tog emot användarens SAML-svar från Video Subscriber Account Framework.
Pro Tip: Det här fjärde steget utlöser callback-funktionen setAuthenticationStatus, oavsett resultatet av status, eftersom autentiseringen initierades explicit av programmet.
Metadata Metadata
Programmet har möjlighet att avgöra om autentiseringen har skett som ett resultat av en inloggning via plattformens SSO eller inte, med hjälp av tokenSource användarens metadata från AccessEnabler iOS/tvOS SDK.
...
accessEnabler.getMetadata([METADATA_OPCODE_KEY:Int(METADATA_USER_META), METADATA_USER_META_KEY: "tokenSource"])
...
Utloggning Logout
Ramverket Video Subscriber Account innehåller inte något API för att logga ut personer som har loggat in på sitt TV-leverantörskonto på enhetssystemnivå. För att utloggningen ska få full effekt måste slutanvändaren därför uttryckligen logga ut från Settings -> TV Provider
på iOS/iPadOS eller Settings -> Accounts -> TV Provider
på tvOS. Det andra alternativet som användaren skulle ha möjlighet att återkalla behörigheten att få åtkomst till användarens prenumerationsinformation från det specifika avsnittet för programinställningar (TV-leverantörens behörighetsåtkomst).
- Programmet måste initiera utloggningen från AccessEnabler iOS/tvOS SDK. Detta skulle inte underlätta sessionsrensning på MVPD-sidan.
- Programmet måste instruera/uppmana användaren att explicit logga ut från
Settings -> Accounts -> TV Provider
på tvOS endast om VSA203-statuskoden aktiveras.
- Programmet måste initiera utloggningen från AccessEnabler iOS/tvOS SDK. Detta underlättar sessionssanering på den mobila dokumentationssidan.
- Programmet måste instruera/uppmana användaren att explicit logga ut från
Settings -> TV Provider
på iOS/iPadOS endast om VSA203-statuskoden aktiveras.