AWS Identity and Access Management
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

获取 OpenID Connect 身份提供商的指纹

在 IAM 中创建 OpenID Connect (OIDC) 身份提供商时,您必须为身份提供商 (IdP) 提供指纹。指纹是与 OIDC 兼容的 IdP 使用的唯一服务器证书的签名。当您在 IAM 中创建 OIDC 身份提供商时,表示您信任由能够访问您的 AWS 账户的 IdP 验证的身份。通过提供 OIDC IdP 的指纹,您向 AWS 表明您希望信任具有此访问权的特定 OIDC IdP。

当您使用 AWS Command Line Interface、Windows PowerShell 工具 或 IAM API 创建 OIDC 身份提供商时,必须手动获取指纹并将它提供给 AWS。当您使用 IAM 控制台创建 OIDC 身份提供商时,此控制台会尝试为您获取指纹。建议您还要手动获取 OIDC IdP 的指纹。然后,检查通过 IAM 控制台获取的指纹是否与您期望 OIDC 提供商所提供的指纹一致。

您可以使用 Web 浏览器和 OpenSSL 命令行工具获取 OIDC 提供商的指纹。有关更多信息,请参阅以下部分。

获取 OIDC IdP 的指纹

  1. 您需要先获取 OpenSSL 命令行工具,然后才能获取 OIDC IdP 的指纹。您可使用此工具下载 OIDC IdP 的证书链并生成证书链中最终证书的指纹。如果需要安装和配置 OpenSSL,请遵循安装 OpenSSL配置 OpenSSL 中的说明。

  2. 从 OIDC IdP 的 URL 开始(例如,https://server.example.com),然后添加 /.well-known/openid-configuration 以构成该 IdP 的配置文档的 URL,如下所示:

    https://server.example.com/.well-known/openid-configuration

    在 Web 浏览器中打开此 URL,将 server.example.com 替换为 IdP 的服务器名称。

  3. 在 Web 浏览器中显示的文档中找到 "jwks_uri"。(使用 Web 浏览器的查找功能在页面上找到此文本。)"jwks_uri" 文本后面会跟有一个冒号 (:),然后是一个 URL。复制 URL 的完全限定域名。不包括 https:// 或在顶级域后的任何路径。

  4. 使用 OpenSSL 命令行工具可执行以下命令。将 keys.example.com 替换为您在步骤 3 中获取的域名。

    openssl s_client -showcerts -connect keys.example.com:443
  5. 在命令窗口中向上滚动,直至看到类似于以下示例的证书。如果您查看多个证书,请找到显示的最后一个证书(在命令输出底部)。

    -----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ 21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4 nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb FFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE= -----END CERTIFICATE-----

    复制证书(包括 -----BEGIN CERTIFICATE----------END CERTIFICATE----- 行)并将其粘贴到文本文件中。然后使用文件名 certificate.crt 保存该文件。

  6. 使用 OpenSSL 命令行工具可执行以下命令。

    openssl x509 -in certificate.crt -fingerprint -noout

    您的命令窗口将显示类似于以下示例的证书指纹:

    SHA1 Fingerprint=99:0F:41:93:97:2F:2B:EC:F1:2D:DE:DA:52:37:F9:C9:52:F2:0D:9E

    从此字符串中去掉冒号 (:) 字符以生成最终指纹,如:

    990F4193972F2BECF12DDEDA5237F9C952F20D9E
  7. 如果您要使用 AWS CLI、Windows PowerShell 工具 或 IAM API 创建 IAM 身份提供商,请在创建该提供商时提供此指纹。

    如果您要在 IAM 控制台中创建 OIDC 提供商,请在创建 OIDC 提供商时将此指纹与控制台的 Verify Provider Information (确认提供商信息) 页面中显示的指纹进行对比。

    重要

    如果您获得的指纹与您在控制台中看到的指纹不匹配,则不应该在 IAM 中创建该 OIDC 提供商。您应等待一段时间,在创建提供商之前确保指纹匹配,然后再次尝试创建 OIDC 商。如果第二次尝试后指纹仍然不匹配,请使用 IAM 论坛联系 AWS。

安装 OpenSSL

若您尚未安装 OpenSSL,请遵循本部分的说明进行安装。

在 Linux 或 Unix 上安装 OpenSSL

  1. 请转到 OpenSSL:源、Tarball (https://openssl.org/source/)。

  2. 下载最新的源代码和构建数据包。

如要在 Windows 系统上安装 OpenSSL

  1. 请转到 OpenSSL:二进制文件分发 (https://wiki.openssl.org/index.php/Binaries) 以获取可从中安装 Windows 版本的站点的列表。

  2. 按照所选站点上的说明进行操作以开始安装。

  3. 如果系统要求您安装 Microsoft Visual C++ 2008 Redistributables,但您的系统上未安装此组件,请选择适用于您的环境的下载链接。请遵循 Microsoft Visual C++ 2008 Redistributable Setup Wizard 提供的说明。

    注意

    如果您不确定您的系统是否安装有 Microsoft Visual C++ 2008 Redistributables,可以先尝试安装 OpenSSL。如果尚未安装 Microsoft Visual C++ 2008 Redistributables,OpenSSL 安装程序将显示提醒。确保您安装的架构(32 位或 64 位)与您所安装的 OpenSSL 版本相匹配。

  4. 安装完 Microsoft Visual C++ 2008 Redistributables 之后,请选择适合您的环境的 OpenSSL 二进制文件版本,然后将文件保存到本地。启动 OpenSSL Setup Wizard

  5. 请按照 OpenSSL Setup Wizard (OpenSSL 设置向导) 中所述的说明进行操作。

配置 OpenSSL

在使用 OpenSSL 命令之前,您必须对操作系统进行配置,使其获得有关 OpenSSL 安装位置的信息。

在 Linux 或 Unix 上配置 OpenSSL

  1. 在命令行处,将 OpenSSL_HOME 变量设置到 OpenSSL 的安装位置:

    $ export OpenSSL_HOME=path_to_your_OpenSSL_installation
  2. 设置包含 OpenSSL 安装文件的路径:

    $ export PATH=$PATH:$OpenSSL_HOME/bin

    注意

    您使用 export 命令对环境变量做出的任何更改仅对当前会话有效。通过在 Shell 配置文件中设置环境变量,您可对其进行持久性更改。有关更多信息,请参阅您的操作系统文档。

如要在 Windows 系统上配置 OpenSSL

  1. 打开 Command Prompt 窗口。

  2. OpenSSL_HOME 变量设置到 OpenSSL 的安装位置:

    C:\> set OpenSSL_HOME=path_to_your_OpenSSL_installation
  3. OpenSSL_CONF 变量设置为 OpenSSL 安装中配置文件的位置:

    C:\> set OpenSSL_CONF=path_to_your_OpenSSL_installation\bin\openssl.cfg
  4. 设置包含 OpenSSL 安装文件的路径:

    C:\> set Path=%Path%;%OpenSSL_HOME%\bin

    注意

    您在 Command Prompt (命令提示符) 窗口中对 Windows 环境变量所做的任何更改只对当前的命令行会话有效。通过将环境变量设置为系统属性,您可对其执行永久性更改。具体过程取决于您使用的 Windows 版本。(例如,在 Windows 7 中,依次打开 Control PanelSystem and SecuritySystem。然后,依次选择 Advanced system settingsAdvanced 选项卡和 Environment Variables。)有关更多信息,请参阅 Windows 文档。

本页内容: