多种Windows Azure服务可以帮助您将应用程序安全性扩展到云。

有三种服务可提供多个提供程序之间的身份标识映射、内部部署数据中心间的连接和相互发送消息的应用程序功能(无论应用程序位于何处)。

·  使用Windows Azure Active Directory,您可以通过位于云中的应用程序的代理身份验证在应用程序上创建单点登录应用程序。使用访问控制服务功能,您可以将来自多个提供程序的标识映射到应用程序可以识别的claims。

·   通过Service Bus,您可以使用安全消息传递和中继功能启用松散耦合的分布式应用程序。

Windows Azure Active Directory

Windows Azure Active Directory是一种云服务,可对
Windows Azure 和 Microsoft Office 365上的应用程序提供身份认证和访问功能。Windows Azure Active Directory是一种多租户云服务,Microsoft
Office 365依赖于其身份验证基础结构。

Windows Azure Active Directory利用被公认具备企业级质量的 Active Directory的功能,因此您可以轻松将应用程序迁移到云中。您可以使用访问控制服务
(ACS)(Windows Azure Active Directory的一项功能)启用单点登录、安全增强型应用程序以及与现有
Active Directory部署的简单互操作性。

访问控制服务

访问控制服务 (ACS)允许您将点登录
(SSO) 和集中授权集成到 Web应用程序中。它适用于大多数现代化平台,并与 Web和企业身份提供程序相集成。

ACS 是一种基于云的服务,它提供了对用户进行身份验证和授权以获取 Web应用程序和服务的访问权限的一种简单方式,以及将身份验证和授权从代码中分离出来的功能。您可以让
ACS安排用户的身份验证和大部分授权,而不必使用特定于应用程序的用户帐户实施身份验证系统。ACS可以集成基于标准的身份提供程序,包括企业目录(如 Active Directory)以及
Web身份标识提供商(如 Windows Live ID、Google、Yahoo!和
Facebook)。

访问控制服务是为使用claim的应用程序制定单点登录策略的一个关键部分。

使用 ACS,可以制定授权决策从应用程序中牵引出来,转变为一组声明性规则,以便将传入的安全claim转换为应用程序和服务可以识别的claim。通过使用简单、熟悉的编程模型定义这些规则,使其代码更为清晰。

 

在上图显示的方案中,最终用户使用浏览器访问应用程序。浏览器接受多个身份提供程序的凭据 -用户可以使用
Windows Live ID、Google、Yahoo!、Facebook或客户的
Active Directory登录应用程序。从身份提供程序获取token后,ACS将使用您提供的规则转换token。例如,身份提供程序可以传递电子邮件给ACS,您可以将token中的电子邮件更改为名为“electronicmail”的claim(如果需要)。

应用程序依靠 ACS来以应用程序可识别的方式提供claim。

下图显示了 Web应用程序各部分间的步骤。Web服务应用程序与此类似。

您的应用程序将显示为RelyingParty

ACS 可兼容大多数常用的编程和运行时环境,并支持多个协议,包括 Open Authorization (OAuth)、OpenID、WS-Federation和
WS-Trust。

ACS 中提供以下功能:

· 与 Windows Identity Foundation (WIF)集成

·  对常用 Web身份提供程序(包括Windows Live ID、Google、Yahoo和
Facebook)的自带支持

·  对 Active Directory Federation Services (AD FS) 2.0的自带支持

·  支持 OAuth 2.0、WS-Trust和
WS-Federation协议

·  支持 SAML 1.1、SAML 2.0和Simple
Web Token (SWT)这些token格式

·  允许用户选择其身份提供程序的可自定义的集成 Home Realm Discovery

·  基于 Open Data Protocol (OData)的管理服务,可提供对 ACS配置的编程访问

·  允许对 ACS配置进行管理访问的基于浏览器的管理门户

ACS 可以兼容几乎所有现代 Web平台,包括 .NET、PHP、Python、Java和
Ruby。

访问控制服务入门

ACS 快速跟踪 - 入门指南

访问控制服务2.0 示例和文档曾经可通过包含
ACS 2.0 生产版本的代码示例和文档的 CodePlex项目获取,
现在可以直接通过MSDN访问。

Service Bus

Service Bus 提供安全消息传递和中继功能,以便在云中构建松散耦合的分布式应用程序。这些消息传递方案可用于保护在云中客户端连接到内部部署中运行的应用程序,也可支持 Windows Azure上的端点。

中继和Brokered消息传递。中继服务可提供多种不同的中继连接选项,甚至可在可能时帮助协商直接连接。中继服务支持传统单向消息传递、请求/响应消息传递和P2P消息传递。它还支持整个
Internet 范围内的事件分发,并提供发布/订阅方案和双向 socket通信来提高点对点效率。不同于中继消息传递方案,brokered消息传递可视为异步,或“暂时分离”。生产者(发送者)和消费者(接收者)无需同时在线。

月引入的新功能支持队列、主题、订阅等功能,改进了发布/订阅消息传递,从而增强了
Service Bus。此版本在 Windows Azure平台上还支持以下新方案:

·   异步云事件 -将事件通知分发到偶然连接的客户端(例如,电话、远程 worker、网亭等)

·   事件驱动的面向服务的体系结构 (SOA) -构建可随时间轻松演变的松散耦合系统

·   高级应用程序内部消息传递 -负载水平调整和负载平衡,用于构建高可伸缩性和高弹性的应用程序。

Service Bus
中继消息传递

假设您在内部部署客户数据中心内(或在私有云中)运行应用程序。您可以向用户暴露应用程序而不将其暴露在云中。云中运行的集中“中继”服务支持多种不同的传输协议和
Web 服务标准,包括SOAP、WS-*和 REST。

使用Service Bus 中继消息传递,您可以创建一个基本
Windows Communication Foundation (WCF) 服务应用程序和一个 WCF客户端应用程序。前者配置为向 Service Bus注册发布端点,后者则通过
Service Bus端点进行调用。主机和客户端应用程序均在 Windows Server或台式计算机上执行(即,它们未托管在 Windows Azure上),并使用常见标准协议和安全措施来访问
Service Bus。

有关介绍如何构建使用 Service Bus“中继”消息传递功能的应用程序的教程,请参见Service
Bus 中继消息传递教程

Service Bus
Brokered消息传递

Service Bus Brokered消息传递功能可视为异步或分离的消息传递功能,通过
Service Bus 消息传递基础结构为发布-订阅、暂时分离和负载平衡方案提供支持。解耦的通信具有众多优势,例如,可根据需要连接客户端和服务器,并以异步方式执行操作。

有关如何在 .NET中或使用 REST
实施brokered消息传递的教程,请参见Service
Bus brokered消息传递教程

Service Bus
入门

请参见:

·   Service Bus 简介(视频)

·   Service Bus 入门

·   开发使用Service Bus 的应用程序

·   MSDN上的Service
Bus
主题

下一篇文章

Windows Azure 安全最佳实践 - 第 7 部分:提示、工具和编码最佳实践。我总结了很多最佳实践。因此,我介绍了在保护您的Windows
Azure
应用程序时需要考虑的更多事项。

以下是本系列中的文章的链接:

·  Windows
Azure 安全最佳实践 - 第 1 部分:深度解析挑战防御对策

·  Windows
Azure 安全最佳实践 - 第 2 部分:Azure 提供哪些现成可用的安全机制

·  Windows
Azure 安全最佳实践 - 第 3 部分:确定安全框架

·  Windows
Azure 安全最佳实践 - 第 4 部分:需要采取的其他措施

·  Windows
Azure 安全最佳实践 - 第 5 部分:基于Claims的标识,单点登录

·  Windows
Azure 安全最佳实践 - 第 7 部分:提示、工具和编码最佳实践

本文翻译自:

http://blogs.msdn.com/b/usisvde/archive/2012/03/14/windows-azure-security-best-practices-part-6-how-azure-services-extends-your-app-security.aspx

Windows Azure 安全最佳实践 - 第 6 部分:Azure 服务如何扩展应用程序安全性的更多相关文章

  1. Windows Azure 安全最佳实践 - 第 7 部分:提示、工具和编码最佳实践

    在撰写这一系列文章的过程中,我总结出了很多最佳实践.在这篇文章中,我介绍了在保护您的WindowsAzure应用程序时需要考虑的更多事项. 下面是一些工具和编码提示与最佳实践: · 在操作系统上运行 ...

  2. Windows Azure 安全最佳实践 - 第 5 部分:基于Claim 的标识,单点登录

    基于Claim的身份标识是处理网站与 Web 服务的身份认证和访问一种简单而强大的方式,无论您是在本地工作还是面向云工作.您可以通过减少自定义实施和使用基于Claim的单一简化标识模型,创建更安全的应 ...

  3. Windows Azure 安全最佳实践 - 第 4 部分:需要采取的其他措施

    那么,哪些安全威胁应由WindowsAzure环境缓解?哪些安全威胁必须由开发人员缓解? 开发 Windows Azure 应用程序的最佳安全做法一文说明了对于在 Windows Azure 中运行的 ...

  4. Windows Azure 安全最佳实践 - 第 3 部分:确定安全框架

    构建云应用程序时,安全始终是计划和执行Windows Azure的首要核心因素.第 1 部分提出安全是一项共同责任,Windows Azure为您的应用程序提供超出内部部署应用程序需求的强大安全功能. ...

  5. Windows Azure 安全最佳实践 - 第 2 部分:Azure 提供哪些现成可用的安全机制

    在WindowsAzure安全最佳实践 - 部分:深度解析挑战防御对策中,我介绍了威胁形势以及在您的应用程序中采用深度防御的计划. 在本部分中,我将说明 Windows Azure的安全是一项共同责任 ...

  6. Windows Azure 安全最佳实践 - 第 1 部分:深度解析挑战防御对策

    我每次与开发人员讨论将应用程序迁移到云时都围绕着两个主要问题. 1. 首先是业务.将应用程序迁移到云可以带来怎样的规模经济? 2. 其次是安全问题."云的安全性如何,尤其是Windows A ...

  7. Kubernetes生产环境最佳实践

    点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 众所周知,Kubernetes很难! 以下是在生产中使用 ...

  8. [转]在 Azure 云服务上设计大规模服务的最佳实践

    本文转自:http://technet.microsoft.com/zh-cn/magazine/jj717232.aspx 英文版:http://msdn.microsoft.com/library ...

  9. [转]Android开发最佳实践

    ——欢迎转载,请注明出处 http://blog.csdn.net/asce1885 ,未经本人同意请勿用于商业用途,谢谢—— 原文链接:https://github.com/futurice/and ...

随机推荐

  1. [html5] canvas 绘图:八卦图

    <!DOCTYPE HTML> <html> <head> <meta charset="utf-8" /> <title&g ...

  2. 解决gerber-Failed to Match All Shapes for PCB问题

    有效解决在Protel 99se导gerber时提示gerber-Failed to Match All Shapes for PCB出错问题如图 这种问题很好解决,打开这个窗口 操作方法如下图Emb ...

  3. Python 2.7 学习笔记 中文处理

    首先我们在编写python代码文件时,文件本身会采用一种编码格式,如 utf-8 或 gbk 这时我们需要在python文件的开头设置文件的编码格式,以告诉编译器. 如果文件的编码格式是 utf-8, ...

  4. cocos2dx进阶学习之屏幕适配

    背景 在学习cocos2dx时,我们在main函数中发现一句代码, #include "main.h" #include "AppDelegate.h" #in ...

  5. poj 1731 Orders(暴力)

    题目链接:http://poj.org/problem?id=1731 思路分析:含有重复元素的全排列问题:元素个数为200个,采用暴力枚举法. 代码如下: #include <iostream ...

  6. Android Paint、Canvas、Matrix使用讲解(一、Paint)

    http://blog.csdn.net/tianjian4592/article/details/44336949 好了,前面主要讲了Animation,Animator 的使用,以及桌面火箭效果和 ...

  7. 【Eclipse】报错提示删掉@Override

    是因为项目的JRE System Library版本不对,点击Edit进入Edit Library 界面,因为项目默认是使用Eclipse自带的jdk版本(Workspace default JRE) ...

  8. iOS开发之理解iOS中的MVC设计模式

    模型-视图-控制器(Model-View-Controller,MVC)是Xerox PARC在20世纪80年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已广泛应用于用户交互应用程 ...

  9. if else配对问题

    else语句总是与离它最近的if语句配对,所以在if语句的嵌套中一定要注意else语句与哪个if语句匹配 #include <iostream> using namespace std; ...

  10. C++,对象成员的访问

    成员变量和成员函数的访问可以采用以下几种访问方式:对象.成员变量名: 对象.成员函数名(实参列表)对象的指针->成员变量名; 对象的指针->成员函数名(实参列表)对象的引用.成员变量名对象 ...