¿Alguien tiene una configuración funcional de AWS Cognito con OAuth2, OpenID o SSO?

Para usar AWS Cognito como proveedor de identidad para el plugin de OpenID Connect:

  1. Haz clic en el botón “Create a User Pool” (Crear un grupo de usuarios) dentro de la consola web de AWS Cognito.
  2. Haz clic en “Review Defaults” (Revisar valores predeterminados) para utilizar principalmente la configuración predeterminada.
    2a. Antes de crear el grupo, asegúrate de hacer clic en “Add an App Client” (Agregar un cliente de aplicación).
    2b. Crea un cliente de aplicación; asígnale un nombre y desmarca todo excepto Enable refresh token based authentication (ALLOW_REFRESH_TOKEN_AUTH) (Habilitar autenticación basada en tokens de actualización).


3. Haz clic en “Create pool” (Crear grupo).
4. Ahora, en la sección “General Settings” (Configuración general) del menú izquierdo, haz clic en “App Client” (Cliente de aplicación) y anota los valores de App client id (ID del cliente de aplicación) y App client secret (Secreto del cliente de aplicación).
5. A continuación, en la sección “App integration” (Integración de aplicaciones) del menú izquierdo, haz clic en “Domain name” (Nombre de dominio). Ingresa un subdominio aquí. El nombre que ingreses será el dominio al que se redirigirá a los usuarios cuando inicien sesión.

6. En la esquina superior izquierda de la consola de AWS Cognito, haz clic en “Federated Identities” (Identidades federadas); es un poco difícil de encontrar.
federated-identities
7. Una vez allí, haz clic en Create new identity pool (Crear un nuevo grupo de identidades).
8. Asigna un nombre al grupo de identidades.
8b. En la sección Authentication providers (Proveedores de autenticación), utiliza el ID del grupo de usuarios creado anteriormente y el ID del cliente de aplicación creado anteriormente.


9. Haz clic en “Create Pool” (Crear grupo) y permite que la consola cree los roles de IAM para usar con el nuevo grupo de identidades.
10. En este punto, ya tienes prácticamente todo lo necesario para comenzar a configurar tu instancia de Discourse con la configuración del sitio correcta, asumiendo que ya has instalado el plugin.

openid connect enabled: Activa esta opción.
openid connect client id: Utiliza el App Client Id que recuperamos en los pasos anteriores.
openid connect client secret: Utiliza el App Client Secret que vimos en los pasos anteriores.
openid connect discovery document: El enlace para la URL del documento de descubrimiento sigue el formato a continuación. Puedes ver el formato para userPoolId en la captura de pantalla del paso 8b:

https://cognito-idp.{region}.amazonaws.com/{userPoolId}/.well-known/openid-configuration

Para verificar que el formato de la URL es correcto, simplemente intenta pegarla en tu navegador; deberías obtener un JSON que devuelve el punto final de autorización, el emisor y otros datos.

openid connect authorize scope: openid email


Otras cosas que pueden ser útiles

7 Me gusta