尝试使用Ws-Fed验证ASPNET Core MVC应用程序时出现SecurityTokenException

时间:2019-02-05 15:11:32

标签: asp.net-core ws-federation

我有一个ASPNet Core 2.2应用程序,试图将其配置为使用WsFed Auth与我们的STS进行身份验证。我已将以下内容添加到启动中。

  services.AddAuthentication(sharedOptions =>
            {
                sharedOptions.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                sharedOptions.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                sharedOptions.DefaultChallengeScheme = WsFederationDefaults.AuthenticationScheme;
            })
            .AddWsFederation(options =>
            {
                options.Configuration = new WsFederationConfiguration
                {
                    TokenEndpoint = Configuration["Sts:Issuer"],
                    Issuer = "FP",
                    KeyInfos = { new KeyInfo(GetStsIssuerCert(Configuration["Sts:Thumbprint"])) },

                };
                options.CallbackPath = new PathString("/Home/CallBack");
                options.ClaimsIssuer = Configuration["Sts:Issuer"];
                options.Wtrealm = Configuration["Sts:Realm"];
                options.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidAudience = Configuration["Sts:Realm"]
                };
            })
            .AddCookie();

当尝试击中具有“授权”属性的主控制器操作时,此方法按预期工作,但是未填充User.Identity数据。如果然后在启动时添加以下内容。

   app.UseAuthentication();

我收到以下错误消息。

   SecurityTokenException: No token validator was found for the given token.  
Microsoft.AspNetCore.Authentication.WsFederation.WsFederationHandler.HandleRemoteAuthenticateAsync()

我需要使用UseAuthentication()吗?

对此将提供任何帮助。

0 个答案:

没有答案