Adición y administración de proveedores de identidad de SAML a un grupo de usuarios - Amazon Cognito

Adición y administración de proveedores de identidad de SAML a un grupo de usuarios

Tras configurar el proveedor de identidades para que funcione con Amazon Cognito, podrá añadirlo a los grupos de usuarios y los clientes de aplicación. En los siguientes procedimientos se muestra cómo crear, modificar y eliminar proveedores de SAML en un grupo de usuarios de Amazon Cognito.

AWS Management Console

Puede utilizar la AWS Management Console para crear y eliminar proveedores de identidad (IdP) SAML.

Para poder crear un IdP SAML, necesitará el documento de metadatos de SAML facilitado por el IdP externo. Para obtener instrucciones sobre cómo obtener o generar el documento de metadatos de SAML necesario, consulte Configuración de un proveedor de identidades de SAML externo.

Para configurar un IdP SAML 2.0 en su grupo de usuarios
  1. Vaya a la consola de Amazon Cognito. Si se le solicita, escriba sus credenciales de AWS.

  2. Elija User Pools (Grupos de usuarios).

  3. Elija un grupo de usuarios existente en la lista o cree un grupo de usuarios.

  4. Elija la pestaña Sign-in experience (Experiencia de inicio de sesión). Localice Federated sign-in (Inicio de sesión federado) y elija Add an identity provider (Añadir un proveedor de identidad).

  5. Elija un IdP SAML.

  6. Introduzca un Nombre del proveedor. Puede pasar este nombre descriptivo en un parámetro de solicitud identity_provider al Autorizar punto de conexión.

  7. Introduzca Identificadores separados por comas. Un identificador indica a Amazon Cognito que debe comprobar la dirección de correo electrónico que introduce un usuario al iniciar sesión y, a continuación, dirigirlo al proveedor que corresponda a su dominio.

  8. Elija Add sign-out flow (Añadir flujo de cierre de sesión) si desea que Amazon Cognito envíe solicitudes de cierre de sesión firmadas a su proveedor cuando un usuario cierra la sesión. Debe configurar el IdP SAML 2.0 para enviar respuestas de cierre de sesión al punto de conexión de https://mydomain.us-east-1.amazoncognito.com/saml2/logout que se crea al configurar la IU alojada. El punto de conexión saml2/logout utiliza el enlace POST.

    nota

    Si se selecciona esta opción y el IdP SAML espera una solicitud de cierre de sesión firmada, también debe proporcionar al IdP SAML el certificado de firma del grupo de usuarios.

    El proveedor de identidades (IdP) SAML procesará la solicitud de cierre de sesión firmada y cerrará la sesión de Amazon Cognito del usuario.

  9. Elija su configuración del tipo Inicio de sesión SAML iniciado por el IdP. Como práctica recomendada de seguridad, elija Aceptar solo aserciones SAML iniciadas por el SP. Si ha preparado el entorno para aceptar de forma segura las sesiones de inicio de sesión de SAML no solicitadas, elija Aceptar solo aserciones SAML iniciadas por el SP e iniciadas por el IdP. Para obtener más información, consulte Inicio de sesión SAML en grupos de usuarios de Amazon Cognito.

  10. Seleccione un Origen de documentos de metadatos. Si su IdP ofrece metadatos SAML en una URL pública, puede elegir Metadata document URL (URL del documento de metadatos) e introducir esa URL pública. En caso contrario, elija Upload metadata document (Cargar documento de metadatos) y seleccione un archivo de metadatos que haya descargado anteriormente de su proveedor.

    nota

    Le recomendamos que introduzca la URL de un documento de metadatos si su proveedor dispone de un punto de conexión público en lugar de cargar un archivo. Amazon Cognito actualiza automáticamente los metadatos desde la URL de metadatos. Normalmente, los metadatos se actualizan cada seis horas o antes de que caduquen, lo que ocurra primero.

  11. Asigne atributos entre el proveedor SAML y el grupo de usuarios para asignar atributos de proveedor SAML al perfil de usuario de grupo de usuarios. Incluya los atributos requeridos del grupo de usuarios en la asignación de atributos.

    Por ejemplo, cuando elige User pool attribute (Atributo grupo de usuarios) email, escriba el nombre de atributo SAML tal como aparece en la aserción SAML del IdP. Si su IdP SAML ofrece aserciones SAML de ejemplo, estas podrían servirle para encontrar el nombre. Algunos IdP utilizan nombres sencillos, como email, mientras que otros utilizan nombres como el siguiente.

    http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
  12. Seleccione Crear.

API/CLI

Utilice los siguientes comandos para crear y administrar un proveedor de identidades (IdP) SAML.

Para crear un IdP y cargar un documento de metadatos
  • AWS CLI: aws cognito-idp create-identity-provider

    Ejemplo con archivo de metadatos: aws cognito-idp create-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1 --provider-type SAML --provider-details file:///details.json --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

    Donde details.json contiene:

    "ProviderDetails": { "MetadataFile": "<SAML metadata XML>", "IDPSignout" : "true", "RequestSigningAlgorithm" : "rsa-sha256", "EncryptedResponses" : "true", "IDPInit" : "true" }
    nota

    Si <SAML metadata XML> contiene instancias del carácter ", debe agregar \ como carácter de escape: \".

    Ejemplo con URL de metadatos: aws cognito-idp create-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1 --provider-type SAML --provider-details MetadataURL=https://myidp.example.com/sso/saml/metadata --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

  • API de AWS: CreateIdentityProvider

Para cargar un nuevo documento de metadatos para un proveedor de identidades (IdP)
  • AWS CLI: aws cognito-idp update-identity-provider

    Ejemplo con archivo de metadatos: aws cognito-idp update-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1 --provider-details file:///details.json --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

    Donde details.json contiene:

    "ProviderDetails": { "MetadataFile": "<SAML metadata XML>", "IDPSignout" : "true", "RequestSigningAlgorithm" : "rsa-sha256", "EncryptedResponses" : "true", "IDPInit" : "true" }
    nota

    Si <SAML metadata XML> contiene instancias del carácter ", debe agregar \ como carácter de escape: \".

    Ejemplo con URL de metadatos: aws cognito-idp update-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1 --provider-details MetadataURL=https://myidp.example.com/sso/saml/metadata --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

  • API de AWS: UpdateIdentityProvider

Para obtener información acerca de un IdP específico
  • AWS CLI: aws cognito-idp describe-identity-provider

    aws cognito-idp describe-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1

  • API de AWS: DescribeIdentityProvider

Para mostrar información acerca de todos los IdP
  • AWS CLI: aws cognito-idp list-identity-providers

    Ejemplo: aws cognito-idp list-identity-providers --user-pool-id us-east-1_EXAMPLE --max-results 3

  • API de AWS: ListIdentityProviders

Para eliminar un proveedor de identidad
  • AWS CLI: aws cognito-idp delete-identity-provider

    aws cognito-idp delete-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1

  • API de AWS: DeleteIdentityProvider

Para configurar el proveedor de identidad SAML para añadir un grupo de usuarios como una relación de confianza
  • El URN del proveedor del servicio de grupos de usuarios es: urn:amazon:cognito:sp:us-east-1_EXAMPLE. Amazon Cognito requiere un valor de restricción de audiencia que coincida con este URN en la respuesta de SAML. Configure el IdP utilizando el siguiente punto de conexión del enlace POST para el mensaje de respuesta del IdP al SP.

    https://mydomain.us-east-1.amazoncognito.com/saml2/idpresponse
  • El IdP SAML debe rellenar NameID y todos los atributos obligatorios para el grupo de usuarios en la aserción SAML. NameID se utiliza para identificar al usuario federado de SAML de forma inequívoca en el grupo de usuarios. El IdP debe pasar el ID de nombre SAML de cada usuario en un formato coherente y que distinga mayúsculas de minúsculas. Cualquier variación en el valor del ID de nombre de un usuario crea un nuevo perfil de usuario.

Para proporcionar un certificado de firma al IDP de SAML 2.0
  • Para descargar una copia de la clave pública de Amazon Cognito que el IdP pueda utilizar para validar las solicitudes de cierre de sesión de SAML, elija la pestaña Experiencia de inicio de sesión del grupo de usuarios, seleccione el IdP y, en Ver certificado de firma, seleccione Descargar como .crt.

Puede eliminar cualquier proveedor SAML que haya configurado en su grupo de usuarios con la consola de Amazon Cognito.

Cómo eliminar un proveedor SAML
  1. Inicie sesión en la consola de Amazon Cognito.

  2. En el panel de navegación, elija User Pools (Grupos de usuarios), y elija el grupo de usuarios que desea editar.

  3. Elija la pestaña Experiencia de inicio de sesión y localice Inicio de sesión con el proveedor de identidades federadas.

  4. Seleccione el botón de opción situado junto al IdP SAML que desea eliminar.

  5. Cuando se le pida Delete identity provider (Eliminar proveedor de identidad), ingrese el nombre del proveedor SAML para confirmar su eliminación y, a continuación, elija Delete (Eliminar).