Могут ли серверные серверные приложения использовать конечную точку userinfo для получения заявок конечных пользователей в OpenID Connect? - PullRequest
1 голос
/ 02 октября 2019

У меня есть 3 приложения,

  1. Клиентское приложение (RP)
  2. Поставщик OpenID (OP)
  3. Сервер-посредник (MS)

Клиентское приложение может проверять подлинность и извлекать id_token и токен авторизации. Затем токен авторизации используется RP для вызова OP путем передачи его в заголовок. Этот запрос затем будет передан на сервер-посредник (MS) OP. MS требует доступа к информации конечного пользователя. Просто передать их в качестве параметров запроса или в теле запроса нельзя. Но маркер авторизации, отправленный RP, все еще может быть доступен для MS. Неправильно ли использовать конечную точку userinfo OP для получения заявок пользователей, поскольку в документах openID Connect упоминается только конечная точка userinfo для использования клиентскими приложениями (RP)?

1 Ответ

1 голос
/ 02 октября 2019

Простой ответ - да, это допустимый вариант использования.

Конечной точкой информации пользователя является конечная точка, защищенная токеном OAuth 2.0, определенная OpenID Connect. Он более или менее ведет себя подобно конечной точке самоанализа токена, определенной OAuth 2.0 ( OAuth 2.0 Token Introspection ), предоставляя держателю токена возможность получать аутентифицированную информацию конечного пользователя.

С точки зрения приложения, выесть две части клиента. Одна часть конечного пользователя, которая фактически получает токен доступа и идентификационный токен. Затем у вас есть внутренняя часть (MS, как вы определили), которая полагается на токены для выполнения некоторых проверок (например: - Проверка электронной почты по известной БД). Таким образом, в основном MS является частью вашего приложения, это все еще входит в сферу действия термина CLIENT .

Альтернативой этому является использование автономных токенов доступа. Они будут представлены в виде JWT (аналог идентификатора токена) и обычно могут быть настроены на получение необходимой информации о пользователе. Преимущество этого заключается в том, что вы можете избежать вызова MS для OP информации о пользователе и полагаться на целостность JWT (примечание - конечно, вам нужен открытый ключ от OP, но это может быть кэшировано некоторое время)

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