繁体   English   中英

ADFS与现有的ASP.Net MVC应用程序

[英]ADFS with existing ASP.Net MVC App

我一直在环顾四周,试图找到一个如何将ADFS身份验证添加到现有ASP.Net MVC应用程序的示例。 我在创建新应用程序时找到了很多使用向导执行此操作的示例。

我可以创建一个新的应用程序并复制代码和配置,但这接缝就像一个奇怪的方法。

有谁知道一个好的指南或资源?

我们发现这篇关于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不同。

我们需要为我们的实施定制声明, 这篇文章帮助很大。 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");));
            }
        }
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM