Как использовать ThinkTecture IdentityServer 3 в Web Api 2

Я много читал о том, как реализовать полную систему аутентификации и авторизации в Asp.Net Web Api 2, которая включает в себя регистрацию, отправку подтверждений по электронной почте, выдачу как токенов доступа, так и токенов обновления и т. Д. Я все-таки успешно все это сделал однако, это выглядит настолько ненужным, чтобы делать это для каждого отдельного проекта.

Я все еще не уверен, но я считаю, что "Thinktecture IdentityServer" - это пакет, который был составлен для обеспечения всего этого, я прав?

Если да, может кто-нибудь сказать мне (очень прямым способом), как я могу создать новый проект Web Api и легко получить все вышеупомянутые функции, используя этот пакет?

2 ответа

Решение

Сервер удостоверений Thinktecture v3 представляет собой набор модулей с высокой степенью конфигурации, поэтому для написания кода достаточно настроить его так, как вы хотите. В Thinktecture wiki есть хороший пример "Привет, мир", которого может быть достаточно, чтобы вы начали:

Привет, мир

После этого скачайте примеры, найдите тот, который наиболее точно соответствует вашей ситуации, и опирайтесь на него. В частности, вы захотите настроить базу данных для сохранения ваших зарегистрированных пользователей. Связанный проект MembershipReboot обычно используется для доступа к данным вместе с дополнением MembershipReboot.Ef, которое автоматически создает вашу базу данных с помощью EntityFramework.

MembershipReboot - это место, где вы указываете, какие события электронной почты вы хотите использовать.

Конфигурация электронной почты в перезагрузке членства

Вот, чтобы ИСПОЛЬЗОВАТЬ identityServer3, который вы установили отдельно:

(У IdentityServer3 есть несколько готовых примеров настройки сервера, которые могут быть достаточно хорошими для вас или могут потребоваться лишь небольшая настройка)

Nuget Microsoft OpenID Connect (я думаю, что он называется: Microsoft.Owin.Security.OpenIdConnect)

Укажите промежуточное программное обеспечение OpenID Connect (также в Startup.cs) на IdentityServer.

app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
    Authority = "https://myIdsrv3Path/identity",
    ClientId = "myapi",
    RedirectUri = "https://myIdsrv3Path/", // or 
    ResponseType = "id_token",

    SignInAsAuthenticationType = "Cookies"
});

В IdentityServer3 установите в список принятых клиентов "myapi" с требуемыми требованиями.

Существует еще много объяснений по поводу авторизации, но это отвечает на ваш основной вопрос для обеспечения API.


См. Документацию IdentityServer3: https://identityserver.github.io/Documentation/docsv2/overview/mvcGettingStarted.html

Прокрутите вниз до раздела: Добавление и настройка промежуточного программного обеспечения для проверки подлинности OpenID Connect.

Другие вопросы по тегам