在我们使用 AWS 的过程中, AWS IAM 是我们接触的第一个服务, 它具有强大的功能,可使您在 AWS IAM 中通过管理用户, 用户组, 策略, 角色, 证书, 密钥等来灵活而精确的控制对 AWS 服务和资源的访问和权限. 同时在很多企业内部, 一般都已经部署了自己的用户管理及授权系统, 如何将 AWS 的用户管理及授权纳入现有系统则成为企业的想要解决的一个问题. 本文将介绍如何将企业内部 Windows 活动目录(Active Directory)和 AWS 通过 ADFS(Active Directory Service) 进行集成, 从而实现在活动目录中管理用户对 AWS 服务和资源的访问和授权.
在 AWS IAM 中, 我们提供了对 SAML 的支持, 这个功能可以让我们可以和支持该标准的身份提供商进行联合从而实现单点登陆. 对于很多使用微软活动目录的企业, 我们可以使用 Windows 自带的 ADFS 进行和 AWS IAM 的集成.
工作原理:
在我们进行详细配置之前, 可以先看一下工作原理:
配置活动目录:
安装部署 Active Directory Federation Service
我们可以参考如下的文档部署 ADFS 服务
https://technet.microsoft.com/en-us/library/dn486775.aspx
导出 SAML Metadata Document
访问 ADFS 服务器并导出 SAML Metadata Document (将 ADFS 换成你 ADFS 服务器的名称)
https://ADFS/FederationMetadata/2007-06/FederationMetadata.xml
配置 AWS
配置 ADFS 将 AWS 作为 信赖方信任
https://signin.amazonaws.cn/static/saml-metadata.xml
点击 关闭, 并打开编辑声明规则
为 AWS 信赖方信任 建立 声明规则
c:[Type == “http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname”, Issuer == “AD AUTHORITY”]
=> add(store = “Active Directory”, types = (“http://temp/variable”), query = “;tokenGroups;{0}”, param = c.Value);
再次点击 添加规则
选择 使用自定义规则发送声明, 点击下一步
声明规则名称 输入 Roles, 自定义规则中输入以下文本 (这部分主要是用来映射 AD 中的用户组 和 AWS 中的角色之间的对应关系, 其中红色部分需要根据我们前面所建的 AD 用户组名称 和 身份提供商的 ARN 和角色的 ARN 调整), 点击完成
c:[Type == “http://temp/variable”, Value =~ “(?i)^AWSBJS-“]
=> issue(Type = “https://aws.amazon.com/SAML/Attributes/Role”, Value = RegExReplace(c.Value, “AWSBJS-“, “arn:aws-cn:iam::761602622223:saml-provider/ADFS,arn:aws-cn:iam::761602622223:role/ADFSBJS-“));
重新启动 Active Directory Federation Service
测试配置效果
总结:
上述是将 ADFS 和 AWS 管理控制台集成从而实现使用 AD 账号系统登录访问 AWS 管理控制台的详细流程. 同时我们还可以通过调整 ADFS 本身的身份验证策略来实现多重验证等功能.
本文转载自 AWS 技术博客。
原文链接:
https://amazonaws-china.com/cn/blogs/china/adfs-bjs/
评论