Код аутентификации OAuth2 для уже авторизованного пользователя - PullRequest
1 голос
/ 20 февраля 2020

С помощью реализации OAuth2 (разработанной собственными силами или сторонней организацией, такой как Google, Facebook, Login With Amazon и т. Д. c.), Можно генерировать код аутентификации от имени пользователя, вошедшего в систему. мобильное приложение или веб-приложение без каких-либо действий со стороны пользователя?

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

Код аутентификации требуется для вызова внешнего стороннего API, который в конечном итоге будет обмениваться. код аутентификации для маркеров обновления / доступа. Бэкэнд-системе (связанной с API) необходимо получить собственный токен обновления / доступа, основанный на совместно используемом им коде аутентификации. Это не для одноразового использования токена; система должна иметь собственные токены для пользователя, вошедшего в систему, независимо от мобильного клиента.

1 Ответ

0 голосов
/ 20 февраля 2020

Можно получить токен пользователя для другого клиента. Вам не нужен новый код аутентификации, вы просто вызываете конечную точку токена с некоторыми параметрами. Например, в Keycloak этот поток называется Token Exchange. Вам необходимо настроить клиенты в Keycloak, а затем вы можете вызвать конечную точку токена с имеющимся у вас токеном доступа.

{
  client_id: your client id,
  client_secret: your client secret, 
  subject_token: token you have
  audience: target client id, 
  grant_type: urn:ietf:params:oauth:grant-type:token-exchange, 
  requested token type: urn:ietf:params:oauth:token-type:refresh_token
}

Вы можете прочитать об этом потоке здесь: https://tools.ietf.org/id/draft-ietf-oauth-token-exchange-12.html

Он также называется потоком от имени, как в Azure: https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow

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