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:
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+).
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.
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.
Cambie el espacio de nombres ACS para usar la implementación de OpenID Connect de Google
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.
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.
En la página Modificar proveedor de identidades de Google, active Usar OpenID Connect.
En los campos Id. de cliente y Secreto de cliente (ahora habilitados), copie los valores correspondientes de la aplicación de Google+.
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.
Haga clic en Save(Guardar).
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.
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.
En una ventana del explorador, vaya a google Developers Console e inicie sesión con sus credenciales de cuenta de Google.
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.
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.
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.
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.
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.
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.
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.
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
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.
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).
Anote las propiedades de ProdContosoApp, ya que las necesitará más adelante.
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.
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.
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.
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.
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
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.
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.
En la página Editar grupo de reglas, haga clic en el vínculo Agregar.
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).
En la página Editar grupo de reglas, haga clic en el vínculo Agregar otra vez.
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:
El Tipo de notificación de salida es Escribir tipo. En el campo , escriba https://schemas.microsoft.com/identity/claims/subject.
El Valor de notificación de salida es Escribir valor. En el campo, escriba 123456.
Sección Información de regla:
- Deje en blanco el campo Descripción (opcional).
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
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.
En la página Editar usuario de confianza, elija ManualGoogleRuleGroup en la sección Configuración de autenticación y haga clic en Guardar.
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.