4

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

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

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

+0

Да, посетите следующее. Это полное решение, которое показывает, как настроить Identityserver3 и аутентифицировать пользователей. https://www.codeproject.com/script/Articles/ArticleVersion.aspx?waid=228443&aid=1163131 –

+0

Я боюсь, что нет прямого пути, когда вам нужно подумать о том, как контролировать аутентификацию и авторизацию для вашего приложения. –

ответ

3

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

Hello world

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

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

Email config in membership reboot

2

Вот Чтобы использовать identityServer3, что вы устанавливаете отдельно:

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

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

Направьте промежуточного слоя OpenID Connect (также в Startup.cs) в Иден tityServer.

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.

Смежные вопросы