Vinculación de usuarios federados a un perfil de usuario existente - Amazon Cognito

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Vinculación de usuarios federados a un perfil de usuario existente

A menudo, el mismo usuario tiene un perfil con varios proveedores de identidad (IdPs) que usted ha conectado a su grupo de usuarios. Amazon Cognito puede vincular cada aparición de un usuario al mismo perfil de usuario de su directorio. De esta forma, una persona que tenga varios usuarios de IdP puede tener una experiencia coherente en su aplicación. AdminLinkProviderForUserindica a Amazon Cognito que reconozca el identificador único de un usuario en su directorio federado como usuario del grupo de usuarios. Un usuario de su grupo de usuarios cuenta como un usuario activo mensual (MAU) a efectos de facturación si tiene cero o más identidades federadas asociadas al perfil de usuario.

Cuando un usuario federado inicia sesión en su grupo de usuarios por primera vez, Amazon Cognito busca un perfil local que usted haya vinculado a su identidad. Si no existe ningún perfil vinculado, su grupo de usuarios crea uno nuevo. Puede crear un perfil local y vincularlo a su usuario federado en cualquier momento antes de su primer inicio de sesión, en una solicitud de API AdminLinkProviderForUser o en un Desencadenador de Lambda de prerregistro.. Después de que su usuario inicie sesión y Amazon Cognito detecte un perfil local vinculado, su grupo de usuarios lee las solicitudes de su usuario y las compara con las reglas de asignación del IdP. A continuación, su grupo de usuarios actualiza el perfil local vinculado con las reclamaciones asignadas desde su inicio de sesión. De esta forma, puede configurar el perfil local con las solicitudes de acceso y conservar sus solicitudes de identidad en poder de su up-to-date proveedor. Después de que Amazon Cognito haga coincidir su usuario federado con un perfil vinculado, este siempre iniciará sesión en ese perfil. A continuación, podrá vincular más identidades de proveedores de sus usuarios al mismo perfil, lo que proporcionará a un cliente una experiencia coherente en su aplicación. Para vincular a un usuario federado que haya iniciado sesión anteriormente, primero debe eliminar su perfil existente. Puede identificar los perfiles existentes por su formato: [Provider name]_identifier. Por ejemplo, LoginWithAmazon_amzn1.account.AFAEXAMPLE. Un usuario que ha creado y, a continuación, ha vinculado a una identidad de usuario de terceros tiene el nombre de usuario con el que se creó y un identities atributo que contiene los detalles de sus identidades vinculadas.

importante

Dado AdminLinkProviderForUser que permite a un usuario con una identidad federada externa iniciar sesión como un usuario existente en el grupo de usuarios, es fundamental que solo se utilice con atributos externos IdPs y de proveedor en los que el propietario de la aplicación confíe.

Por ejemplo, si es un proveedor de servicios administrados (MSP) con una aplicación que comparte con varios clientes. Cada uno de los clientes inicia sesión en su aplicación a través de Active Directory Federation Services (ADFS). Su administrador de TI, Carlos, tiene una cuenta en cada uno de los dominios de sus clientes. Quiere que Carlos sea reconocido como administrador de aplicaciones cada vez que inicie sesión, independientemente del IdP.

Su ADFS IdPs presenta la dirección de correo electrónico de Carlos msp_carlos@example.com en la email reclamación de las afirmaciones de SAML de Carlos a Amazon Cognito. Cree un usuario en su grupo de usuarios con el nombre de usuario Carlos. Los siguientes comandos AWS Command Line Interface (AWS CLI) vinculan las identidades de Carlos desde ADFS1, ADFS2 y ADFS3. IdPs

nota

Puede vincular a un usuario en función de reivindicaciones de atributos específicas. Esta capacidad es exclusiva de OIDC y SAML. IdPs Para otros tipos de proveedores, debe vincular en función de un atributo de origen fijo. Para obtener más información, consulte. AdminLinkProviderForUser Debe establecer ProviderAttributeName en Cognito_Subject al vincular un IdP social a un perfil de usuario. ProviderAttributeValue debe ser el identificador único del usuario con el IdP.

aws cognito-idp admin-link-provider-for-user \ --user-pool-id us-east-1_EXAMPLE \ --destination-user ProviderAttributeValue=Carlos,ProviderName=Cognito \ --source-user ProviderName=ADFS1,ProviderAttributeName=email,ProviderAttributeValue=msp_carlos@example.com aws cognito-idp admin-link-provider-for-user \ --user-pool-id us-east-1_EXAMPLE \ --destination-user ProviderAttributeValue=Carlos,ProviderName=Cognito \ --source-user ProviderName=ADFS2,ProviderAttributeName=email,ProviderAttributeValue=msp_carlos@example.com aws cognito-idp admin-link-provider-for-user \ --user-pool-id us-east-1_EXAMPLE \ --destination-user ProviderAttributeValue=Carlos,ProviderName=Cognito \ --source-user ProviderName=ADFS3,ProviderAttributeName=email,ProviderAttributeValue=msp_carlos@example.com

El perfil de usuario Carlosen el grupo de usuarios tiene ahora lo siguiente: atributo identities.

[{ "userId": "msp_carlos@example.com", "providerName": "ADFS1", "providerType": "SAML", "issuer": "http://auth.example.com", "primary": false, "dateCreated": 111111111111111 }, { "userId": "msp_carlos@example.com", "providerName": "ADFS2", "providerType": "SAML", "issuer": "http://auth2.example.com", "primary": false, "dateCreated": 111111111111111 }, { "userId": "msp_carlos@example.com", "providerName": "ADFS3", "providerType": "SAML", "issuer": "http://auth3.example.com", "primary": false, "dateCreated": 111111111111111 }]
Cuestiones que debe saber acerca de la vinculación de usuarios federados
  • Puede vincular hasta cinco usuarios federados a cada perfil de usuario.

  • Puede vincular usuarios federados a un perfil de usuario federado existente o a un usuario local.

  • No puede vincular los proveedores a los perfiles de usuario del AWS Management Console.

  • El token de ID de usuario contiene todos sus proveedores asociados en elidentitiesnotificación.

  • Puedes establecer una contraseña para el perfil de usuario federado creado automáticamente en una solicitud de API. AdminSetUserPassword A continuación, el estado de ese usuario cambia de EXTERNAL_PROVIDER a CONFIRMED. Un usuario en este estado puede iniciar sesión como usuario federado e iniciar flujos de autenticación en la API como un usuario local vinculado. También pueden modificar su contraseña y sus atributos en las solicitudes de API autenticadas mediante token, como y. ChangePasswordUpdateUserAttributes Como práctica de seguridad recomendada y para mantener a los usuarios sincronizados con su IdP externo, no establezca contraseñas en los perfiles de usuarios federados. En su lugar, enlace a los usuarios a perfiles locales con AdminLinkProviderForUser.

  • Amazon Cognito rellena los atributos del usuario en un perfil de usuario local vinculado cuando el usuario inicia sesión a través del IdP. Amazon Cognito procesa las reclamaciones de identidad en el token de ID de un IdP OIDC y también comprueba el punto de conexión de userInfo de los proveedores de OAuth 2.0 y OIDC. Amazon Cognito prioriza la información de un token de ID frente a la información de userInfo.

Cuando sepa que su usuario ya no utiliza una cuenta de usuario externa que haya vinculado a su perfil, puede desvincular esa cuenta de usuario de su grupo de usuarios. Cuando vinculó su usuario, suministró el nombre del atributo del usuario, el valor del atributo y el nombre del proveedor en la solicitud. Para eliminar un perfil que tu usuario ya no necesite, realiza una solicitud de AdminDisableProviderForUserAPI con parámetros equivalentes.

Consulte AdminLinkProviderForUserpara ver ejemplos y sintaxis de comandos adicionales en los AWS SDK.