跳至内容

如何对 IAM Identity Center SCIM 预调配的“拒绝创建新的重复资源”错误进行故障排除?

2 分钟阅读
0

我使用 AWS IAM Identity Center 为用户和组使用了跨域身份管理系统 (SCIM) 预调配。SCIM 或自动预调配失败并显示错误“拒绝创建新的重复资源。”

简短描述

出现此错误是因为用户名、电子邮件地址或外部 ID 属性不是唯一值。当显示名称或外部 ID 不是组的唯一值时,也会出现此错误。有关详细信息,请参阅使用自动预调配的注意事项

解决方法

要解决此错误,请使用您的身份存储 ID 搜索重复的属性。然后,完成以下步骤以重新预调配用户或组,或者删除并创建新的用户或组。

**注意:**如果在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

在以下 AWS CLI 命令中,替换这些值:

  • YOUR-REGION 替换为您的 AWS 区域
  • YOUR-IDENTITY_STORE_ID 替换为您的身份存储 ID
  • YOUR-USER-NAME 替换为您的用户名
  • YOUR-EMAIL-ADDRESS 替换为您的电子邮件地址
  • YOUR-EXTERNAL-ID 替换为您的外部 ID
  • YOUR-TENANT_ID 替换为您的租户 ID
  • YOUR-GROUP-NAME 替换为您的组名称

获取您的身份存储 ID

运行 list-instances 命令:

aws sso-admin list-instances --region "YOUR-REGION"

输出示例:

{
    "Instances": [
        {
            "CreatedDate": "...",
            "IdentityStoreId": "IDENTITY-STORE-ID",
            "InstanceArn": "...",
            "OwnerAccountId": "...",
            "Status": "ACTIVE"
        }
    ]
}

记下要在后续步骤中使用的身份存储 ID 值。

获取您的租户 ID

完成以下步骤:

  1. 打开 IAM Identity Center 控制台
  2. 在导航窗格中,选择 Settings(设置)。
  3. Identity source(身份来源)中,选择 Actions(操作)下拉列表。
  4. 选择 Manage provisioning(管理预调配)。
  5. Configuration(配置)中,复制 SCIM 端点 URL。

SCIM 端点 URL 采用以下格式:https://scim.YOUR-REGION.amazonaws.com/YOUR-TENANT-ID/scim/v2/

对用户预调配进行故障排除

要按用户名、电子邮件地址或外部 ID 搜索现有用户,请运行 get-user-id 命令。

按用户名搜索

运行以下命令:

aws identitystore get-user-id --identity-store-id "YOUR-IDENTITY_STORE_ID" --alternate-identifier '{"UniqueAttribute" : {"AttributePath": "userName","AttributeValue": "YOUR-USER-NAME"}}' --region "YOUR-REGION"

按电子邮件地址搜索

运行以下命令:

aws identitystore get-user-id --identity-store-id "YOUR-IDENTITY-STORE-ID" --alternate-identifier '{"UniqueAttribute": {"AttributePath":"emails.value", "AttributeValue": "YOUR-EMAIL-ADDRESS"} }' --region "YOUR-REGION"

按外部 ID 搜索

运行以下命令:

aws identitystore get-user-id --identity-store-id "YOUR-IDENTITY-STORE-ID" --alternate-identifier '{"ExternalId" : {"Issuer": "https://scim.aws.com/YOUR-TENANT-ID", "Id": "YOUR-EXTERNAL-ID"}}' --region "YOUR-REGION"

具有相同唯一属性的用户 ID 和身份存储 ID 输出示例:

{
    "UserId": "YOUR-USER-ID",
    "IdentityStoreId": "YOUR-IDENTITY-STORE-ID"
}

如果找不到用户 ID 或身份存储 ID,则会收到与以下内容类似的错误:

“调用 GetUserId 操作时出现错误 (ResourceNotFoundException): 未找到用户。”

重新预调配用户

确定重复属性后,为用户重新预调配其他属性,或删除该用户并创建一个新用户。

**重要事项:**要帮助您进行预调配,请联系您的身份提供者 (IdP)。

要使用 AWS 管理控制台删除用户,请参阅在 IAM Identity Center 删除用户

要使用 DeleteUser API 操作删除用户,请运行 delete-user 命令:

aws identitystore delete-user --identity-store-id "YOUR-IDENTITY-STORE-ID" --user-id "YOUR-USER-ID" --region "YOUR-REGION"

**注意:**删除用户后,您无法撤消该操作,必须为新用户重新创建分配。

组预调配故障排除

要按显示名称或外部 ID 搜索现有组,请运行 get-group-id 命令。

按显示名称搜索

运行以下命令:

aws identitystore get-group-id --identity-store-id "IDENTITY-STORE-ID>" --alternate-identifier '{"UniqueAttribute" : {"AttributePath": "displayName","AttributeValue": "YOUR-GROUP-NAME"}}' --region "YOUR-REGION"

按外部 ID 搜索

运行以下命令:

 aws identitystore get-group-id --identity-store-id "IDENTITY-STORE-ID" --alternate-identifier '{"ExternalId" : {"Issuer": "https://scim.aws.com/YOUR-TENANT-ID", "Id": "YOUR-EXTERNAL-ID"}}' --region "YOUR-REGION"

具有相同唯一属性的组 ID 和身份存储 ID 输出示例:

{
    "GroupId": "GROUP-ID",
    "IdentityStoreId": "IDENTITY-STORE-ID"
}

如果找不到显示名称或外部 ID,则会收到与以下内容类似的错误:

“调用 GetGroupId 操作时出现错误 (ResourceNotFoundException): 未找到组。”

重新预调配组

确定重复属性后,为组重新预调配其他属性,或删除该组并创建一个新组。

**重要事项:**要帮助您进行预调配,请联系您的 IdP。

要使用 AWS 管理控制台删除组,请参阅在 IAM Identity Center 删除组

要使用 DeleteGroup API 操作删除组,请运行 delete-user 命令:

aws identitystore delete-group --identity-store-id "YOUR-IDENTITY-STORE-ID" --group-id "YOUR-GROUP-ID" --region "YOUR-REGION"

**注意:**删除组后,您无法撤消该操作,必须为新组重新创建分配。

相关信息

如何在 AWS IAM Identity Center 中创建和管理用户

IAM Identity Center 问题故障排除

AWS 官方已更新 2 年前