(Heredado) Android SDK con registro de cliente dinámico android-sdk-with-dynamic-client-registration
Introducción Intro
Android AccessEnabler SDK para Android se ha modificado para habilitar la autenticación sin usar cookies de sesión. Dado que cada vez más exploradores restringen el acceso a las cookies, es necesario utilizar otro método para permitir la autenticación.
Para Android, el uso de fichas personalizadas de Chrome restringe el acceso a las cookies de otras aplicaciones.
Android SDK 3.0.0 presenta:
- el registro dinámico de clientes sustituye al mecanismo de registro de aplicaciones actual en función del ID de solicitante firmado y la autenticación de cookies de sesión
- Pestañas personalizadas de Chrome para flujos de autenticación
Registro dinámico de clientes DCR
Android SDK v3.0+ utilizará el procedimiento de registro de cliente dinámico como se define en Información general sobre el registro de cliente dinámico.
Demostración de funciones Demo
Vea este seminario web que proporciona más contexto sobre la funcionalidad y contiene una demostración sobre cómo administrar las instrucciones de software mediante el tablero de TVE y cómo probar las generadas mediante una aplicación de demostración proporcionada por Adobe como parte de Android SDK.
Cambios de API API
Factory.getInstance
Descripción: crea una instancia del objeto de habilitación de acceso. Debe haber una sola instancia de Access Enabler por cada instancia de aplicación.
inicia AccessEnablerException
Disponibilidad: v3.0+
Parámetros:
- appContext: contexto de aplicación de Android
- softwareStatement: valor obtenido del Tablero de TVE o null si "software_statement" está establecido en strings.xml
- redirectUrl : url única, uno de los dominios en orden inverso que se agregó explícitamente en el Tablero de TVE o null si "redirect_uri" está establecido en strings.xml
Nota: si softwareStatement o redirectUrl no son válidos, la aplicación no se inicializará AccessEnabler o no se registrará para la autenticación y autorización de Adobe Pass
Nota : el parámetro redirectUrl o redirect_uri en strings.xml debe ser el valor del dominio agregado en el Tablero de TVE para la aplicación en orden inverso ( por ejemplo: para el dominio "adobe.com" agregado en el Tablero de TVE, redirectUrl debe ser "com.adobe".
setRequestor
Descripción: establece la identidad del canal. A cada canal se le asigna un ID único al registrarse con el Adobe en el sistema de autenticación de Adobe Pass. Cuando se trata de SSO y tokens remotos, el estado de autenticación puede cambiar cuando la aplicación está en segundo plano. Se puede volver a llamar a setRequestor cuando la aplicación se pone en primer plano para sincronizar con el estado del sistema (recupere un token remoto si está habilitado el SSO o elimine el token local si se ha cerrado la sesión mientras tanto).
La respuesta del servidor contiene una lista de MVPD junto con información de configuración adjunta a la identidad del canal. El código Access Enabler utiliza internamente la respuesta del servidor. Solo el estado de la operación (es decir, SUCCESS/FAIL) se presenta a la aplicación a través de la llamada de retorno setRequestorComplete().
Si no se usa el parámetro urls, la llamada de red resultante se dirigirá a la dirección URL del proveedor de servicios predeterminado: el entorno de producción/versión de Adobe.
Si se proporciona un valor para el parámetro urls, la llamada de red resultante se dirigirá a todas las direcciones URL proporcionadas en el parámetro urls. Todas las solicitudes de configuración se activan simultáneamente en subprocesos independientes. El primer respondedor tiene prioridad al compilar la lista de MVPD. Para cada MVPD de la lista, el Habilitador de acceso recuerda la URL del proveedor de servicios asociado. Todas las solicitudes de derechos subsiguientes se dirigen a la URL asociada al proveedor de servicios emparejado con el MVPD de destino durante la fase de configuración.
public void setRequestor(String requestorId)
Disponibilidad: v3.0+
public void setRequestor(String requestorId, ArrayList<String> urls)
Disponibilidad: v3.0+
Parámetros:
- requestorID: El ID único asociado con el canal. Pase el ID único asignado por el Adobe a su sitio cuando se registró por primera vez en el servicio de autenticación de Adobe Pass.
- urls: Parámetro opcional; de forma predeterminada, el proveedor de servicios de Adobe se usa http://sp.auth.adobe.com/. Esta matriz permite especificar extremos para los servicios de autenticación y autorización proporcionados por el Adobe (se pueden utilizar diferentes instancias para la depuración). Puede utilizar esto para especificar varias instancias del proveedor de servicios de autenticación de Adobe Pass. Al hacerlo, la lista MVPD está compuesta por los extremos de todos los proveedores de servicios. Cada MVPD está asociado con el proveedor de servicios más rápido; es decir, el proveedor que respondió primero y que admite ese MVPD.
Obsoleto:
- signedRequestorID: Una copia del identificador del solicitante firmado digitalmente con su clave privada. .
Llamadas de retorno activadas: setRequestorComplete()
cierre de sesión
Descripción: Utilice este método para iniciar el flujo de cierre de sesión. El cierre de sesión es el resultado de una serie de operaciones de redirección HTTP debido al hecho de que el usuario debe cerrar la sesión tanto desde los servidores de autenticación de Adobe Pass como desde los servidores de MVPD. Como resultado, este flujo abrirá una ventana de Chrome CustomTab para ejecutar el cierre de sesión.
Disponibilidad: v3.0+
Parámetros: Ninguno
Llamadas de retorno activadas: setAuthenticationStatus()
Flujo de implementación del programador Progr
1. Registrar aplicación
a. Obtenga software_statement y redirect_uri de Adobe Pass ( Tablero de TVE )
b. Existen dos opciones para pasar estos valores a Adobe Pass SDK:
En strings.xml, agregue:
<string name="software_statement">[softwarestatement value]</string>
<string name="redirect_uri">application_url.com</string>
Llamar a AccessEnabler.getInstance(appContext,softwareStatement,
redirectUrl)
2. Configurar la aplicación
a. setRequestor(solicitante_id)
SDK realizará las siguientes operaciones:
-
solicitud de registro: con software_statement, SDK obtendrá un client_id, client_secret, client_id_issued_at, redirect_uris, grant_types. Esta información se almacena en el almacenamiento interno de la aplicación.
-
obtenga un access_token usando client_id, client_secret y grant_type="client_credentials" . Este access_token se usará en cada llamada realizada por SDK a los servidores de Adobe Pass
Respuestas de error de token :
- en caso de que una MVPD requiera autenticación pasiva, se abrirá una pestaña personalizada de Chrome para ejecutar la autenticación pasiva con esa MVPD y se cerrará cuando se complete
b. checkAuthentication()
- true : vaya a Autorización
- false : vaya a Seleccionar MVPD
c. getAuthentication : SDK incluirá access_token en los parámetros de llamada
- mvpd recordó : ir a setSelectedProvider(mvpd_id)
- mvpd no seleccionado: displayProviderDialog
- mvpd seleccionado: ir a setSelectedProvider(mvpd_id)
d. setSelectedProvider
- La URL de autenticación mvpd_id se carga en ChromeCustomTabs
- inicio de sesión correcto : delegate.setAuthenticationStatus ( SUCCESS )
- inicio de sesión cancelado : restablecer selección de MVPD
- El esquema URL se establece como "adobepass://redirect_uri" para capturar cuándo se completa la autenticación
e. get/checkAuthorization : SDK incluirá access_token en el encabezado como Autorización: Portador access_token
- si la autorización es correcta, se realizará una llamada para obtener la
token de medios
f. cierre de sesión:
- SDK eliminará el token válido para el solicitante actual (las autenticaciones obtenidas por otras aplicaciones y no a través de SSO seguirán siendo válidas)
- SDK abrirá las fichas personalizadas de Chrome para llegar al extremo de cierre de sesión de mvpd_id. Una vez finalizado, se cerrarán las fichas personalizadas de Chrome
- El esquema de URL se establece como "adobepass://logout" para capturar el momento en que se completa el cierre de sesión
- el cierre de sesión almacenará en déclencheur sendTrackingData(new Event(EVENT_LOGOUT,USER_NOT_AUTHENTICATED_ERROR) y una llamada de retorno : setAuthenticationStatus(0,"Logout")
Nota:, ya que cada llamada requiere un token de acceso, los posibles códigos de error que se indican a continuación se gestionan en SDK.