0

我正在尝试使用 idsrv3 接收由 ADFS 外部公司颁发的令牌,因此 idsrv3 作为服务提供者而 ADFS 作为身份提供者。我正在使用 Ws-Fed(被动)协议,因此公司已经添加了我们的端点和应该与令牌一起发布的声明。

我通过 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- 回调路径“/providerId”将自动处理令牌?

3-如何知道端点(“/providerId”)是否正在等待传入的令牌?

谢谢你的帮助。

4

1 回答 1

0

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

idsrv3 默认不处理 SAML 协议。

当您从应用程序开始然后在 ADFS 上结束时会发生什么?

于 2017-12-05T18:28:19.870 回答