【问题标题】:ADFS with existing ASP.Net MVC AppADFS 与现有 ASP.Net MVC 应用程序
【发布时间】:2016-11-07 11:21:35
【问题描述】:

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

我可以创建一个新应用并复制代码和配置,但这似乎是一种奇怪的方法。

有人知道好的指南或资源吗?

【问题讨论】:

    标签: asp.net-mvc adfs


    【解决方案1】:

    我们发现 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");));
                }
            }
        });
    

    【讨论】:

    • 谢谢。我使用您的示例和 Cloud Identity 链接完成了这项工作。
    猜你喜欢
    • 2015-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    • 2011-07-13
    相关资源
    最近更新 更多