Как создать утверждения после успешной аутентификации ADFS? - PullRequest
0 голосов
/ 29 августа 2018

Наше приложение перенаправляет на внешнюю учетную запись ADFS для аутентификации, а затем направляет обратно к нам. Я пытаюсь выяснить, как я анализирую информацию о претензиях, как только она возвращается на наш сайт. Проблема, с которой я столкнулся, - найти рабочий пример для .NET Core 2.1. Вот что у меня есть:

services.AddAuthentication(sharedOptions => {
                sharedOptions.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                sharedOptions.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                sharedOptions.DefaultChallengeScheme = WsFederationDefaults.AuthenticationScheme;
            })
               .AddWsFederation(options => {                   
                   options.MetadataAddress = config.Authentication.ADFSMetadataAddress;
                   options.Wtrealm = config.Authentication.ADFSWtrealm;
                   options.CallbackPath = "/Auth";
               }).AddCookie();

Эта часть работает нормально, я могу войти в систему и получить обратно в свое приложение. Примеры в документации Microsoft показывают реализацию пользовательского ClaimsAuthenticationManager, подобного этому, для извлечения информации о претензиях:

public class MyClaimsAuthenticationManager : ClaimsAuthenticationManager {
        public override ClaimsPrincipal Authenticate(string resourceName, ClaimsPrincipal incomingPrincipal) {
            if (incomingPrincipal != null && incomingPrincipal.Identity.IsAuthenticated == true) {
                ((ClaimsIdentity)incomingPrincipal.Identity).AddClaim(new Claim(ClaimTypes.Role, "Admin"));
            }
        return incomingPrincipal;
    }
}

Но он не может найти этот базовый класс в .NET Core. Я пытался добавить пакеты NuGet для:

Microsoft.AspNetCore.Identity
Microsoft.Extensions.Identity.Core

и даже

System.Security.Claims

но не игра в кости ... есть ли другой способ сделать это в .NET Core?

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