Совместное использование access_tokens и id_tokens Auth0 - PullRequest
0 голосов
/ 12 ноября 2018

Начиная интеграцию с auth0, я натолкнулся на эту статью Так что ясно, что для защиты apis все, что нам нужно, это access_token, который отправляется с каждым запросом http в заголовке авторизации запроса (схема Bearer).

Но затем auth0 (и, возможно, другие провайдеры) также отправляют Id_token, который содержит информацию о пользователе.Моя путаница заключается в том, как я могу использовать этот id_token для передачи информации о пользователе в мой API.(У меня есть работающий интерфейс spa, который аутентифицируется на auth0 и получает эти 2 токена).

Я могу вызвать конечную точку userInfo в моем API для получения информации о пользователе.Но разве это не победит цель токенов Id ?

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

Поэтому мой вопрос заключается в том, как получить доступ к профилю пользователя вмой API с использованием идентификаторов токенов?

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

ID-токен отправляется с сервера авторизации как часть протокола OIDC.Цель этого состоит в том, чтобы аутентифицировать пользователя в вашем клиентском приложении (в данном случае SPA).то есть, чтобы ваш API или приложение знали, какой конкретный пользователь разрешил клиенту обращаться к определенному ресурсу от его имени.

Лучший способ использовать токен ID - это расшифровать и проверить его с помощью библиотеки.Это позволит вам проверить подпись токена и любые другие утверждения, включенные в токен (вы можете добавить пользовательские утверждения к токенам).Проверка этих утверждений может использоваться для определения личности пользователя и соответствия профиля пользователя в вашем API.Вам нужно будет проверить документацию, связанную с вашим IdP (auth0), чтобы выяснить, как добавлять новые утверждения, которые используются профилем пользователя в вашем API.

0 голосов
/ 13 ноября 2018

«Моя путаница заключается в том, что как я могу использовать этот id_token для передачи информации о пользователе в мои API», для этой путаницы вы просто передаете свой токен JWT.при создании токена JWT необходимо добавить информацию пользователя в части полезной нагрузки в токене JWT.Когда ваш API получит токен JWT, просто убедитесь, что ваш токен JWT правильный или нет, используя секретный ключ, и, если он правильный, вы можете получить данные.Как получить это просто перейти от этой аутентификации JWT для Asp.Net Web Api

...