# 使用 SAML2 登录 AWS 控制台(中国区)

AWS 中国区国际区的配置稍有不同,本文讲述使用 Authing SAML2 IdP 登录 AWS 中国区控制台的相关配置。

# 准备工作

如果你还没有 Authing 账号,请先注册 (opens new window)一个 Authing 账号、新建一个用户池创建一个应用

# 配置 Authing SAML2 IdP

进入控制台 > 应用 > 应用列表,找到你的应用,点击「配置」。

点击「配置 SAML2 身份提供商」,打开「启用 SAML2 Provider」开关,下方的默认 ACS 地址填写:https://signin.amazonaws.cn/saml

设置内容请粘贴以下内容:

{
  "audience": "https://signin.amazonaws.cn/saml",
  "recipient": "https://signin.amazonaws.cn/saml",
  "destination": "https://signin.amazonaws.cn/saml",
  "mappings": {
    "email": "https://aws.amazon.com/SAML/Attributes/RoleSessionName"
  },
  "digestAlgorithm": "http://www.w3.org/2000/09/xmldsig#sha1",
  "signatureAlgorithm": "http://www.w3.org/2000/09/xmldsig#rsa-sha1",
  "authnContextClassRef": "urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified",
  "lifetimeInSeconds": 3600,
  "signResponse": false,
  "nameIdentifierFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
  "samlRequestSigningCert": ""
}

最下方的自定义 SAML Response 属性添加一条,Name 属性为:https://aws.amazon.com/SAML/Attributes/Role,类型选择 Uri,值按照此格式填写 arn:aws-cn:iam::<AWS 账号 ID>:role/<角色名称>,arn:aws-cn:iam::<AWS 账号 ID>:saml-provider/<身份提供商名称>。点击「保存」。

可以先随意填写上面的 <AWS 账号 ID><身份提供商名称><角色名称>,等配置完 AWS IAM 控制台之后再来修改。

最后下载 SAML2 Identity Provider 的元数据文档:

https://core.authing.cn/api/v2/saml-idp/<应用 ID>/metadata

# 配置 AWS IAM 控制台

登录 AWS IAM 控制台 (opens new window),进入访问管理 > 身份提供商,点击「创建提供商」。

选择 SAML,填写提供商名称,上传刚刚下载的元数据文档,然后点击「下一步」。

点击「创建」。

创建成功后,进入访问管理 > 角色,点击「创建角色」。

选择 SAML2.0 身份联合,在 SAML 提供商选择刚刚创建的 SAML 提供商,这里选择 Authing,选择允许编程访问和 AWS 管理控制台访问,然后点击「下一步」。

赋予角色权限,本文选择最高权限 AdministratorAccess,然后点击「下一步」。

点击「下一步」。

填写一个角色名称,记录下面的身份提供商 arn,然后点击「创建角色」。

在角色列表找到刚刚创建的角色,点击查看详情。

记录角色 arn。

回到 Authing 控制台,在刚才随意填写的地方,将正确的角色 arn身份提供商 arn 填写到 Authing SAML2 IdP 的自定义 SAML Response 属性中,点击保存。

# 测试连接

在浏览器访问:https://core.authing.cn/api/v2/saml-idp/<应用 ID>

选择一种方式进行登录。

登录成功后会跳转到 AWS 控制台