Как определить «клиентское приложение» на «сервере ресурсов» в потоке OIDC / OAuth2 - PullRequest
1 голос
/ 04 октября 2019

У меня есть несколько клиентских приложений, подключающихся к нескольким различным службам API в настройке микросервисов. Я использую OIDC для аутентификации пользователя, а затем токены доступа OAuth2 для клиентских приложений для авторизации в службах API (серверах ресурсов).

Многие разные приложения могут вызывать одни и те же API, если у них есть токен доступа с требуемыми областями. Сервер API проверяет, присутствует ли заявка в маркере доступа, чтобы разрешить вызов.

Одна из наших служб API (скажем, приложение для бронирования билетов) должна знать, кто является вызывающим абонентом для выполнения определенных проверок приложения, а также для ведения журнала для выставления счетов и т. Д.

Как сделатьмы знаем, кто звонит, только из токена доступа JWT? В то время как OIDC упоминает azp как средство для определения того, кем была уполномоченная сторона для Identity Token, для Access Token не определен эквивалент. У кого-нибудь есть идеи?

1 Ответ

2 голосов
/ 04 октября 2019

Вы можете использовать конечную точку самоанализа токена, определенную OAuth 2.0 ( OAuth 2.0. Самоанализ токена )

Эта конечная точка предоставляется для проверки правильности токена, а также для получения некоторой информации, такой какОбласти, имя пользователя конечного пользователя, а также, что важно, для вашего случая, идентификатор клиента клиента ( Introspection Response ).

В качестве альтернативы, проверьте конфигурацию JWT токена доступа вашего сервера авторизации. Поскольку вы получаете JWT, возможно, можно добавить идентификатор клиента в JWT, что позволит избежать этого дополнительного вызова самоанализа.

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