-1

我有一個使用ASP.NET開發的多個應用程序所有應用程序都使用默認安全模塊來更清楚每個應用程序都有自己的DB,其中包含一個用戶表並使用此表的登錄頁面授權用戶「用戶名爲&密碼」,並且所有應用程序都部署在同一個域下。 目前我們正在努力將SSO解決方案應用到所有應用中。我研究了一個很好的方式來應用它,並且修改當前的應用程序安全模塊。我發現Windows Azure活動目錄單點登錄需要爲每個用戶設置活動目錄帳戶。問題是。Windows Azure Active Directory使用ASP.NET單點登錄

1-在應用程序使用不同版本(ASP.NET 2008,2010等)開發的應用程序中使用SSO時應該應用哪些更改?

2-我們必須在當前用戶表與活動目錄用戶帳戶之間進行某種映射,對嗎?

3-是否會在當前登錄屏幕上進行任何更改?

謝謝。

+0

任何更新或評論請.. –

+0

任何想法請關於SSO。 –

回答

0

1-在應用程序使用不同版本(ASP.NET 2008,2010等)開發的應用程序中使用SSO應該應用哪些更改?

據我所知,身份支持owin登錄。如果您的應用程序使用了身份,那麼您可以使用OpenID Connect來使用ASP.Net OpenID Connect OWIN中間件從單個Azure Active Directory租戶登錄用戶。

使用登錄成功後,身份會自動將用戶信息填充到User.Identity.Claims中。

如果用戶訪問第二個應用程序,則應用程序將根據客戶端cookie自動發送請求以從AD獲取用戶信息。這啓用了SSO。

但是,如果您使用成員資格,成員資格不支持owin登錄。因此,如果您想使用azure AD登錄,我建議您可以增加應用程序.net框架版本並使用身份。

有關如何啓用azure AD登錄的更多詳細信息,請參閱此article

我們必須做一些當前用戶表與活動目錄用戶帳戶之間的映射,是嗎?

這是根據您的要求。使用azure AD帳戶登錄後,您可以使用以下代碼獲取用戶信息。然後你可以映射用戶或其他東西。

[Authorize] 
public ActionResult SomeAction() 
{ 
    var identity = (ClaimsIdentity)User.Identity; 
    IEnumerable<Claim> claims = identity.Claims; 
    ... 
} 

3-是那裏,將當前的登錄屏幕上所做的任何更改?

您可以在登錄頁面啓用按鈕,將用戶重定向到azure AD登錄頁面。

更多細節,你可以參考code sample

+0

非常感謝您的有用答覆,您是否有任何示例或方法可以通過使用ASP.net實現自定義SSO而不使用Windows Azure來應用SSO –

+0

如果您的所有應用程序主機位於同一臺計算機上,則可以使用計算機鍵。更多細節,你可以參考這篇文章(http://arunendapally.com/post/implementation-of-single-sign-on-(sso)-in-asp.net-mvc)。如果您的應用程序託管在不同的機器上,我認爲最簡單和最安全的方式就是使用Azure AD。 –

+0

張謝謝。 –

相關問題