2012-04-02 87 views
1

我目前正在嘗試理解Azure ACS與基於聲明的身份驗證以及使用自定義STS的選項的組合,並且我只是慢慢地通過(不幸的是很少)信息源。 在我花更多時間在此之前,我想確認我的計劃是否可能。 我有兩個員工和客戶通過互聯網訪問的多個azure角色(網絡工作者)。此外,員工還可以從本地網絡訪問這些角色和桌面應用程序。Azure ACS +自定義STS,可能適用於混合場景?

用戶數據來自兩個來源。我們的天青應用程序擁有關於客戶和員工的用戶數據,我們的(本地)AD僅來自員工。

爲了使登錄體驗儘可能高效(且符合人體工程學),當通過本地網絡訪問時,員工應在桌面應用程序上自動進行身份驗證(Windows集成身份驗證?)(自動由於Windows用戶配置文件上下文)和天藍色的應用程序(希望沒有登錄頁面)。 另一方面,客戶在訪問Azure應用程序時應輸入其用戶憑據,但不應在不同的「憑證來源」之間做出決定,他們只需獲取用戶名+密碼錶單即可。 換言之從本地網絡

  • 僱員訪問天青應用 - >自動登錄,集成認證/ AD數據
  • 僱員訪問從互聯網天青應用 - >用戶名+密碼形式
  • 客戶拜訪天青應用從互聯網上 - >用戶名+密碼形式

在寫這個問題,兩個浮現在腦海:

1)它甚至有可能到AU基於source/cookie/wizardry的登錄是否需要手動用戶選擇「Credential-Source」? 2)如果Azure ACS「知道」用戶名X的AD帳戶與Azure App用戶Y相同,那麼登錄哪一個會影響?應用程序是否可以在任一登錄路線上訪問相同的聲明數據?

回答

0

您可以做的一件事是在請求頁面以查看身份驗證信息時查看用戶憑據。

如果你看看......

HttpContext.Current.User.Identity 

您可以獲得關於用戶的身份信息。如果他們在域上,你會看到他們有一個域名,你可以通過編程選擇將他們引導到登錄頁面。

讓我也說我從來沒有試過這樣做,所以我不知道是否有內置的方式來做到這一點,只需在web.config中配置一些東西。

1

您確定需要自定義STS嗎?這聽起來像開始你只是想讓你的AD用戶登錄到你的天藍色的應用程序使用他們的Windows憑據,如果他們在域上(沒有密碼提示)。 ADFS 2.0和WIF將促進這一點。另外,如果您設置了ADFS代理服務器,以便當這些相同的用戶從域外瀏覽到您的應用時,系統會提示您輸入其域憑證。

現在您的AD用戶已設置,但如果您希望您的域以外的用戶可以訪問您的應用程序,則可以將ADFS與另一個組織的ADFS服務器聯合,或者使用ACS啓用使用消費者身份提供程序谷歌,雅虎和LiveID,這些都是內置選項提供的。如果你確實這樣引入了ACS,你可以將你的公司ADFS服務器配置爲你的ACS實例上的身份提供者,以及谷歌,雅虎和什麼不是,這樣當你的用戶瀏覽你的站點時,他們將被提示選擇他們的身份提供者希望登錄。

下面是演示如何使用ADFS進行身份驗證的雲應用一個夢幻般的白皮書:可以發現in technet

http://www.microsoft.com/download/en/details.aspx?id=13789

有關部署ADFS(如部署ADFS代理)更多詳細信息,。

而對於ACS,有導遊和樣品放在如何將它集成到Azure應用程序,以及如何添加ADFS身份提供者:http://msdn.com/acs

+0

關於僱員的部分應該是正是我需要的東西(對於員工方案)。不幸的是,建立與客戶ADFS的綁定是不可能的(某些客戶是初創公司或基於Linux的公司),我不想依賴Facebook&Co來滿足我的身份驗證需求。我確實看到讓用戶通過他們的Facebook和Google帳戶進行身份驗證的重要性,但不是像我的架構那樣。基於此,除了創建自定義STS之外,我沒有看到另一個人。 – Pharao2k 2012-04-03 05:37:40

+0

構建自定義STS是一種可行的選擇,但我建議將其作爲最後的手段進行保存。它可能很複雜,您可能必須自己管理用戶帳戶配置。我見過很多在谷歌應用上運行的小商店和創業公司,在這種情況下,設置ACS來信任範圍適用於特定谷歌應用領域的谷歌身份可能適合您。此外,還有適用於ADFS的Linux聯合解決方案。 PingFederate是比較受歡迎的平臺之一,但當然這取決於你的合作伙伴組織。 – 2012-04-03 14:43:13