Migración de espacios de nombres ACS a OpenID Connect de Google

Este tema está destinado a los propietarios de espacios de nombres de Access Control Service (ACS) 2.0 que utilizan actualmente Google como proveedor de identidades. ACS ofrece esta funcionalidad con la implementación de OpenID 2.0 de Google. Google planea interrumpir la compatibilidad con OpenID 2.0 el 20 de abril de 2015. Los espacios de nombres de ACS seguirán funcionando con la implementación de OpenID 2.0 de Google hasta el 1 de junio de 2015, momento en el que debe completar la migración de estos espacios de nombres para usar la implementación de OpenID de Google Conectar o los usuarios ya no podrán iniciar sesión en la aplicación con una cuenta de Google. La migración de los espacios de nombres ACS a OpenID Connect no provocará ningún tiempo de inactividad en la aplicación. Con una sola excepción (consulte la nota más adelante), se puede realizar esta migración sin cambiar el código de la aplicación. Después de migrar los espacios de nombres ACS para usar OpenID Connect, deberá migrar los identificadores de los usuarios del back-end a los identificadores de OpenID Connect. Esta migración debe completarse el 1 de enero de 2017. Requerirá cambios de código en el back-end. Consulte la nota importante que se incluye a continuación para ver los detalles de ambas fases de la migración.

Importante

Tenga en cuenta las siguientes fechas importantes y complete las acciones necesarias antes de cada fecha para que los espacios de nombres ACS que usan Google como proveedor de identidades sigan funcionando:

  • 1 de junio de 2015: los espacios de nombres ACS dejarán de funcionar con la implementación de OpenID 2.0 de Google. Debe completar la migración del espacio de nombres ACS para usar OpenID Connect de Google antes de esta fecha. Antes de esta fecha, puede revertir a OpenID 2.0 si encuentra problemas durante la migración. En el caso de los espacios de nombres que no se han migrado en esta fecha, los usuarios ya no podrán iniciar sesión con una cuenta de Google y se mostrarán con una página que indique que OpenID 2.0 para cuentas de Google ha desaparecido. Para restaurar la funcionalidad de inicio de sesión con cuentas de Google, deberá migrar el espacio de nombres.

    En la mayoría de los casos, no es necesario realizar ningún cambio de código. Sin embargo, si tiene la regla "acceso directo de todas las notificaciones” de Google como proveedor de identidades en un grupo de reglas asociado a la aplicación, puede que tenga que realizar cambios en el código. Esto se debe a que, tras la migración, estará disponible un nuevo tipo de notificación (Asunto) en ACS de Google, y puede que tenga que realizar cambios en el código para que la aplicación pueda administrar correctamente la presencia de la nueva notificación. Para completar correctamente la migración, no habrá necesidad de procesar el nuevo tipo de notificación en la aplicación.

  • 1 de enero de 2017: las implementaciones de OpenID 2.0 y OpenID Connect de Google utilizan identificadores diferentes para identificar a los usuarios de Google de forma única. Al migrar el espacio de nombres ACS, ACS pone dos identificadores, el identificador de OpenID 2.0 actual y el nuevo identificador de OpenID Connect, a disposición de la aplicación. Debe cambiar los identificadores de los usuarios en el sistema back-end por los identificadores de OpenID Connect antes de esta fecha y empezar a usar solamente los identificadores de OpenID Connect a partir de entonces. Requiere cambios en el código de la aplicación.

Puede publicar preguntas sobre la migración en Stack Overflow y etiquetarlas con "acs-google". Responderemos tan pronto como sea posible.

Para obtener más información sobre los planes de Google, consulte su Guía de migración de OpenID 2.0.

Lista de comprobación de la migración

La tabla siguiente contiene una lista de comprobación que resume los pasos necesarios para migrar el espacio de nombres ACS y poder usar la implementación de OpenID Connect de Google:

Paso Descripción Se debe completar antes del

1

Crear una aplicación de Google+ en Google Developers Console.

1 de junio de 2015

2

Si tiene la regla “acceso directo de todas las notificaciones” de Google como proveedor de identidades en un grupo de reglas asociado a la aplicación, pruebe la aplicación para asegurarse de que está preparada para la migración. Si no, este paso es opcional.

1 de junio de 2015

3

Utilice el portal de administración de ACS para cambiar el espacio de nombres de ACS y poder usar la implementación de OpenID Connect de Google proporcionándole los parámetros de la aplicación de Google+ (identificador de cliente y secreto de cliente). Si tiene problemas con la migración, puede revertir a OpenID 2.0 hasta el 1 de junio de 2015.

1 de junio de 2015

4

Migre los identificadores de los usuarios en el sistema back-end de los identificadores actuales, de OpenID 2.0 de Google, a los nuevos identificadores de OpenID Connect de Google. Requiere cambios en el código.

1 de enero de 2017

Tutorial de migración

Para migrar el espacio de nombres ACS y poder usar la implementación de OpenID Connect de Google, complete los pasos siguientes:

  1. Creación de una aplicación de Google+

    Para obtener instrucciones detalladas sobre cómo hacerlo, consulta la sección How to: Create a Google+ application (Cómo: Crear una aplicación de Google+).

  2. Asegúrese de que la aplicación está preparada para la migración

    Si tiene la regla "pasar a través de todas las notificaciones" para Google como proveedor de identidades en un grupo de reglas asociado a la aplicación, siga las instrucciones de la sección How to: Ensure an ACS application's migration readiness (Preparación para la migración de una aplicación de ACS) para probar la preparación de la migración de la aplicación. Esto se debe a que, tras la migración, estará disponible un nuevo tipo de notificación (Asunto) para ACS de Google.

    Nota

    Una regla de "paso a través de todas las notificaciones" es una regla en la que el tipo de notificación input y el valor de notificación input se establecen en Any y Output claim type y Output claim value are set to Pass through first input claim type (Pasar a través del primer tipo de notificación de entrada ) y Pass through input claim value respectivamente. La regla aparece en el portal de administración de ACS, como se muestra a continuación, con la columna Notificación de salida configurada como Acceso directo.

    Passthrough rule

    Si anteriormente generó reglas o agregó reglas manualmente para Google como proveedor de identidades en un grupo de reglas asociado a la aplicación, puede omitir este paso. Esto se debe a que, en estos casos, después de la migración, el nuevo tipo de notificación (Asunto) no se envía a la aplicación.

    Para más información sobre estas opciones, consulte Reglas y grupos de reglas.

  3. Cambie el espacio de nombres ACS para usar la implementación de OpenID Connect de Google

    1. Vaya al Portal de administración de Azure, inicie sesión y haga clic en Active Directory. Seleccione el espacio de nombres ACS que es necesario migrar y haga clic en Administrar para iniciar el portal de administración de ACS.

    2. En el portal de administración de ACS, haga clic en Proveedores de identidades en el árbol de la izquierda o haga clic en el vínculo Proveedores de identidades bajo la sección Introducción. Haga clic en Google.

      Access Control Service Identity Providers Dialog

    3. En la página Modificar proveedor de identidades de Google, active Usar OpenID Connect.

      Edit Google Identity Provider dialog

    4. En los campos Id. de cliente y Secreto de cliente (ahora habilitados), copie los valores correspondientes de la aplicación de Google+.

      Edit Google Identity Provider dialog

      Nota

      A partir de entonces, si hace clic en Guardar, todas las solicitudes de proveedor de identidades de Google que se realicen desde el espacio de nombres ACS usarán automáticamente la implementación de OpenID Connect de Google. Si necesita revertirlo, puede desactivar Usar OpenID Connect. El identificador de cliente y el secreto de cliente permanecen guardados y pueden volver a utilizarse más adelante.

    5. Haga clic en Save(Guardar).

    6. Pruebe a iniciar sesión con un identificador de Google para asegurarse de que el cambio a OpenID Connect se realizó correctamente. Si tiene problemas para iniciar sesión, vuelva a la página Modificar proveedor de identidades de Google y desactive Usar OpenID Connect para revertir a OpenID 2.0. Después de revertir, compruebe que el Id. de cliente y el Secreto que copió de Google Developers Console están introducidos correctamente para el espacio de nombres: por ejemplo, compruebe si hay errores de escritura.

  4. Migre los identificadores de los usuarios en el sistema back-end de OpenID 2.0 a OpenID Connect

    Debe migrar los identificadores de los usuarios en el sistema back-end desde los identificadores de Google Open ID 2.0 existentes a los nuevos identificadores de Google OpenID Conectar antes del 1 de enero de 2017. Este paso requiere cambios de código. Para obtener más información, consulte How to: Migrate your users's existing Open ID 2.0 identifiers to new OpenID Conectar user identifiers (Cómo: Migrar los identificadores de open ID 2.0 existentes de los usuarios a nuevos identificadores de usuario de OpenID Conectar

Cómo: Crear una aplicación de Google+

Necesitará una cuenta de Google para realizar los pasos siguientes; si no tiene una, puede obtener una en https://accounts.google.com/SignUp.

  1. En una ventana del explorador, vaya a google Developers Console e inicie sesión con sus credenciales de cuenta de Google.

  2. Haga clic en Crear proyecto y escriba el Nombre del proyecto y el ID del proyecto. Active la casilla de las Condiciones de servicio. Después, haga clic en Crear. Al hacer esto, se registrará la aplicación en Google.

    Google Developer Console New Project dialog

  3. Haga clic en Autenticación de API & en el panel izquierdo. Luego, haga clic en Credenciales. En OAuth, haga clic en Crear ID de cliente nuevo. Elija Aplicación web y haga clic en Configurar la pantalla de consentimiento. Indique el Nombre del producto y haga clic en Guardar.

    Google Developer Console Consent screen

  4. Haga clic en Autenticación de API & en el panel izquierdo. Luego, haga clic en APIs. En Navegar por las APIs, busque Google+ API. Cambie el Estado a Activado.

    Google Developer Console Browse APIs

  5. En el diálogo Crear ID de cliente, elija Aplicación web como Tipo de aplicación.

    En el campo Orígenes autorizados de Javascript , especifique la dirección URL del nombre de dominio completo (FQDN) del espacio de nombres, incluido el "HTTPS://" inicial y el número de puerto final; por ejemplo, https://contoso.accesscontrol.windows.net:443.

    En el campo URI de redirección autorizados , especifique un URI que contenga la dirección URL del nombre de dominio completo (FQDN) del espacio de nombres, incluido el "HTTPS://" inicial y el número de puerto final, seguido de "/v2/openid"; por ejemplo, https://contoso.accesscontrol.windows.net:443/v2/openid.

    Haga clic en Crear ID de cliente.

    Google Developer Console Create Client ID screen

  6. Anote los valores de ID de cliente y Secreto de cliente de la página ID de cliente para aplicaciones web. Los necesitará para configurar la implementación de OpenID Connect de Google en el portal de administración de ACS.

    Google Developer Console Client ID for Web App

    Importante

    secreto de cliente es una credencial de seguridad importante. Manténgala en secreto.

Cómo: Migrar los identificadores de Open ID 2.0 existentes de los usuarios a los nuevos identificadores de usuario de OpenID Conectar

Después de migrar correctamente el espacio de nombres de ACS para usar la implementación de OpenID de Google Conectar, tiene hasta el 1 de enero de 2017 (según la Guía de migración de OpenID 2.0 de Google) para migrar los identificadores de los usuarios en el sistema back-end desde los identificadores actuales de OpenID 2.0 a los nuevos identificadores de OpenID Conectar.

La siguiente tabla muestra los tipos de notificación de Google que pasan a estar disponibles para ACS una vez migrado el espacio de nombres ACS para usar la implementación de OpenID Connect de Google:

Tipo de notificación URI Descripción Disponibilidad del protocolo

Identificador de nombre

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier

Identificador exclusivo para la cuenta de usuario, proporcionado por Google. Este es el identificador de OpenID 2.0 (el existente).

OpenID 2.0, OpenID Connect

Asunto

https://schemas.microsoft.com/identity/claims/subject

Identificador exclusivo para la cuenta de usuario, proporcionado por Google. Este es el identificador de OpenID Connect (el nuevo).

OpenID Connect

Nombre

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/name

Nombre para mostrar para la cuenta de usuario proporcionado por Google.

OpenID 2.0, OpenID Connect

(vea la nota a continuación)

Dirección de correo electrónico

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

La dirección de correo electrónico de la cuenta de usuario, proporcionada por Google.

OpenID 2.0, OpenID Connect

Proveedor de identidades

https://schemas.microsoft.com/accesscontrolservice/2010/07/claims/IdentityProvider

Una notificación proporcionada por ACS que le indica a la aplicación de usuario de confianza que el usuario se autenticó con el proveedor de identidades de Google predeterminado. El valor de esta notificación se puede ver en el portal de administración de ACS, en el campo Dominio kerberos de la página Editar proveedor de identidades.

OpenID 2.0, OpenID Connect

Nota

Para un usuario de Google que no tiene un perfil (registrado) de Google+, el valor del tipo de notificación Nombre es el mismo que el valor del tipo de notificación Dirección de correo electrónico de OpenID Connect.

Los tipos de notificación Identificador de nombre y Asunto pueden utilizarse para realizar el seguimiento de los identificadores únicos de los usuarios existentes en el back-end y para cambiarlos asignando los identificadores de OpenID 2.0 (los antiguos) a los identificadores de OpenID Connect (los nuevos).

Si tiene la regla “acceso directo de todas las notificaciones” de Google como proveedor de identidades en un grupo de reglas asociado a la aplicación, la aplicación empezará automáticamente a recibir el tipo de notificación Asunto.

Si anteriormente generó reglas o agregó reglas manualmente para Google como proveedor de identidades en un grupo de reglas asociado a la aplicación, tendrá que agregar el tipo de notificación Asunto manualmente. Para obtener más información sobre cómo hacerlo, consulte Reglas y grupos de reglas.

Input Claim Configuration

Por ejemplo, si anteriormente generó reglas para Google como proveedor de identidades en un grupo de reglas y, luego, agrega el nuevo tipo de notificación Asunto (como se muestra arriba), verá lo siguiente.

Google passthrough claims

La aplicación que use este grupo de reglas recibirá el tipo de notificación Asunto, además de otros tipos de notificación.

Nota

A partir del 1 de enero de 2017, cuando Google interrumpa la compatibilidad con la asignación de identificadores, ACS rellenará los tipos de notificación NameIdentifier y Asunto con el mismo identificador de usuario de OpenID Connect.

Cómo: Garantizar la preparación de la migración de una aplicación de ACS

Con una sola excepción, la migración del espacio de nombres ACS para usar la implementación de OpenID Connect de Google se puede realizar sin cambiar el código de la aplicación. La excepción se aplica si tiene la regla “acceso directo de todas las notificaciones” para Google como proveedor de identidades en un grupo de reglas asociado a la aplicación. Se debe a que, en este caso, tras la migración, se enviará a la aplicación un nuevo tipo de notificación (Asunto).

En esta sección, se describe el cambio recomendado y el procedimiento de prueba que puede seguir para asegurarse de que todas las aplicaciones que se verán afectadas por la migración estarán listas para administrar el nuevo tipo de notificación.

Dentro de este procedimiento, supongamos que usted es el propietario de un espacio de nombres ACS denominado ns-contoso y que la aplicación en producción se llama ProdContosoApp. Supongamos, también, que esta aplicación utiliza Google como proveedor de identidades y tiene la regla “acceso directo de todas las notificaciones” habilitada para Google.

Configurar

  1. Para empezar, vaya al Portal de administración de Azure, inicie sesión y, luego, haga clic en Active Directory. Seleccione el espacio de nombres ACS (ns-contoso) y, después, haga clic en Administrar para iniciar el portal de administración de ACS.

  2. En el portal de administración de ACS, haga clic en Aplicaciones de usuario de confianza en el árbol de la izquierda o haga clic en el vínculo Aplicaciones de usuario de confianza bajo la sección Introducción. Luego, haga clic en la aplicación de producción (ProdContosoApp).

  3. Anote las propiedades de ProdContosoApp, ya que las necesitará más adelante.

    Edit Relying Party Application dialog

  4. Haga clic en Grupo de reglas predeterminado para ProdContosoApp en Grupos de reglas para comprobar que tiene la regla “acceso directo de todas las notificaciones” habilitada para Google.

    Google passthrough claim

Paso 1: Configuración de una instancia de prueba de la aplicación en el espacio de nombres de ACS de producción

Configure una instancia de prueba de la aplicación, TestContosoApp, en un URI raíz diferente; por ejemplo, https://contoso-test.com:7777/. Tendrá que registrarla como una aplicación de usuario de confianza (aplicaciones de usuario de confianza) en el espacio de nombres ns-contoso.

  1. En el portal de administración de ACS, haga clic en Aplicaciones de usuario de confianza en el árbol de la izquierda o haga clic en el vínculo Aplicaciones de usuario de confianza bajo la sección Introducción. Luego, haga clic en Agregar en la página Aplicaciones de usuario de confianza.

  2. En la página Agregar aplicación de usuario de confianza, haga lo siguiente:

    • En Nombre, escriba el nombre de la aplicación de prueba. En este caso, es TestContosoApp.

    • En Modo, seleccione Escribir configuración manualmente.

    • En Dominio kerberos, escriba el URI de la aplicación de prueba. Aquí es https://contoso-test.com:7777/.

    • Dentro de este procedimiento, puede dejar en blanco URL del error (opcional).

    • En las propiedades de Formato de token, Directiva de cifrado de token y Vigencia del token (en segundos) y la sección Configuración de firma de token, utilice los mismos valores que usó para ProdContosoApp.

    • Asegúrese de que seleccionó Google como un Proveedor de identidades.

    • En Grupos de reglas, elija Crear nuevo grupo de reglas.

    Add Relying Party Application dialog

  3. Haga clic en Guardar en la parte inferior de la página.

Paso 2: Crear un grupo de reglas que simule el formato del token de ACS que recibirá la aplicación una vez que se haya migrado el espacio de nombres para usar la implementación de OpenID de Google Conectar

  1. En el portal de administración de ACS, haga clic en Grupos de reglas en el árbol de la izquierda o haga clic en el vínculo Grupos de reglas bajo la sección Introducción. Luego, haga clic en Agregar en la página Grupos de reglas.

  2. En la página Agregar grupo de reglas, indique un nombre para el nuevo grupo de reglas como, por ejemplo, ManualGoogleRuleGroup. Haga clic en Guardar.

    Add Rule Group dialog

  3. En la página Editar grupo de reglas, haga clic en el vínculo Agregar.

    Edit Rule Group dialog

  4. En la página Agregar regla de notificación, compruebe que aparecen los valores siguientes y haga clic en Guardar. Se generará la regla “acceso directo de todas las notificaciones” para Google.

    • Sección Si:

      • El Proveedor de identidades es Google.

      • El Tipo de notificación de entrada es Cualquiera.

      • El Valor de notificación de entrada es Cualquiera.

    • Sección Entonces:

      • El Tipo de notificación de salida es Acceso directo del primer tipo de notificación.

      • El Valor de notificación de salida es Acceso directo del primer valor de notificación de entrada.

    • Sección Información de regla:

      • Deje en blanco el campo Descripción (opcional).

    Add Claim Rule dialog

  5. En la página Editar grupo de reglas, haga clic en el vínculo Agregar otra vez.

  6. En la página Agregar regla de notificación, compruebe que aparecen los valores siguientes y haga clic en Guardar. Se generará una regla de notificación “estática” para Google que simula la adición de un nuevo tipo de notificación, Asunto, que es el nuevo identificador de usuario de OpenID Connect que envía Google a la aplicación después de la migración.

    • Sección Si:

      • El Proveedor de identidades es Google.

      • El Tipo de notificación de entrada es Cualquiera.

      • El Valor de notificación de entrada es Cualquiera.

    • Sección Entonces:

    • Sección Información de regla:

      • Deje en blanco el campo Descripción (opcional).

    Add Claim Rull dialog

  7. Haga clic en Guardar en la página Editar grupo de reglas.

Paso 3: Asociar el nuevo grupo de reglas a la instancia de prueba de la aplicación

  1. En el portal de administración de ACS, haga clic en Aplicaciones de usuario de confianza en el árbol de la izquierda o haga clic en el vínculo Aplicaciones de usuario de confianza bajo la sección Introducción. Luego, haga clic en TestContosoApp en la página Aplicaciones de usuario de confianza.

  2. En la página Editar usuario de confianza, elija ManualGoogleRuleGroup en la sección Configuración de autenticación y haga clic en Guardar.

    Authentication Settings

A partir de entonces, todas las solicitudes de inicio de sesión de Google que se envíen a sus aplicaciones de prueba incluirán el nuevo tipo de notificación.

Paso 4: Probar para asegurarse de que la aplicación pueda controlar la adición del tipo de notificación Subject

Compruebe que la aplicación puede administrar la presencia del nuevo tipo de notificación (Asunto) correctamente. Normalmente, una aplicación bien escrita debería ser lo suficientemente robusta como para que se agreguen nuevos tipos de notificación al token. Busque y corrija todos los problemas. Opcionalmente, también puede seguir la sección How to: Migrate your users'existing Open ID 2.0 identifiers to new OpenID Conectar user identifiers (Cómo: Migrar los identificadores de Open ID 2.0 existentes de los usuarios a la nueva sección Identificadores de usuario Conectar identificadores de usuario) para realizar la asignación de identificadores de usuario.

Paso 5: Migración del entorno de producción

Vuelva a generar e implementar la aplicación de producción (ProdContosoApp). Migre el espacio de nombres (ns-contoso) para usar la implementación de OpenID de Google Conectar siguiendo los pasos del tutorial de migración. Compruebe que ProdContosoApp funciona según lo previsto.