Identity Server作为服务提供商(WS-fed)

时间:2017-12-04 19:35:21

标签: authentication adfs sp idp

我尝试使用由ADFS外部公司发布的idsrv3接收令牌,因此idsrv3作为服务提供商,ADFS作为身份提供者。我使用Ws-Fed(pasive)协议,因此公司已经添加了我们的端点以及应该使用令牌发出的声明。

我通过URL https://adfsapp.companydomain.com/adfs/ls/idpinitiatedsignon.aspx发出了登录请求,并在引入凭据后对用户进行身份验证,并使用SAMLResponse重定向到idsrv3端点。

根据idsrv3文档,我在应用程序中配置了身份提供程序。 (https://identityserver.github.io/Documentation/docsv2/configuration/identityProviders.html

 private static void AddExternalProvider(IAppBuilder app, string signInAsType, AdfsWsFederationExternalProvider provider)
    {
        var metadataAddress = ""https://adfs.leastprivilege.vm/federationmetadata/2007-06/federationmetadata.xml";
        var manager =
            new SyncConfigurationManager(new ConfigurationManager<WsFederationConfiguration>(metadataAddress));
        var providerId = provider.ExternalProviderId;

        var options = new WsFederationAuthenticationOptions
        {
            AuthenticationType = providerId,
            Caption = provider.ExternalProviderName,          
            SignInAsAuthenticationType = signInAsType, 
            CallbackPath = new PathString("/" + providerId),
            ConfigurationManager = manager,
            Wtrealm = provider.Wtrealm,

        };
        app.UseWsFederationAuthentication(options);
    }

但令牌未经过验证,所以我有以下问题:

1-我应该声明一个令牌处理程序来处理公司STS发布的令牌吗?

2-回调路径&#34; / providerId&#34;会自动处理令牌吗?

3-如何知道端点(&#34; / providerId&#34;)是否在等待传入的令牌?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您正在使用WS-Federation作为协议,但正在尝试IDPInitiated,它仅适用于SAML-P协议。

idsrv3默认不处理SAML协议。

当您从应用程序启动然后最终使用ADFS时会发生什么?