#asp.net #asp.net-mvc #single-sign-on #owin #katana
#asp.net #asp.net-mvc #единый вход #owin #катана
Вопрос:
Я запустил пример проекта для ASP.Net MVC, который обеспечивает единый вход в Active Directory, и я использую это руководство Microsoft для справки.
После того, как пользователь нажал для входа и получает перенаправление на страницу входа в свою организацию, при возвращении в веб-приложение следующий код проверяет, что они аутентифицированы, и успешно считывает их утверждения:
using Microsoft.Owin.Security;
using Microsoft.Owin.Security.Cookies;
using Microsoft.Owin.Security.OpenIdConnect;
using Owin;
@if (Request.IsAuthenticated)
{
<dl>
@foreach (var claim in System.Security.Claims.ClaimsPrincipal.Current.Claims)
{
<text>
<dt>@claim.Type</dt>
<dd>@claim.Value</dd>
</text>
}
</dl>
}
Под капотом, что на самом деле представляет собой истинное значение Request.IsAuthenticated
?
Существуют ли утверждения по самой природе, или существует определенное значение, которое используется для предоставления результата перед чтением утверждений?
Ответ №1:
В этом руководстве предлагается добавить промежуточное программное обеспечение аутентификации в ваш конвейер запросов. В этом случае вы добавляете промежуточные программы для проверки подлинности UseCookieAuthentication
и UseOpenIdConnectAuthentication
для регистрации. Эти и любые другие, которые вы можете добавить (например, аутентификация токена на предъявителя JWT), используют свой собственный внутренний механизм для анализа запроса и присвоения идентификатора утверждений контексту вашего запроса. Например, проверка подлинности с использованием файлов cookie будет искать файл cookie, представляющий сохраненный сеанс, и расшифровывать и анализировать его данные в качестве идентификатора утверждений. IsAuthenticated
буквально просто возвращает true, если доступно одно или несколько удостоверений.
Для получения более подробной информации вы, конечно, можете углубиться в исходный код. Например, промежуточное программное обеспечение OWIN для проверки подлинности файлов cookie находится здесь:https://github.com/aspnet/AspNetKatana/tree/dev/src/Microsoft.Owin.Security .Файлы cookie