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. A efectos de facturación, un usuario de su grupo de usuarios se considera un usuario activo mensual (MAU) cuando 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 que inicie sesión por primera vez, en una AdminLinkProviderForUser API solicitud, ya sea en una tarea planificada de preconfiguración o en una. 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 proveedor up-to-date. 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 eres un proveedor de servicios gestionados (MSP) con una aplicación que compartes con varios clientes. Cada uno de los clientes inicia sesión en la aplicación a través de los Servicios de federación de Active Directory (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.

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 Carlos SAML 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, y. IdPs ADFS1 ADFS2 ADFS3

nota

Puede vincular a un usuario en función de reivindicaciones de atributos específicas. Esta habilidad es exclusiva de y. OIDC 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 a cada IdP desde un máximo de cinco notificaciones de atributos de IdP, tal como se define en el ProviderAttributeName parámetro de SourceUser una solicitud. AdminLinkProviderForUser API Por ejemplo, si ha vinculado al menos un usuario a los atributos de origenemail,phone, departmentgiven_name, ylocation, solo puede vincular usuarios adicionales en uno de esos cinco atributos.

  • 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 de AWS Management Console.

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

  • Puede establecer una contraseña para el perfil de usuario federado creado automáticamente en una solicitud. AdminSetUserPasswordAPI A continuación, el estado de ese usuario cambia de EXTERNAL_PROVIDER a CONFIRMED. Un usuario de este estado puede iniciar sesión como usuario federado e iniciar los flujos de autenticación API como un usuario local vinculado. También pueden modificar su contraseña y sus atributos en solicitudes autenticadas por tokenAPI, 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 identificación de un OIDC IdP y, además, comprueba el userInfo punto final de la versión 2.0 y de los proveedores. OAuth 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 su usuario ya no necesite, realice una AdminDisableProviderForUserAPIsolicitud con parámetros equivalentes.

AdminLinkProviderForUserPara obtener información adicional sobre la sintaxis de los comandos y los ejemplos, consulte la AWS SDKs.