

# 在您的浏览器中查看 SAML 响应
<a name="troubleshoot_saml_view-saml-response"></a>

以下过程介绍了在排除 SAML 2.0 相关问题时，如何在浏览器中查看服务提供商的 SAML 响应。

对于所有浏览器，请转到您可以重现问题的页面。然后，针对相应的浏览器执行以下步骤：

**Topics**
+ [Google Chrome](#chrome)
+ [Mozilla Firefox](#firefox)
+ [Apple Safari](#safari)
+ [如何处理 Base64 编码的 SAML 响应](#whatnext)

## Google Chrome
<a name="chrome"></a>

**在 Chrome 中查看 SAML 响应**

这些步骤已经过 Google Chrome 版本 106.0.5249.103（官方版本）（arm64）的测试。如果您使用其他版本，则可能需要相应地调整步骤。

1. 按 **F12** 以启动 **Developer Tools**（开发人员工具）控制台。

1. 选择 **Network**（网络）选项卡，然后选择 **Developer Tools**（开发人员工具）窗口左上角的 **Preserve log**（保留日志）。

1. 重现问题。

1. （可选）如果 **Method**（方法）列在 **Developer Tools**（开发人员工具）的 **Network**（网络）日志窗格中不可见，右击任何列标签并选择 **Method**（方法）以添加列。

1. 在 **Developer Tools**（开发人员工具）的 **Network**（网络）日志窗格中查找 **SAML Post**。选择该行，然后查看顶部的 **Payload**（有效负载）选项卡。查找包含编码请求的 **SAMLResponse** 元素。关联值为 Base64 编码的响应。

## Mozilla Firefox
<a name="firefox"></a>

**在 Firefox 中查看 SAML 响应**

此过程已在 Mozilla Firefox 版本 105.0.3（64 位）上进行了测试。如果您使用其他版本，则可能需要相应地调整步骤。

1. 按 **F12** 以启动 **Web Developer Tools**（Web 开发人员工具）控制台。

1. 选择 **Network** 选项卡。

1. 在 **Web Developer Tools**（Web 开发人员工具）窗口的右上角，选择选项（小齿轮图标）。选择 **Persist logs**（保留日志）。

1. 重现问题。

1. （可选）如果 **Method**（方法）列在 **Web 开发人员工具**的 **Network**（网络）日志窗格中不可见，右击任何列标签并选择 **Method**（方法）以添加列。

1. 在表中查找 **POST** **SAML**。选择该行，然后查看 **Request**（请求）选项卡并找到 **SAMLResponse** 元素。关联值为 Base64 编码的响应。

## Apple Safari
<a name="safari"></a>

**在 Safari 中查看 SAML 响应**

这些步骤已经过 Apple Safari 版本 16.0（17614.1.25.9.10、17614）的测试。如果您使用其他版本，则可能需要相应地调整步骤。

1. 在 Safari 中启用 Web Inspector。打开 **Preferences** 窗口，选择 **Advanced** 选项卡，然后选择 **Show Develop menu in the menu bar**。

1. 现在您可以打开 Web Inspector。在菜单栏中选择 **Develop**（开发），然后选择 **Show Web Inspector**（显示 Web 检查器）。

1. 选择 **Network** 选项卡。

1. 在 **Web Inspector**（Web 检查器）窗口的左上角，选择选项（包含三条横线的小圆圈图标）。选择 **Preserve Log**（保留日志）。

1. （可选）如果 **Method**（方法）列在 **Web Inspector**（Web 检查器）的**Network**（网络）日志窗格中不可见，右击任何列标签并选择 **Method**（方法）以添加列。

1. 重现问题。

1. 在表中查找 **POST** **SAML**。选择该行，然后查看 Headers（标头）选项卡。

1. 查找包含编码请求的 **SAMLResponse** 元素。向下滚动，查找名为 `Request Data` 的 `SAMLResponse`。关联值为 Base64 编码的响应。

## 如何处理 Base64 编码的 SAML 响应
<a name="whatnext"></a>

在浏览器中找到 Base64 编码的 SAML 响应元素之后，复制这些元素并使用您偏好的 Base-64 解码工具来提取带有 XML 标签的响应。

**安全提示**  
由于您查看的 SAML 响应数据可能包含敏感安全数据，我们建议您不要使用*在线* base64 解码程序。而是使用安装在本地计算机上、不会通过网络发送 SAML 数据的工具。

**适用于 Windows 系统的内置选项 (PowerShell)：**

```
PS C:\> [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("base64encodedtext"))
```

**适用于 MacOS 和 Linux 系统的内置选项：**

```
$ echo "base64encodedtext" | base64 --decode
```

**查看解码后的文件中的值**  
查看解码后的 SAML 响应文件中的值。
+ 验证 saml:NameID 属性的值是否与经过身份验证的用户的用户名匹配。
+ 查看 https://aws.amazon.com/SAML/Attributes/Role 的值。ARN 和 SAML 提供商区分大小写，并且 [ARN](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference-arns.html) 必须与您账户中的资源匹配。
+ 查看 https://aws.amazon.com/SAML/Attributes/RoleSessionName 的值。该值必须与[声明规则](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_providers_create_saml_relying-party.html)中的值匹配。
+ 如果为电子邮件地址或账户名配置了属性值，请确保这些值正确无误。这些值必须与经过身份验证的用户的电子邮件地址或账户名相对应。

**检查是否有错并确认配置**  
检查这些值是否包含错误，并确认下面的配置是否正确。
+ 声明规则符合要求的要素，并且所有 ARN 都正确无误。有关更多信息，请参阅 [配置具有依赖方信任的 SAML 2.0 IdP 并添加陈述](id_roles_providers_create_saml_relying-party.md)。
+ 您已将最新元数据文件从 IdP 上传到 SAML 提供商中的 Amazon。有关更多信息，请参阅 [使 SAML 2.0 联合主体能够访问 Amazon Web Services 管理控制台](id_roles_providers_enable-console-saml.md)。
+ 您正确配置了 IAM 角色的信任策略。有关更多信息，请参阅 [担任角色的方法](id_roles_manage-assume.md)。