SecurityTokenException при попытке аутентификации приложения ASPNET Core MVC с помощью Ws-Fed - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть приложение ASPNet Core 2.2, которое я пытаюсь настроить для использования аутентификации WsFed для аутентификации с помощью нашего 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 ()?

Любая помощьна это будет принята с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...