Разница между параметрами CookieAuthentication и WindowsAzureADAuthentication - PullRequest
1 голос
/ 22 апреля 2019

Привет. Я пытаюсь выполнить простую аутентификацию веб-интерфейса с помощью AzureAD. В этом случае, когда мы добавляем подключенные службы с помощью Azure AD, класс Startup.cs добавляет следующий код

app.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
Tenant = ConfigurationManager.AppSettings["ida:Tenant"],
TokenValidationParameters = new TokenValidationParameters
{
ValidAudience = ConfigurationManager.AppSettings["ida:Audience"]
},
});

Когда я прошел некоторые уроки аутентификации, я вижу, что люди просят использовать что-то вроде того, что показано ниже

app.UseCookieAuthentication(new CookieAuthenticationOptions());
        app.UseOpenIdConnectAuthentication(
            new OpenIdConnectAuthenticationOptions{....
}

В чем разница между этими двумя, разве мы не должны использовать параметры AzureAD, идущие по имени, и поскольку мы используем подключенные службы AzureAD для аутентификации webApi. Кто-нибудь может прояснить то же самое?

1 Ответ

1 голос
/ 23 апреля 2019

Аутентификация куки-файлов

Аутентификация куки-файлов использует HTTP-куки для аутентификации клиентских запросов и сохранения информации о сеансе.Он работает следующим образом:

  1. Клиент отправляет серверу запрос на вход в систему.
  2. При успешном входе в систему ответ сервера включает в себя Set-Cookie заголовок, который содержит имя куки, значение, время истечения и некоторую другую информацию
  3. Клиент должен отправлять этот куки в заголовке Cookie во всех последующих запросах к серверу.
  4. При выходе из системы сервер отправляет обратно заголовок Set-Cookie, который приводит к истечению срока действия cookie

Примечание. Аутентификация cookie уязвима к атакам подделки межсайтовых запросов (CSRF), поэтому ее следует использовать вместе с другими мерами безопасности, такими как токены CSRF .Для получения более подробной информации вы можете посмотреть здесь

Azure Active Directory Аутентификация:

Как вы знаете Azure Active Directory - это современная аутентификация на основе токенов, которая обеспечивает единый вход (SSO), который позволяет пользователю использовать один пароль (или смарт-карту) для аутентификации на нескольких серверах в сети без повторного ввода учетных данных.Это очевидное удобство для пользователей, которым не нужно запоминать несколько паролей или постоянно повторять процесс аутентификации для доступа к различным ресурсам.

Главное, что AAD использует JSON Web Token (JWT) .При получении учетных данных от клиента сервер проверяет учетные данные и генерирует подписанный JWT, который содержит информацию о пользователе.

Он также поддерживает самый популярный современный протокол аутентификации, как показано ниже.

  1. OAuth 2.0
  2. OpenID Connect
  3. WS-Federation
  4. SAML 2.0

Примечание: токен никогда не будет сохранен на сервере (без сохранения состояния).

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

см. Основное отличие от приведенной ниже архитектуры буксировки: enter image description here

Выбор правильной аутентификации:

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

enter image description here

Вы также можете посмотреть здесь для большей ясности.Большое спасибо.Удачного кодирования!

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