Windows Azure Access Control Service是基于Token的一种验证模式,旨在对你的应用程序设计好的验证功能,比如在public的云计算平台上发布你的应用程序和服务,如果不像所有的模块的功能都会被匿名的用户所访问,这时候你的工作就是需要依赖于ACS来保护你的程序和数据了。
ACS工作原理是这样的,首先Client将会被导向你的应用程序在云端的地址,这时候应用程序会判断你的权限,如果不符合验证规则,ACS自动提供一个Identity Providers的功能,这个功能的作用是让你设置你需要验证的方式,比如Google账号,FaceBook,ADFS,或者是自己定义的一套验证功能(通过SQL Azure数据库验证用户名和密码),这个时候由这些providers来验证你的账户,如果通过了这些验证,那么这些provider将会返回一个Identity Provider的Token给客户端,然后再由客户端将这个Token发给ACS(包含在HttpRequest
header上),然后由ACS来判断这些Token是不是受信任的provider发送过来的,如果是则通过验证码。
可能上面的步骤有些复杂,但是这种工作机制的确很好的解决的第三方验证和云端的验证的结合,大大减轻了不同验证手段的结合,比如你可以使用表单验证,使用Window验证,使用数据库验证,或者同时使用多种验证,你的工作只是建立一个个对应的provider并且与ACS结合。
放一张图片介绍下ACS的机制:
这里我们简单创建一个示例来介绍怎么在你的Cloud程序中引入ACS验证功能
首先创建好你的cloud application,功能这里写的非常简单,有一个Content.aspx页面(只能被验证用户访问),然后再All文件夹下有个Default.aspx页面,可以被所有用户访问(包含登录功能)。这里我们需要设置访问权限,web.config中添加如下XML节点:
<location path="All">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
这里表示All文件夹下的所有文件可被任何用户访问(包括匿名用户)。接着你的工作是将你的应用程序发布到IIS(也可以不发布,但是指定好程序的端口),这一步很重要,因为ACS需要通过你的IP和端口来确定目标应用程序。然后你需要进入ACS的Portal设置好Identity provider,这里我建立一个普通的STS site (预先安装WIF),ASP.NET Security Token Service Web Site, 这是一个基于WIF的自定义方式,你可以在这个site上面写你的验证逻辑(自定义)。
在你的ACS Portal上面建立这些identity provider (这里写的很详细,如何配置及每个字段的意思。例如RealM就是你的程序地址:http://localhost:7777/Content.aspx),还有Token时长等一些设置,好了之后关联这个providers到你的应用程序,这里我们用了3个。Google,Windows Live和刚刚创建的WIF验证。
参阅:http://msdn.microsoft.com/en-us/wazplatformtrainingcourse_introtoacs2_topic2#_Toc309123875
配置好之后,请右键点击你的应用程序并且点击“Add STS Reference”添加ACS作为你的程序使用的STS,Application URI是你的应用程序地址,下一步选中“Use Existing STS”,并且从Azure Portal上复制下来你的ACS地址:
例如https://xxx.accesscontrol.windows.net/FederationMetadata/2007-06/FederationMetadata.xml
后面继续点击Next即可。
分享到:
相关推荐
window azure service platform 文档 非常知道的一看。 多了解对大家有好处的
Azure Stack App Service介绍.pdf
Azure App Service on Microsoft Azure Stack, developer Ninjitsu: Above and below the clouds!在AzureStack上开发Azure App Service
DevOps tools introduce: jenkins: ... azure :Microsoft Azure 是一个开放而灵活的企业级云计算平台。通过 IaaS + PaaS 帮助你加快发展步伐,提高工作效率并节省运营成本。免费试用。 container service
Azure Stack App Service技术原理.pptx
Azure OpenAI Service 及行业应用.pdf
微软Azure Stack App Service技术内幕.pdf
Azure Container Service Engine容器服务介绍.docx
azure-appservice-static:将静态站点部署到azure AppService
描述如何使用Windows Azure Cloud Service部署Java应用
Microsoft Azure Service Fabric架构,描述
three leading experts show how to plan, deploy, and operate Microsoft Azure with outstanding levels of control, security, and compliance. You’ll learn how to prepare infrastructure with Microsoft’s...
Laravel开发-laravel-azure-servicebus-queue 扩展Laravel队列以支持Microsoft Azure服务总线队列。
Queue存储服务与应用程序问通信、云上的关系数据库:SQL Azure、云上的访问控制技术:AppFabric Access Control、云服务的集散中心:AppFabric Service Bus、Windows Azure与其他平台的互操作性、云计算与Windows ...
为何选择微软 Azure ? 全球最大部署的公有云,最广的CDN覆盖 开放、完整的伙伴生态系统 最智能的公有云 Azure帮助客户构建并扩展一流的云应用 提升效率 促进创新 革新业务 值得您信赖的云 全球范围内的网络攻击...
问题陈述生成一个Azure Servicebus SAS(共享访问签名)令牌格式操作使用 定义格式用法示例安装opctl op install github.com/opspec-pkgs/azure.servicebus.sas-token.generate#1.1.0跑步opctl run github....
内容概要: 通过本脚本可以让读者体验使用PowerShell一键部署React App 到Azure云App Service(web应用)的快感。在Azure云上提供了多种部署方式,比如可以用Git直接push代码,也可以使用FTP上传编译之后的代码。还...
微软Azure Stack产品介绍.pdf
In this book, we will learn about planning and deployment of Cloud Fabric for Windows Azure Pack, Azure Pack components, VM Clouds and IaaS offerings, PaaS Offering including WebSites & Service Bus, ...
azure-service-bus::cloud_selector:Azure Service Bus服务问题跟踪和示例