

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 排查 IAM Identity Center 问题
<a name="troubleshooting"></a>

以下内容可帮您排查在设置或使用 IAM Identity Center 控制台时可能会遇到的一些常见问题。

## 创建 IAM Identity Center 账户实例时出现的问题
<a name="issue-account-instances"></a>

创建 IAM Identity Center 账户实例时可能会遇到一些限制。如果您无法通过 IAM Identity Center 控制台创建账户实例，或者无法通过支持的 Amazon 托管应用程序的设置体验来创建账户实例，请验证以下用例：
+  Amazon Web Services 区域 Amazon Web Services 账户 在您尝试创建账户实例时查看其他。每个 Amazon Web Services 账户仅限创建一个 IAM Identity Center 实例。要启用该应用程序，请切换到 Amazon Web Services 区域 带有 IAM 身份中心实例的，或者切换到没有 IAM 身份中心实例的账户。
+ 如果组织在 2023 年 9 月 14 日之前启用了 IAM Identity Center，管理员可能需要选择启用账户实例创建功能。请与您的管理员合作，在管理账户中通过 IAM Identity Center 控制台启用账户实例创建功能。
+ 您的管理员可能创建了服务控制策略，以限制 IAM Identity Center 账户实例的创建。请与您的管理员合作，将您的账户添加到允许列表中。

## 尝试查看已预先配置为与 IAM Identity Center 结合使用的云应用程序列表时收到错误消息
<a name="issue-account-instance-applications"></a>

当您的策略允许`sso:ListApplications`但不允许其他 IAM 身份中心时，就会发生以下错误 APIs。请更新策略，以解决此错误。

该`ListApplications`权限授权多个 APIs：
+ `ListApplications` API。
+ 一个与 IAM Identity Center 控制台中使用的 `ListApplicationProviders` API 类似的内部 API。

为了帮助解决重复问题，此内部 API 现在也会授权使用 `ListApplicationProviders` 操作。要允许公共 `ListApplications` API，但拒绝内部 API，您的策略必须加入一条声明，用来拒绝 `ListApplicationProviders` 操作：

```
      "Statement": [
    {
         "Effect": "Deny",
         "Action": "sso:ListApplicationProviders",
         "Resource": "*"
    },
    {
        "Effect": "Allow",
        "Action": "sso:ListApplications",
        "Resource": "<instanceArn>" // (or "*" for all instances)
    }
]
```

要允许内部 API，但拒绝 `ListApplications`，该策略需要仅允许 `ListApplicationProviders`。如果未明确允许，`ListApplications` API 将被拒绝。

```
      "Statement": [
    {
         "Effect": "Allow",
         "Action": "sso:ListApplicationProviders",
         "Resource": "*"
    }
]
```

当您的政策更新后，请联系 Amazon Web Services 支持 以取消此主动措施。

## 与 IAM Identity Center 创建的 SAML 断言内容有关的问题
<a name="issue1"></a>

当从访问 Amazon Web Services 账户 门户访问 SAML 应用程序时，IAM Identity Center 为 IAM Identity Center 创建和发送的 SAML 断言（包括这些断言中的属性）提供基于 Web 的调试体验。 Amazon Web Services 要查看 IAM Identity Center 生成的 SAML 断言的详细信息，请使用以下步骤。

1. 登录 Amazon Web Services 访问门户。

1. 在您登录到门户后，按住 **Shift** 键，选择相应的应用程序磁贴，然后松开 **Shift** 键。

1. 检查名为 **You are now in administrator mode (您当前处于管理员模式)** 的页面上的信息。要保留这些信息以备将来参考，请选择**复制 XML**，然后将内容粘贴到其他地方。

1. 选择**发送至 <应用程序>**继续。此选项将断言发送给服务提供商。

**注意**  
有些浏览器配置和操作系统可能不支持此步骤。已经在 Windows 10 上使用 Firefox、Chrome 和 Edge 浏览器对此步骤进行了测试。

## 特定用户无法从外部 SCIM 提供商同步到 IAM Identity Center
<a name="issue2"></a>

如果身份提供者（IdP）配置为使用 SCIM 同步将用户预置到 IAM Identity Center，则在用户预置过程中可能会发生同步失败。这可能表明 IdP 中的用户配置与 IAM Identity Center 要求不兼容。发生这种情况时，IAM Identity Center SCIM APIs 将返回错误消息，提供对问题根本原因的见解。您可以在 IdP 的日志或 UI 中找到这些错误消息。您也可以在 [Amazon CloudTrail 日志](https://docs.amazonaws.cn//awscloudtrail/latest/userguide/tutorial-event-history.html)中找到有关预置失败的更多详细信息。

有关 IAM Identity Center SCIM 实现的更多信息，包括用户对象的必要、可选和不支持参数及操作的规范，请参阅《SCIM Developer Guide》**中的 [IAM Identity Center SCIM Implementation Developer Guide](https://docs.amazonaws.cn/singlesignon/latest/developerguide/what-is-scim.html)

以下是导致此错误的几个常见原因：

1. IdP 中的用户对象缺少名字（给定）、姓氏（家族）和显示名称。 and/or 

   **错误消息：**“检测到 2 个验证错误：值*'name.givenName'*未能满足约束：成员必须满足正则表达式模式：[\$1\$1 p \$1L\$1\$1\$1 p \$1M\$1\$1\$1 p \$1S\$1\$1\$1 p \$1N\$1\$1\$1 p \$1N\$1\$1\$1 t\$1\$1 n\$1\$1 n\$1\$1 r] \$1；*'name.givenName'*无法满足约束条件的值：成员的长度必须大于或等于 1"

   1. **解决方案：**为用户对象添加名字、姓氏和显示名称。此外，请确保将 IdP 中用户对象的 SCIM 预调配映射配置为发送所有这些属性的非空值。

1. 正在向用户发送单个属性的多个值（也称为“多值属性”）。例如，用户可能在 IdP 中同时指定了工作电话号码和家庭电话号码，或者有多个电子邮件或实际地址，并且您的 IdP 配置为尝试同步该属性的多个或全部值。

   **错误消息：**“列表属性*emails*超过允许的限制 1”

   1. **解决方案选项：**

     1. 更新 IdP 中用户对象的 SCIM 预调配映射，仅发送给定属性的单个值。例如，配置仅发送每个用户工作电话号码的映射。

     1. 如果可以安全地从 IdP 中的用户对象移除其他属性，则可以移除其他值，为用户的该属性保留一个或零个值。

     1. 如果中的任何操作都不需要该属性 Amazon，请从 IdP 用户对象的 SCIM 配置映射中移除该属性的映射。

1. 您的 IdP 正在尝试根据多个属性匹配目标（在本例中为 IAM Identity Center）中的用户。由于保证用户名在给定的 IAM Identity Center 实例中是唯一的，因此您只需指定 `username` 作为用于匹配的属性即可。

   1. **解决方案：**确保您的 IdP 中的 SCIM 配置仅使用单个属性与 IAM Identity Center 中的用户进行匹配。例如，将 IdP 中的 `username` 或 `userPrincipalName` 映射到 SCIM 中用于预调配到 IAM Identity Center 的 `userName` 属性将是正确的，并且足以满足大多数实施的需求。

## 使用外部身份提供者预置用户或组时出现重复用户或组错误
<a name="duplicate-user-group-idp"></a>

如果在外部身份提供者（IdP）中预置用户或组时遇到 IAM Identity Center 同步问题，可能是因为外部 IdP 用户或组没有唯一的属性值。您可能会在外部 IdP 中收到以下错误消息：

拒绝创建新的重复资源

您可能会在以下情况下遇到此问题：
+ **方案 1**
  + 您正在使用外部 IdP 中的自定义非唯一属性，作为 IAM Identity Center 中必须唯一的属性。现有的 IAM Identity Center 用户或组无法与 IdP 同步。
+ **方案 2**
  + 您尝试创建具有重复属性的用户，但这些属性在 IAM Identity Center 中必须是唯一的。
    + 例如，您创建或拥有一个具有以下属性的 IAM Identity Center 用户：
      + **用户名：**Jane Doe
      + **主电子邮件地址：**`jane_doe@example.com`
    + 然后，您可以尝试在外部 IdP 中创建另一个具有以下属性的用户：
      + **用户名：**Richard Doe
      + **主电子邮件地址：**`jane_doe@example.com`
        + 外部 IdP 尝试在 IAM Identity Center 中同步和创建用户。不过，这些操作会失败，因为两个用户的主电子邮件地址的值是重复的，但该地址必须是唯一值。

用户名、主电子邮件地址和 externalID 必须是唯一的，外部 IdP 用户才能成功同步到 IAM Identity Center。同理，组名称必须是唯一的，外部 IdP 组才能成功同步到 IAM Identity Center。

解决方案是审查身份源的属性并确保属性是唯一的。

## 当用户名采用 UPN 格式时，用户无法登录
<a name="issue3"></a>

根据用户在登录页面上输入用户名的格式，他们可能无法登录 Amazon Web Services 访问门户。在大多数情况下，用户可以使用其普通用户名、下级登录名 (DOMAIN\$1UserName) 或 UPN 登录名 () 登录用户门户。`UserName@Corp.Example.com`例外情况是，当 IAM Identity Center 使用已启用 MFA 且验证模式已设置为**上下文感知**或**始终开启**的连接目录时。在这种情况下，用户必须使用其向下登录名 (DOMAIN\$1UserName) 登录。有关更多信息，请参阅 [Identity Center 目录用户的多重身份验证](enable-mfa.md)。有关用于登录 Active Directory 的用户名格式的一般信息，请参阅 Microsoft 文档网站上的[用户名格式](https://docs.microsoft.com/en-us/windows/desktop/secauthn/user-name-formats)。

## 修改 IAM 角色时出现了“无法对受保护的角色执行操作”错误
<a name="issue4"></a>

在查看账户中的 IAM 角色时，您可能会注意到以 “AWSReservedSSO\$1” 开头的角色名称。这些角色是 IAM Identity Center 服务在帐户中创建的角色，它们来自向帐户分配权限集。尝试从 IAM 控制台中修改这些角色将导致以下错误：

```
'Cannot perform the operation on the protected role 'AWSReservedSSO_RoleName_Here' - this role is only modifiable by Amazon'
```

这些角色只能通过 IAM Identity Center 管理员控制台进行修改，该控制台位于的管理账户中 Amazon Organizations。修改完成后，您可以将更改推送到分配的 Amazon 帐户。

## 目录用户无法重置密码
<a name="issue5"></a>

当目录用户使用 “**忘记密码？” 重置密码**时 选项在登录 Amazon Web Services 访问门户期间，他们的新密码必须遵守默认密码策略，如中所[在 IAM Identity Center 中管理身份时的密码要求](password-requirements.md)述。

如果用户输入了符合策略的密码后收到错误`We couldn't update your password`，请检查是否 Amazon CloudTrail 记录了失败。这可以通过在 “事件历史记录” 控制台中搜索 CloudTrail 或使用以下过滤器来完成：

```
"UpdatePassword"
```

如果消息显示以下内容，则可能需要联系支持人员：

```
"errorCode": "InternalFailure",
      "errorMessage": "An unknown error occurred“
```

另一个可能造成此问题的原因是应用于用户名值的命名惯例。命名惯例必须遵循特定的模式，例如“surname.givenName”。但是，有些用户名可能很长，或者包含特殊字符，这可能会导致 API 调用中丢掉字符，从而导致错误。您可能需要尝试以同样的方式通过测试用户重置密码，以验证是否是这种情况。

如果问题依旧存在，请联系 [Amazon 支持中心](https://console.amazonaws.cn/support/home#/)。

## 我的用户在权限集中被引用，但无法访问分配的帐户或应用程序
<a name="issue6"></a>

如果您使用跨域身份管理系统 (SCIM) 通过外部身份提供者进行自动预调配，则可能会出现此问题。具体而言，当删除用户或该用户所属的组，然后在身份提供者中使用相同的用户名（对于用户）或名称（对于组）重新创建时，将在 IAM Identity Center 中为新用户或组创建一个新的唯一内部标识符。但是，IAM Identity Center 的权限数据库中仍有对旧标识符的引用，因此用户或组的名称仍显示在用户界面 (UI) 中，但访问失败。这是因为 UI 引用的底层用户或组 ID 已不存在。

在这种情况下，要恢复 Amazon Web Services 账户 访问权限，您可以从最初分配给旧用户或组的 Amazon Web Services 账户访问权限中移除访问权限，然后将访问权限重新分配给该用户或组。这会使用新用户或组的正确标识符更新权限集。同样，要恢复应用程序访问权限，您可以从该应用程序的已分配用户列表中删除该用户或组的访问权限，然后重新添加该用户或组。

您还可以通过在 CloudTrail 日志中搜索引用相关用户或组名称的 SCIM 同步事件来查看是否 Amazon CloudTrail 记录了故障。

## 我无法从正确配置的应用程序目录中获取我的应用程序
<a name="issue7"></a>

如果您通过 IAM Identity Center 的应用程序目录添加了应用程序，请注意，每一家服务提供商都提供了自己的详细文档。您可以在 IAM Identity Center 控制台中，通过该应用程序的**配置**选项卡访问这些信息。

如果问题与在服务提供商应用程序与 IAM Identity Center 之间设置信任有关，请务必参阅说明手册中的故障排除步骤。

## 当用户尝试使用外部身份提供者登录时显示错误信息“出现意外错误”
<a name="issue8"></a>

出现此错误的原因可能有多种，但其中一个常见原因是 SAML 请求中的用户信息与 IAM Identity Center 中的用户信息不匹配。

为了让 IAM Identity Center 用户在使用外部 IdP 作为身份源时成功登录，必须满足以下条件：
+ SAML NameID 格式（在您的身份提供者处配置）必须为“电子邮件”
+ NameID 值必须是格式正确 (RFC2822) 的字符串 (user@domain.com)
+ nameID 值必须与 IAM Identity Center 中现有用户的用户名完全匹配（IAM Identity Center 中的电子邮件地址是否匹配并不重要，因为入站匹配基于用户名）
+  SAML 2.0 联合身份验证的 IAM Identity Center 实施仅支持身份提供者与 IAM Identity Center 之间的 SAML 响应中的 1 个断言。它不支持加密的 SAML 断言。
+ 如果您的 IAM Identity Center 帐户中启用了 [访问控制属性](attributesforaccesscontrol.md)，则以下陈述适用：
  + SAML 请求中映射的属性数量必须不超过 50。
  + SAML 请求不得包含多值属性。
  + SAML 请求不得包含多个具有相同名称的属性。
  + 该属性不得包含结构化的 XML 作为值。
  + 名称格式必须是 SAML 指定的格式，而不是通用格式。

**注意**  
IAM Identity Center 不会通过 SAML 联合身份验证为新用户或组“及时”创建用户或组。这意味着必须在 IAM Identity Center 中手动或通过自动预调配预先创建用户，才能登录 IAM Identity Center。

当您的身份提供者中配置的断言使用者服务 (ACS) 端点与您的 IAM Identity Center 实例提供的 ACS URL 不匹配时，也可能发生此错误。确保这两个值完全匹配。

此外，您可以访问 Amazon CloudTrail 并筛选事件名称 “登录”，从而进一步解决外部身份提供商**ExternalIdPDirectory登录**失败的问题。

## 错误信息“无法启用访问控制的属性”
<a name="issue9"></a>

如果启用 ABAC 的用户没有启用 [访问控制属性](attributesforaccesscontrol.md) 所需的 `iam:UpdateAssumeRolePolicy` 权限，则可能会发生此错误。

## 当我尝试为 MFA 注册设备时，我收到“不支持浏览器”消息
<a name="issue10"></a>

WebAuthn 目前支持谷歌浏览器、Mozilla Firefox、Microsoft Edge 和苹果 Safari 网络浏览器以及 Windows 10 和安卓平台。 WebAuthn 支持的某些组成部分可能有所不同，例如跨macOS和iOS浏览器的平台身份验证器支持。如果用户尝试在不支持的浏览器或平台上注册 WebAuthn 设备，他们将看到某些不支持的选项显示为灰色，或者他们会收到一条错误消息，提示不支持所有支持的方法。在这些情况下，请参阅 [FIDO2：Web 身份验证 (WebAuthn)](https://fidoalliance.org/fido2/fido2-web-authentication-webauthn/) 以获取有关 browser/platform 支持的更多信息。有关 WebAuthn IAM 身份中心的更多信息，请参阅[FIDO2 身份验证器](mfa-types.md#mfa-types-fido2)。

## Active Directory“域用户”组无法正确同步到 IAM Identity Center
<a name="issue11"></a>

Active Directory 域用户组是 AD 用户对象的默认“主组”。IAM Identity Cente 无法读取 Active Directory 主组及其成员资格。分配对 IAM Identity Center 资源或应用程序的访问权限时，使用域用户组以外的组（或分配为主组的其他组），以便组成员资格正确反映在 IAM Identity Center 身份存储中。

## MFA 无效凭证错误
<a name="issue12"></a>

在用户使用 SCIM 协议将其帐户完全预调配到 IAM Identity Center 之前，如果用户尝试使用外部身份提供者提供的帐户（例如 Okta 或 Microsoft Entra ID）登录 IAM Identity Center，就会发生此错误。将用户帐户预调配到 IAM Identity Center 后，应解决此问题。确认该帐户已预调配到 IAM Identity Center。如果没有，请检查外部身份提供者中的预调配日志。

## 尝试使用身份验证器应用程序注册或登录时，收到“出现意外错误”消息
<a name="issue13"></a>

基于时间的一次性密码（TOTP）系统（例如，IAM Identity Center 与基于代码的身份验证器应用程序搭配使用的那些系统），依赖客户端和服务器之间的时间同步。确保安装身份验证器应用程序的设备与可靠的时间源正确同步，或者在设备上手动设置时间以匹配可靠的来源，例如 NIST ([https://www.time.gov/](https://www.time.gov/)) 或其他 local/regional 等效设备。

## 我在尝试登录 IAM Identity Center 时收到“It's not you, it's us”错误
<a name="issue14"></a>

此错误表明 IAM Identity Center 实例或 IAM Identity Center 用作身份源的外部身份提供者（IdP）存在设置问题。建议验证以下各项：
+ 验证用于登录的设备上的日期和时间设置。建议允许自动设置日期和时间。若不可行，建议将日期和时间同步到已知的网络时间协议（NTP）服务器。
+ 验证上传到 IAM Identity Center 的 IdP 证书与 IdP 提供的证书相同。您可以通过导航到**设置**，从 IAM Identity Center 控制台查看证书。在**身份源**选项卡中选择**操作**，然后选择**管理身份验证**。如果 IdP 和 IAM Identity Center 证书不匹配，请将新证书导入 IAM Identity Center。
+ 确保身份提供者元数据文件中的 NameID 格式如下：
  + `urn:oasis:name:tc:SAML:1.1:nameid-format:emailAddress`
+ 如果您使用来自的 AD Connector Amazon Directory Service 作为身份提供商，请验证服务帐号的凭证是否正确且未过期。有关更多信息，请参阅 [Update your AD Connector service account credentials in Amazon Directory Service](https://docs.amazonaws.cn/directoryservice/latest/admin-guide/ad_connector_update_creds.html)。

## 我的用户没有收到来自 IAM Identity Center 的电子邮件
<a name="issue15"></a>

IAM Identity Center 服务发送的所有电子邮件都将来自地址 `no-reply@signin.aws` 或 `no-reply@login.awsapps.com`。必须配置电子邮件系统，以便接受来自这些发件人电子邮件地址的电子邮件，而不将其视为垃圾邮件或群发邮件。

## 错误：您无法delete/modify/remove/assign访问管理账户中配置的权限集
<a name="issue16"></a>

此消息表示该 [委派管理](delegated-admin.md) 功能已启用，并且只有在 Amazon Organizations中具有管理账户权限的人员才能成功执行您之前尝试的操作。要解决此问题，请以具有这些权限的用户身份登录，并尝试再次执行任务，或者将此任务分配给具有正确权限的人员。有关更多信息，请参阅 [注册成员帐户](delegated-admin-how-to-register.md)。

## 错误：未找到会话令牌或会话令牌无效
<a name="issue17"></a>

当客户端（例如 Web 浏览器）或尝试使用服务器端已撤消或 Amazon CLI失效的会话时，可能会发生此错误。 Amazon Toolkit要更正此问题，请返回到客户端应用程序或网站并重试，出现提示时还需要再次登录。这有时可能还需要您取消待处理的请求，例如来自 IDE 的 Amazon Toolkit 待处理连接尝试。

## 来自可信域的群组成员不会同步到 IAM 身份中心
<a name="issue18"></a>

如果安全组成功同步到 IAM Identity Center，但其来自可信本地域的成员未出现在 IAM Identity Center 中，则可能是该组所在 Amazon Managed Microsoft AD 且包含代表可信域用户的外国安全委托人 (FSPs) 所致。

请尝试以下步骤进行故障排除：
+ 直接从可信域同步群组：与其同步包含跨域成员的群组 Amazon Managed Microsoft AD ，不如直接从受信任的本地域创建和同步群组。这种方法之所以奏效，是因为 IAM Identity Center 可以访问源域中的实际用户对象。
+ 验证服务账号权限：确保 IAM Identity Center 服务账户对可信域中的用户对象具有所需的权限 ReadProperties 和 ListContents 权限。