将联合用户与现有用户配置文件关联 - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

将联合用户与现有用户配置文件关联

通常,同一个用户拥有的配置文件具有您已连接到用户群体的多个身份提供者 (IdP)。Amazon Cognito 可以将用户的每次出现与目录中的同一个用户配置文件关联。这样,一个拥有多个 IdP 用户的人可以在您的应用程序中获得一致的体验。AdminLinkProviderForUser 告诉 Amazon Cognito 将联合目录中的用户的唯一 ID 识别为用户群体中的用户。当您具有零个或多个与用户配置文件相关联的联合身份时,用户群体中的一个用户将计为一个每月活跃用户 (MAU) 以进行计费

重要

由于 AdminLinkProviderForUser 允许具有外部联合身份的用户以用户群体中的现有用户身份进行登录,因此,至关重要的是,它只能与应用程序拥有者已信任的外部 IdP 和提供者属性一起使用。

例如,如果您是托管服务提供商 (MSP),具有一个与多个客户共享的应用程序。每个客户都通过 Active Directory Federation Services (ADFS) 登录您的应用程序。您的 IT 管理员 Carlos 在每个客户的域中都有一个账户。您希望 Carlos 在每次登录时都能被识别为应用程序管理员,而不考虑 IdP。

您的 ADFS IdP 在 Carlos 的 SAML 断言的 email 声明中向 Amazon Cognito 提供 Carlos 的电子邮件地址 msp_carlos@example.com。您使用用户名 Carlos 在用户群体中创建一个用户。以下 Amazon Command Line Interface (Amazon CLI) 命令将 Carlos 的来自 IdP ADFS1、ADFS2 和 ADFS3 的身份相关联。

注意

您可以根据特定属性声明关联用户。此功能对 SAML IdP 来说是独有的。对于其他提供者类型,您必须基于固定来源属性来进行关联。有关更多信息,请参阅 AdminLinkProviderForUser。当您将 OIDC 或社交 IdP 与用户配置文件关联时,必须将 ProviderAttributeName 设置为 Cognito_SubjectProviderAttributeValue 必须是用户在 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

用户群体中的用户配置文件 Carlos 现在具有以下 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 }]

有关关联联合用户需了解的事项

  • 您最多可以将五个联合用户与每个用户配置文件关联。

  • 您可以将联合用户与现有联合用户配置文件或本机用户关联。

  • 您无法在 Amazon Web Services Management Console中将提供者与用户配置文件关联。

  • 您的用户 ID 令牌在 identities 声明中含包所有关联的提供者。

有关 Amazon SDK 中的其他命令语法和示例,请参阅 AdminLinkProviderForUser