Где хранятся токены из Open Id Connect? - PullRequest
2 голосов
/ 09 июля 2019

Я использую Open ID Connect и запрашиваю токены из Azure Active Directory. Я использую поток кода авторизации, поэтому я получаю и id_token, и access_token. Я использую .NET Core.

Моя конфигурация Open Id Connect выглядит следующим образом:

options.Authority = options.Authority + "/v2.0/";
options.TokenValidationParameters.ValidateIssuer = false;
options.ResponseType = OpenIdConnectResponseType.Code;
options.SaveTokens = true;

Обратите внимание, что для токенов сохранения установлено значение true

Когда пользователь вошел в систему, я могу получить оба токена следующим образом:

string accessToken = await HttpContext.GetTokenAsync("access_token");
string idToken = await HttpContext.GetTokenAsync("id_token");

У меня вопрос: где эти токены на самом деле сохраняются и как я могу настроить, как эти токены сохраняются?

Я также слышал, что в потоке кода авторизации провайдер идентификации вернет код авторизации, и сервер затем использует этот код для запроса токенов. Тем не менее, я не делаю ничего подобного программно и все еще могу получить токены. Это автоматически обрабатывается с помощью Open Id Connect?

Ответы [ 2 ]

2 голосов
/ 09 июля 2019

enter image description here

Где на самом деле сохраняются эти токены?

Как описывает архитектура диаграммы OpenID Connect protocol, Когда новыйсеанс запущен, новый файл cookie возвращается для управления этим сеансом.Этот «файл cookie» создается на основе «идентификатора токена», и пока этот файл cookie действителен, пользователь будет считаться аутентифицированным.Когда вы используете OpenID Connect (OIDC), он создает cookie и сохраняет там токен.вы могли бы сослаться на это документы

Как я могу настроить, как эти токены?

Если вы хотите настроить свой механизм токенов, Microsoft предоставляет библиотеку для этого,Вы можете использовать ADAL или MSAL для своей собственной конфигурации.

Обрабатывается ли это автоматически с помощью Open Id Connect?

Хотя у него есть некоторый фоновый механизм, но вы должны использовать библиотеку аутентификации для обработки кода вашего приложения.Вы можете сослаться на официальные документы

Для более подробной информации вы можете обратиться к текущим документам

  1. Реализация аутентификации
  2. Библиотеки аутентификации
  3. Пример кода
0 голосов
/ 09 июля 2019

response_type установлен на code, указывая, что вы используете поток кода авторизации.

Когда вы используете поток кода аутентификации OIDC вместе с clientid и clientsecret для get token ,рабочий процесс выглядит следующим образом:

enter image description here

1. Пользователь нажимает кнопку «Войти» в обычном веб-приложении.

2.Auth0 SDKперенаправляет пользователя на сервер авторизации Auth0 (конечная точка / authorize).

3.Ваш сервер авторизации Auth0 перенаправляет пользователя на запрос входа в систему и авторизации.

4.Аутентификация пользователя осуществляется с помощью одного изнастроенные параметры входа и может отображаться страница согласия с перечнем разрешений, которые Auth0 предоставит обычному веб-приложению.

5.Ваш сервер авторизации Auth0 перенаправляет пользователя обратно в приложение с кодом авторизации.

6.Aut0 SDK отправляет этот код на сервер авторизации Auth0 (конечная точка / oauth / token) вместе с идентификатором клиента приложения и секретом клиента.

7.Ваш сервер авторизации Auth0 проверяет код, идентификатор клиента и секрет клиента.

8.Ваш сервер авторизации Auth0 отвечает токеном идентификатора и токеном доступа (и, опционально, токеном обновления).

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