2016-11-07 41 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

相关问题