为AWS北京区管理控制台集成ADFS訪问

原英文链接:http://blogs.aws.amazon.com/security/post/Tx71TWXXJ3UI14

在我们使用AWS的过程中, AWS IAM 是我们接触的第一个服务, 它具有强大的功能。可使您在AWS IAM中通过管理用户, 用户组, 策略, 角色, 证书, 密钥等来灵活而精确的控制对AWS 服务和资源的訪问和权限. 同一时候在非常多企业内部, 一般都已经部署了自己的用户管理及授权系统, 怎样将AWS的用户管理及授权纳入现有系统则成为企业的想要解决的一个问题. 本文将介绍怎样将企业内部Windows活动文件夹(Active Directory)和AWS通过ADFS(Active Directory Service)
进行集成, 从而实如今活动文件夹中管理用户对AWS服务和资源的訪问和授权.

在AWS IAM中, 我们提供了对SAML的支持, 这个功能能够让我们能够和支持该标准的身份提供商进行联合从而实现单点登陆. 对于非常多使用微软活动文件夹的企业, 我们能够使用Windows自带的ADFS进行和AWS IAM的集成.

工作原理:

在我们进行具体配置之前, 能够先看一下工作原理:

1. 首先用户訪问和AWS做了集成的ADFS网站 (https://ADFS/adfs/ls/IdpInitiatedSignOn.aspx)

2. 用户在登陆页面输入username及password, 提交以后ADFS将联系AD进行用户验证

3. 用户浏览器收到ADFS返回的SAML 断言

4. 用户浏览器将用户断言Post到AWS的Sign-in SAML终结点 (https://signin.amazonaws.cn/saml), Sign-in将调用AssumeRoleWithSAML API接口请求暂时安全凭证并使用其构建管理控制台的登陆链接

5. 用户浏览器转向使用构建的登陆链接进行登陆

配置活动文件夹:

1. 在活动文件夹中及建立用户adfsuser, 邮件地址设为[email protected]

2. 在活动文件夹中建立两个组AWSBJS-Admin, AWSBJS-ReadOnly, 这两个组会和AWS中新建的角色进行匹配

3. 将用户adfsuser加入到AWSBJS-Admin, AWSBJS-ReadOnly这两个组中

安装部署Active Directory Federation Service

我们能够參考例如以下的文档部署ADFS服务https://technet.microsoft.com/en-us/library/dn486775.aspx

导出SAML Metadata Document

訪问ADFSserver并导出 SAML Metadata Document (将ADFS换成你ADFSserver的名称)

https://ADFS/FederationMetadata/2007-06/FederationMetadata.xml

配置AWS

1. 登录 AWS管理控制台https://console.amazonaws.cn/

2. 在IAM服务中, 点击身份提供商, 选择SAML, 导入从ADFSserver上导出的SAML Metadata

3. 记录下提供商ARN记录

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

4. 新建IAM 角色ADFSBJS-Admin和ADFSBJS-ReadOnly [注意选择 授予 SAML 提供商 Web 单点登录 (Web SSO) 訪问权限, 这两个角色会和活动文件夹中的新建的用户组AWSBJS-Admin和AWSBJS-ReadOnly相应]

5. 记录各个角色的ARN

配置ADFS将AWS作为 信赖方信任

1. 打开ADFS管理界面, 选择信任关系-信赖方信任

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

2. 右键点击信赖方信任, 点击 加入信赖方信任

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

3. 点击 启动

4. 选择 导入有关在线或在本地网络公布的信赖方的数据, 在联合元数据地址栏输入下面地址,点击 下一步

https://signin.amazonaws.cn/static/saml-metadata.xml

5. 在 显示名称 中输入AWS China, 然后点击下一步

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

6. 选择 不配置多重身份验证, 点击 下一步:

7. 选择 同意全部用户訪问此信赖方, 点击下一步

8. 点击下一步:

9. 点击 关闭

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

10. 点击 关闭, 并打开编辑声明规则

为AWS 信赖方信任 建立 声明规则

1. 在编辑声明规则中, 点击 加入规则

2. 选择 转化传入声明, 点击下一步

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

3. 声明规则名称使用 NameId, 传入声明类型 选择 Windows帐户名, 传出声明类型 选择 名称ID, 传出名称ID格式 选择 永久标识符, 点击完毕

4. 再次点击 加入规则

5. 选择以声明方式发送LDAP特性, 点击 下一步

6. 声明规则名称 输入RoleSessionName, 特性存储选择 Active Directory, LDAP特性 选择 E-Mail-Address, 传出声明类型输入https://aws.amazon.com/SAML/Attributes/RoleSessionName, 点击完毕

7. 再次点击 加入规则

8. 选择 使用自己定义规则发送声明, 点击 下一步

9. 声明规则名称输入 Get AD Groups, 自己定义规则输入下面文本 (这一步用来取出登录用户所在的AD用户组, 并将其传入到暂时声明 http://temp/variable中), 点击完毕

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);

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

10. 再次点击 加入规则

11. 选择 使用自己定义规则发送声明, 点击下一步

12. 声明规则名称 输入 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-"));

13. 又一次启动 Active Directory Federation Service

測试配置效果

1. 訪问https://ADFS/adfs/ls/IdpInitiatedSignOn.aspx (将ADFS换成你ADFSserver的名称)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

2. 输入username和password

3. 验证以后, server将依据它所在的组返回它拥有的角色, 用户选择不同的角色就能够拿到不同角色的权限

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

4. 登录以后在右上角能够看到当前用户及其所使用的角色信息

总结:

上述是将ADFS和AWS管理控制台集成从而实现使用AD账号系统登录訪问AWS管理控制台的具体流程. 同一时候我们还能够通过调整ADFS本身的身份验证策略来实现多重验证等功能.

时间: 2024-08-23 15:09:53

为AWS北京区管理控制台集成ADFS訪问的相关文章

Android网络编程之使用HTTP訪问网络资源

使用HTTP訪问网络资源 前面介绍了 URLConnection己经能够很方便地与指定网站交换信息,URLConnection另一个子类:HttpURLConnection,HttpURLConnection 在 LIRLConnection的基础上做了进一步改进,添加了一些用于操作http资源的便捷方法. 1.使用HttpURLConnection HttpURLConnection继承了URLConnection,因此也可用于向指定站点发送GET请求 POST请求.它在URLConnecti

IIS6/7/8 WEBserver不能訪问grf报表模板文件的问题

通过 IE不能訪问到 .grf 报表文件,这是由于 IIS6/7/8对訪问的扩展名做了限制,除了已经定义的扩展名之外.其它的扩展名都不能訪问.这跟 IIS5 不一样,IIS5 对全部的扩展名都不做限制. 解决的方法:打开"Internet信息服务"管理界面.添加".grf"扩展名定义 MIME类型.这样就行直接下载.grf文件.详细操作步骤: 1. 打开 IIS Microsoft 管理控制台(MMC),右键单击本地计算机名称.然后单击"属性".

Odoo(OpenERP)开发实践:通过XML-RPC接口訪问Odoo数据库

Odoo(OpenERP)server支持通过XML-RPC接口訪问.操作数据库,基于此可实现与其它系统的交互与集成. 本文是使用Java通过XMLRPC接口操作Odoo数据库的简单演示样例.本例引用的jar包包含xmlrpc-common-3.1.3.jar, xmlrpc-client-3.1.3.jar和ws-commons-util-1.0.2.jar.如须要,可点击这里下载. package memo.by.weichen; import java.net.URL; import ja

訪问远程WAMP 下phpmyadmin

WAMP环境是一个非常优秀的webservice集成环境,它集成的phpmyadmin也是一款非常优秀的数据库訪问软件.wamp默认安装下,phpmyadmin工具仅仅能本地用,在站点开发中,数据库都是在另外的server上,那么wamp下怎样訪问呢? 文章带来"怎样訪问远程wamp下的phpmyadmin?" wamp2.5(32bit)环境 集成环境版本号(Apache : 2.4.9 MySQL : 5.6.17 PHP : 5.5.12 PHPMyAdmin : 4.1.14

通过rinetd实现port转发来訪问内网的服务

一.   问题描写叙述 通过外网来訪问内网的服务 二.   环境要求 须要有一台能够外网訪问的机器做port映射.通过数据包转发来实现外部訪问阿里云的内网服务 三.   操作方法 做port映射的方案有非常多.Linux下的ssh tunnel和windows下的portmap等等,这里分享一个更稳定和简单的小工具rinetd 四.   下载安装 $ wget http://www.boutell.com/rinetd/http/rinetd.tar.gz $ tar -xvf rinetd.t

使用Hadoop ACL 控制訪问权限

使用Hadoop ACL 控制訪问权限 一.HDFS訪问控制 hdfs-site.xml设置启动acl <property> <name>dfs.permissions.enabled</name> <value>true</value> </property> <property> <name>dfs.namenode.acls.enabled</name> <value>true&l

怎样訪问pcie整个4k的配置空间

眼下用于訪问PCIe配置空间寄存器的方法须要追溯到原始的PCI规范. 为了发起PCI总线配置周期,Intel实现的PCI规范使用IO空间的CF8h和CFCh来分别作为索引和数据寄存器,这样的方法能够訪问全部PCI设备的255 bytes配置寄存器.Intel Chipsets眼下仍然支持这样的訪问PCI配置空间的方法. PCIe规范在PCI规范的基础上,将配置空间扩展到4K bytes,至于为什么扩展到4K,详细能够參考PCIe规范,这些功能都须要配置空间.原来的CF8/CFC方法仍然能够訪问全

ios 7.1 7.1.1 半完美越狱后 电脑訪问手机越狱文件夹的方法

7.1和7.1.1因为越狱不成熟,半完美越狱后电脑上无法訪问系统越狱文件夹,如var usr 等等. 今天有些意外地发现,能够在电脑上使用手机的越狱文件夹我手机 i4 7.1.1 联通 半完美越狱,没装Afc2Add,也没装Appsync 附上  --->我的半完美越狱过程 好了,以下直接正题 一.前提,必须安装ifile!     打开ifile,并转到 /var/mobile/media 文件夹下,然后点击右上角的 [ 编辑 ]如图: 二.点左下角的 + 号创建,如图: 三.点 [ 类型],

C++ 訪问控制权限图解

基类訪问权限 类继承方式 子类訪问权限           public   public   protected public protected   private   No Access   public   protected   protected protected protected   private   No Access   public   private   protected private private   private   No Access