2011-05-19 71 views
3

我正在使用Azure ACS並將其合併到我的.NET 4.0網站的SSO策略中。我在規則組頁面看到可以存儲一堆不同的聲明並將其傳回RP(例如國家,街道地址,電話等)。看起來您也可以返回任何要創建的聲明類型。這讓我想到了很多與存儲用戶信息有關的問題:Azure ACS併爲用戶存儲信息vs本地?

  • 在ACS vs本地數據庫表中存儲用戶信息(除nameidentifier之外)是否有意義?
  • 這聽起來像你可以在他們內部制定無限的規則組和規則。那是對的嗎?
  • 我會處理公司內部的不同公司和用戶。爲每個公司創建一個規則組,然後爲每個用戶制定規則是明智的選擇?
  • 看起來這個API非常強大,並且可以通過註冊頁面等來自動完成此操作。正確或不正確?
  • 是否可行並建議針對ACS運行查詢以返回有關用戶的信息(例如,在他們離線時查詢其電子郵件地址以向他們發送關於某事的消息)
  • 您是否可以獲取批量信息用於ACS的報告目的?

回答

5

簡短的回答一般是「是」,但當然有更長的答案:-)。

在ACS和本地數據庫表中存儲用戶信息(除nameidentifier之外)是否有意義? 是的,它可能是有道理的。但出於優化目的,您可能會在其他地方(應用程序本地)保留一些用戶配置文件信息的副本。 ACS規則信息將是「主記錄」,只要您獲取令牌並檢查是否有更改,您就會更新本地存儲中的值。

它聽起來像你可以在他們內部制定無限的規則組和規則。那是對的嗎? 不,「無限」是一個很大的數字。命名空間,依賴方和規則的數量是有限的。檢查文檔。 ACS還支持「級聯」轉換,這可以幫助您減少規則的數量。

例如:

  • 電子郵件:[email protected] - >公司:Contoso的
  • 公司:Contoso的 - >語言:英語

的第二個規則將被觸發每當聲明類型爲「公司」,價值「Contoso」已發佈。

然後,你可以有:

的 「語言」,要求將被自動添加。

我會處理公司內部的不同公司和用戶。爲每個公司創建一個規則組,然後爲每個用戶制定規則是明智的選擇? 在多租戶環境中,最好爲每個租戶建立一個依賴方。這就是我們在示例7(Federation With Multiple Partners)中所做的工作:http://claimsid.codeplex.com

看起來這個API非常強大,並且可以通過註冊頁面自動完成此操作。正確或不正確?

難道是可行的,並建議(當他們離線送他們對某事的消息如查詢他們的電子郵件地址)來運行鍼對ACS查詢要返回有關用戶的信息 它是可能的。但是,ACS中沒有「用戶」的概念。所以你必須從規則中解碼。您不能像「GetUserprofile(字符串用戶)」

您可以獲取用於報告目的的批量信息脫離ACS嗎? 該API支持批量信息,但對於報告,可能會更好地在您自己的數據庫上覆制信息。

最後一個思想:ACS規則今天引擎非常簡單,只相比有什麼ADFS可今天,在這裏的規則可真複雜做(如數據庫查詢等)

做簡單的轉換(加級聯),但沒有
+0

謝謝你的偉大答案!我有一個問題是關於多租戶環境。我會讓來自不同公司的多個用戶訪問我的SaaS。我的印象是,依賴方是一個URL的代名詞。看看示例7,我想我會在我的應用程序中啓用路由,以便用戶可以輸入http://www.robsite.com/ {他們的公司名稱},這將轉化爲ACS的方式? – Rob 2011-05-19 18:50:16