Используйте токен SAML для авторизации с OAuth - PullRequest
0 голосов
/ 26 апреля 2019

Только что начал POCing KeyCloak, чтобы подключить LDAP для федерации пользователей (очень просто!) И настроить поставщика услуг SAML с Node.JS (потребовалось немного больше времени, чтобы настроить конфигурацию). См POC

Вопрос:

Используя KeyCloak в качестве единственного поставщика удостоверений, возможно ли установить стороннюю службу (Appian) в качестве поставщика службы SAML и использовать имя пользователя SAML и / или токен (session_index), которые он получает, для запроса токена OAuth?

Желательно, чтобы сторонняя (доверенная) служба негласно выполняла запрос OAuth (с идентификатором клиента?) Для получения токена доступа и использовала этот токен для выполнения вызовов API.

Похоже, что может быть два клиента KeyCloak, один для SAML, другой для OAuth, но тогда KeyCloak сможет координировать аутентификацию под прикрытиями.

1 Ответ

0 голосов
/ 03 июля 2019

Вы можете обменять утверждение SAML (НЕ его декодированное содержимое) на токен доступа oAuth. Этот поток описан в RFC 7522 (профиль SAML 2.0 для аутентификации и авторизации клиента OAuth 2.0). На практике это экзотический вариант использования, и его трудно реализовать. Предполагается, что запрашивающая сторона (клиент) имеет способ получить ответ SAML от IdP и использовать его для получения маркера доступа oAuth. В довершение всего, есть несколько IdP, которые поддерживают обмен RFC 7522. На данный момент Keycloak его не поддерживает.

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

...