0

Я использую следующие биты против моего Azure AD для аутентификации с помощью ASP.NET Core.Azure AD OpenIDConnect + ASP.NET Core - аутентификация и дополнительные разрешения/токен?

https://azure.microsoft.com/en-us/resources/samples/active-directory-dotnet-webapp-openidconnect-aspnetcore/

https://github.com/Azure-Samples/active-directory-dotnet-webapp-openidconnect-aspnetcore

У меня есть основной Логин/авторизация работает после создания Azure приложение AD. Пользователь может войти в систему/выйти из системы.

Мой вопрос дан, что лучше всего, когда пользователь Auth должен зарегистрироваться в БД? Я думал о том, чтобы перенаправить URL-адрес на конечную точку, сохранить, а затем просто перенаправить обратно в «Главная», но это тот идеал?

Кроме того, возможно ли получить токен-носитель посредством этого подхода? Или это требует другого типа вызова или расширения «области действия»? Так, например, я мог бы получить аутентифицированный менеджер пользователей.

https://graph.microsoft.com/v1.0/me/manager

ответ

1

Мой вопрос дается это, что это лучший способ, когда пользователь Auth, чтобы войти в БД? Я думал о том, чтобы перенаправить URL-адрес на конечную точку, сохранить, а затем просто перенаправить обратно в «Главная», но это тот идеал?

Этот способ позволяет регистрировать тех, кто уже успешно подключился к вашему приложению. Он не может регистрировать тех пользователей, которые пытаются войти в ваше приложение, но ввести неправильный пароль.

Azure AD уже предоставляет много отчета, чтобы получить видимость в целостность и безопасность каталога вашей организации. (См here)

И если вы используете Azure AD Premium, вы можете просмотреть вход в деятельности с помощью следующей Azure new portal: enter image description here

И если вы хотите сохранить знак в активности в вашем веб-приложение, вы можете написать пользовательский код после того, как маркер проверяется. Вот код для справки:

// Configure the OWIN pipeline to use OpenID Connect auth. 
app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions 
{ 
      ClientId = Configuration["AzureAD:ClientId"], 
      Authority = String.Format(Configuration["AzureAd:AadInstance"], Configuration["AzureAd:Tenant"]), 
      ResponseType = OpenIdConnectResponseType.IdToken, 
      PostLogoutRedirectUri = Configuration["AzureAd:PostLogoutRedirectUri"], 
      Events = new OpenIdConnectEvents 
      { 
       OnRemoteFailure = OnAuthenticationFailed, 
       OnTokenValidated = context => { 
        //write the custom code to store users login-in       
        return Task.FromResult(0); } 
      }, 

}); 

Кроме того, можно получить маркер носителя с помощью такого подхода?

Да. Мы можем получить токен после получения кода авторизации. Вы можете обратиться к образцу кода here, чтобы получить токен из основного приложения asp.net.

+0

Спасибо за ответ. Код OnTokenValidated находится в моем Startup.cs. Не уверен, как это идеальное место для удара DB – aherrick

+0

. Процесс аутентификации запускается пользователями после того, как пользователи вводят правильное имя пользователя/пароль. Azure AD перенаправляет страницу в веб-приложение с id_token. Затем компонент OWIN попытается проверить информацию пользователя на основе id_token. И «OnTokenValidated» будет срабатывать после проверки токена. Неважно, где код живет на каком классе. –

+0

Возможно ли это с помощью ASP.Net Core 2.0? Апи изменилось довольно много. – zuckerthoben

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

  • Нет связанных вопросов^_^