IdentityServer4 с AspNetIdentity - Как управлять пользователями - PullRequest
0 голосов
/ 20 марта 2019

Я интегрировал AspNetIdentity в IdentityServer4 для управления пользователями.Ранее я использовал Auth0, и в моем веб-приложении была страница администратора для изменения заявок пользователей, которая, в свою очередь, вызывала API управления для Auth0 для изменения значений заявок пользователей.

С IdentityServer4, поскольку я интегрировал Identity для управления пользователямиЯ не совсем уверен, как это сделать.Конечно, я могу использовать UserManager для изменения пользователей, но как я могу создать авторизованный API для этого?Первоначально я попытался создать ресурс API в IdentityServer4 вместе с клиентом для учетных данных клиента, установить авторизацию jwtbearer для проекта Identityserver4 (с указанием полномочий / аудитории на созданный мной ресурс API) и добавить атрибут авторизации на контроллере API (где яизвлеките пользователей Identity) на уровне IDP.

Это не работает, поскольку промежуточное ПО IdentityServer4 больше не работает, если я добавляю свою собственную авторизацию.Должен ли я в конечном итоге создать отдельный API, для которого настроен Identity, чтобы я мог получить доступ к базовым таблицам?У меня нет проблем с этим, но я хотел проверить, возможно ли что-то прямо на уровне IDP.

Не работает:

    services.AddAuthentication(options =>
    {
        options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
        options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;

    })
    .AddGoogle("Google", options =>
            {
                options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;

                options.ClientId = "...";
                options.ClientSecret = "...";
            })
     .AddFacebook("Facebook", options =>
            {
                options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;

                options.ClientId = "...";
                options.ClientSecret = "...";
            })
    .AddJwtBearer(options =>
     {
         options.Authority = "https://localhost:44367";
         options.Audience = "idpapi";
         options.RequireHttpsMetadata = true;
     });

По сути, яЯ хочу, чтобы очень простой контроллер API возвращал пользовательские данные и обновлял заявки пользователей.Мне нужно, чтобы этот контроллер API был доступен только для конкретного пользователя с ролью администратора.Если бы я мог сделать это на уровне IDP (поскольку я уже настроил Identity), это было бы идеально, но у меня возникают проблемы с добавлением аутентификации для моего контроллера API IDP.Если нет, я могу создать отдельный проект API для его обработки.

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