2016-11-07 43 views
2

我一直在環顧四周,試圖找到如何將ADFS身份驗證添加到現有的ASP.Net MVC應用程序的示例。當您創建新應用程序時,我找到了很多關於如何使用嚮導執行此操作的示例。ADFS與現有的ASP.Net MVC應用程序

我可以創建一個新的應用程序並將代碼和配置複製過來,但這個接縫像一個奇怪的方法。

有誰知道一個很好的指導或資源?

回答

2

我們在Cloud Identity上發現了這個博客條目,對於開始類似的事情非常有幫助。我們正在使用Web API,因此它不完全相同。

您需要將它添加到您的Startup.Auth.cs文件:

app.UseActiveDirectoryFederationServicesBearerAuthentication(
new ActiveDirectoryFederationServicesBearerAuthenticationOptions 
{ 
    Audience = ConfigurationManager.AppSettings["ida:Audience"], 
    MetadataEndpoint = ConfigurationManager.AppSettings["ida:MetadataEndpoint"] 
}); 

在你的web.config你需要鑰匙來指出這些條目:

<add key="ida:AdfsMetadataEndpoint" value="https://adfs.yourdomain.com/federationmetadata/2007-06/federationmetadata.xml" /> 
    <add key="ida:Audience" value="https://yourmvc.yourdomain.com" /> 

注意您正在使用的ADFS版本有很大不同。我們發現,儘管獲得令牌可以與ADFS 3.0版一起工作,但他們目前有些失敗。在場所ADFS的工作方式也會與Azure完全不同。

我們需要爲我們的實施定製索賠,this郵政幫助非常大。 Startup.Auth.cs看起來與此類似:

app.UseWindowsAzureActiveDirectoryBearerAuthentication(
    new WindowsAzureActiveDirectoryBearerAuthenticationOptions 
    { 
     Audience = ConfigurationManager.AppSettings["ida:Audience"], 
     Tenant = ConfigurationManager.AppSettings["ida:Tenant"], 
     Provider = new OAuthBearerAuthenticationProvider() 
     { 
      OnValidateIdentity = async context => 
      { 
       context.Ticket.Identity.AddClaim(
        new Claim(http://mycustomclaims/hairlenght, 
            RetrieveHairLenght(userID),     
            ClaimValueTypes.Double, 
            "LOCAL AUTHORITY");)); 
      } 
     } 
    }); 
+0

Thanks for this。我使用您的示例和Cloud Identity鏈接瞭解了這一點。 – Lee

相關問題