Реализация шаблона типа "SSO" для вызовов API бэкэнда - PullRequest
0 голосов
/ 23 апреля 2019

Я собираюсь использовать терминологию SAML (Пользователь, Поставщик услуг и IdP) для простоты объяснения моей проблемы.

По сути, у нас есть многоканальное веб-приложение с собственным механизмом аутентификации.Сервер приложений должен вызывать сторонний API.Сторонний API имеет собственную аутентификацию.Шаги ниже: вы можете увидеть на https://sequencediagram.org

Browser->SP: Login/Authentication
Browser ->SP: View 3rd Party content
SP->SP: 3rd party token exists? No
SP->Browser: redirect (302) to 3rd party

Browser->IdP: Authenticate
IdP->Browser: Login challenge
Browser->IdP: Login credentials
IdP->Browser: redirect back to Application+Token
Browser->SP: Token issued by 3rdParty
SP->SP: store token for future use - say up to 6 months?
SP->3rdParty: getData(Token)- on same domain as IdP
3rdParty->SP: Response
SP->Browser: display content
End

Это не похоже на типичный SSO ..., но все еще опирается на концепции SSO.Существует ли стандартный шаблон OIDC / OAuth / SAML для этой цели?Этот подход вы бы порекомендовали?Мои запреты в основном связаны с двумя вещами:

  1. Срок действия токена (бизнес хотел бы срок действия не менее 6 месяцев)
  2. IdP и «3rdParty» фактически находится в одном домене.Таким образом, SP действительно отображает только информацию.
  3. Хотя для клиента SP выглядит как поставщик услуг, источником данных является «3rdParty».

Я упустил такие детали, как токен доступа и т. Д. Для простоты.

...