本节书摘来自异步社区《微软云计算Windows Azure开发与部署权威指南》一书中的第6章,第6.4节,作者: 尹成 , 郝庭毅 , 张俊强 , 孙奉刚 , 寇睿明 更多章节内容可以访问云栖社区“异步社区”公众号查看。
6.4 AppFabric访问控制管理服务
访问控制管理服务是访问控制(ACS)中的重要组成部分,该部分帮助对访问控制服务命名空间进行管理和配置。
6.4.1 访问控制管理服务概述
使用OData协议就可以用编程的方式使用访问控制管理服务管理和配置ACS组件。图6-42所示为访问控制管理服务架构。
https://yqfile.alicdn.com/aaec8d20c3b7c34aa707b0be45eeca85f3ec867c.png" >
N:微软云计算jpg6-4-1.jpg
图6-42 访问控制管理服务架构
在下面的几个场景中,使用编程方式管理ACS十分有效。
- 载入SaaS服务的新用户(租客)——对于一个SaaS的云端服务,比如Office 365,用户使用前需要验证登录,这时用户对于验证方式可以有多种选择,比如Windows Live ID、Google、Facebook、Yahoo!或者AD FS 2.0。用户选择了喜欢的验证方式后,后台运行的代码就会将请求发送到控制访问管理服务并为新用户配置其选择的服务提供商。
- 部署解决方案——当部署一个新的解决方案时,可以添加一个定制任务来配置ACS并把该任务作为部署的一部分。访问控制管理服务能够帮助自动部署,不需要在部署之后进行手动配置。
- 定制用户界面——可以使用访问控制管理服务门户管理和配置ACS组件。但在某些情况下,用户界面可能需要修改,可能是由于品牌因素,或者想把其嵌入到一个更大的管理控制台中,或者不想通过基于Web的方式,这时可以使用访问控制管理服务来配置ACS设置。
- 使用访问控制管理门户不能访问的功能——在访问控制服务中,有一些需要管理员权限的服务不能完全通过访问控制管理门户访问。例如,只能使用编程的方式添加自定义的OpenID身份提供者。
6.4.2 访问ACS 2.0管理服务
要想访问某个服务命名空间的访问控制管理服务,OData客户端必须知道管理服务的URL。通过访问控制管理服务门户的管理服务页可以查看管理服务的端点URL。这个端点URL的格式是 https://YourServiceNamespace.accesscontrol.windows.net/v2/mgmt/service ,其中YourServiceNamespace是的Windows Azure服务的命名空间。
使用管理服务账户可以访问托管在ACS命名空间上的访问控制管理服务。多数情况下,该账户指的是用户名和密码,但也可以是一个证书或者一个可以用来对访问令牌签名的对称密钥。访问控制管理服务也是使用访问控制服务进行身份验证的,此时需要给访问控制服务提供一个使用OAuth WRAP协议发布的管理证书。然后,访问控制服务会给客户端发布一个SWT令牌,客户端使用该令牌调用访问控制管理服务。
下面是访问控制管理服务账户证书的3种形式。
- 密码——使用访问控制管理服务认证时,密码被放在使用OAuth WRAP协议的明文令牌里,再将该令牌发送给访问控制服务。密码字段与OAuth WRAP v0.9令牌需要的wrap_password参数对应,用户名字段则与wrap_name参数对应。
- 对称密钥——使用访问控制管理服务认证时,对称密钥用来对使用OAuth WRAP协议的SWT令牌进行签名,再将该令牌发送给访问控制服务。
- X.509证书——使用访问控制管理服务认证时,X.509证书使SAML不记名令牌的签名生效,再将该令牌发送给访问控制服务进行验证。
6.4.3 CS 2.0管理服务数据实体
实体数据模型将ACS配置数据以试题类型记录的形式组织起来,并互相关联。
每个访问控制服务命名空间默认都包含配置数据,该配置数据可以通过访问控制管理服务访问,但是不能通过访问控制管理门户访问。该配置数据主要在访问控制服务命名空间内部使用,与自定义依赖方应用程序无关。该数据包括。
- 访问控制管理依赖方应用程序——访问控制管理门户和访问控制管理服务的代表,与自定义的依赖方应用程序一样,也是访问控制命名空间的依赖方。
- 访问控制管理规则组和规则——包含对访问控制管理门户和访问控制管理服务的访问规则。在访问控制管理门户的Administration部分可以配置。
- Windows Live ID身份提供商和发行商——代表默认的Windows Live ID身份提供商和发行商。由于对访问控制管理门户进行验证的访问控制管理依赖方应用程序使用了这个身份提供商,所以不能将其删除。
- LOCAL_AUTHORITY发行商——ACS规则引擎使用的发行商,ACS使用该规则引擎发声明。