多種 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。 通過使用簡單、熟悉的程式設計模型定義這些規則,使其代碼更為清晰。
ACS 也可用於管理用戶端許可權,因此節省了精力並降低了開發這些功能的複雜性。
在上圖顯示的方案中,最終使用者使用瀏覽器訪問應用程式。 瀏覽器接受多個身份提供程式的憑據 - 使用者可以使用 Windows Live ID、Google、Yahoo!、Facebook 或客戶的 Active Directory 登錄應用程式。 從身份提供程式獲取token後,ACS 將使用您提供的規則轉換token。 例如,身份提供程式可以傳遞電子郵件給ACS,您可以將token中的電子郵件更改為名為 「electronicmail」的claim(如果需要)。
應用程式依靠 ACS 來以應用程式可識別的方式提供claim。
下圖顯示了 Web 應用程式各部分間的步驟。 Web 服務應用程式與此類似。
您的應用程式將顯示為Relying Party。
ACS 可相容大多數常用的程式設計和運行時環境,並支援多個協定,包括 Open Authorization (OAuth)、OpenID、WS-Federation 和 WS-Trust。
ACS 中提供以下功能:
與 Windows Identity Foundation (WIF) 集成 對常用 Web 身份提供程式(包括Windows Live ID、Google、Yahoo 和 Facebook)的自帶支援 對 Active Directory F ederation 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消息傳遞可視為非同步,或「暫時分離」。 生產者(發送者)和消費者(接收者)無需同時在 線。
2011 年 9 月引入的新功能支援佇列、主題、訂閱等功能,改進了發佈/訂閱消息傳遞,從而增強了 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 消息傳遞基礎結構為發佈-訂閱、暫時分離和負載平衡方案提供支援。 解耦的通信具有眾多優勢,例如,可根據需要連接用戶端和伺服器,並以非同步方式執行操作。