簡體   English   中英

如何將Azure AD身份驗證添加到現有的.net網站

[英]How to add Azure AD authentication to existing .net web site

我有一個現有的.net Web表單站點使用ADFS身份驗證( System.IdentityModel.dll )與不同的自定義域,每個客戶一個。 Global.asax.cs中,我將用戶重定向到相應的ADFS端點。

void WSFederationAuthenticationModule_RedirectingToIdentityProvider(object sender, RedirectingToIdentityProviderEventArgs e)
{
  if (org == "customername1")
  {
    strWhr = "http://adfs.customername1.com/adfs/services/trust";
    e.SignInRequestMessage.HomeRealm = strWhr;
  }
}

現在我需要添加Azure AD身份驗證,不能使用Visual Studio向導,因為已經設置了身份驗證。

有沒有什么方法可以重用我擁有的東西並重定向用戶他們相同的Azure AD,將HomeRealm設置為https://login.windows.net/tenatName

我不想在ADFS和每個新客戶Azure AD之間添加信任,至少從現在開始,我希望盡可能同時進行ADFS和Azure AD身份驗證。

通過VS使用組織帳戶身份驗證創建的站點在Startup.Auth.cs文件中進行身份驗證配置,這是否必須與使用Owin dll一起完成?

標准方式是通過OWIN。 請參閱

看起來你正在使用WS-Fed。

我想不出WIF無法工作的原因,但我不知道這樣的樣本。

如果可能的話,我希望同時進行ADFS和Azure AD身份驗證。

現在設計Azure AD的方式,只有在應用程序也作為基於Azure雲的服務運行時,上述組合才有效。 這是鏈接所說的內容。

“將Active Directory和任何其他本地目錄擴展到Azure AD,以便為所有基於雲的應用程序啟用單點登錄。”

https://azure.microsoft.com/en-us/services/active-directory/

我假設您的應用程序在前提下運行,這意味着您可能無法混淆它們。

我沒有真正回答我的問題,因為我將創建一個新項目並復制網頁內容。 我正在測試一個潛在的解決方案,看起來不太好但是有效。 這可能是另一種更好的方式,所以我願意接受投入。

if (org == "customername1")
{
app.UseWsFederationAuthentication(new WsFederationAuthenticationOptions
{
    Wtrealm = realm,
    MetadataAddress = adfsMetadata,
});
}
else if (org == "customername2")
{
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
    ClientId = clientId,
    Authority = authority,
    PostLogoutRedirectUri = postLogoutRedirectUri,
}

我所做的是根據用戶登錄的URL使用WSFederation或OpenId協議。 它保持與OWIN創建的cookie的會話,所以到目前為止我做的測試看起來很有希望。 要獲得此代碼,只需創建ADFS身份認證等與Azure的AD一個項目,從一個到另一個添加缺少的NuGet包解決方案,並復制代碼StartupAuth.cs。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM