Достижение потока аутентификации, аналогичного SAML в OIDC - PullRequest
0 голосов
/ 26 мая 2018

Скажем, у нас есть SPA, который опирается на API из моего приложения.И SPA, и REST API размещены на одном сервере.Теперь я использую инициированный IDP федеративный единый вход на основе SAML.

Я четко знаю вовлеченные стороны и как устанавливается доверие.

  1. Для каждого клиента, с которым нам нужно интегрироваться, сначала получите подробные сведения о конфигурации, такие как IDP ID, цифровой сертификат иподелиться подробностями, такими как URL-адрес SAML ACS со стороны моего веб-приложения.
  2. Со стороны клиента они добавляют мое приложение в качестве Проверяющей стороны с URL-адресом SAML ACS, который мы предоставляем.
  3. Пользователи проходят аутентификацию в IDP, а затем SAMLResponse публикуется на мой URL-адрес ACS.
  4. Мы можем проверить этот SAMLResponse, а также наблюдать NameID, чтобы идентифицировать пользователя и перейти к предоставлению доступа к API на моем сервере.

Теперь, если предположить, что IDP на стороне клиента является OIDC-совместимым сервисом, таким как Okta, могу ли я добиться аналогичного процесса аутентификации, внеся некоторые изменения и на моем сервере.Похоже, это возможно, но я не могу собрать полную картину.

Исходя из моего понимания OIDC, он выглядит следующим образом:

  1. SPA - это клиент
  2. Мой сервер, предоставляющий REST API, - это сервер ресурсов.
  3. IDP клиента (Okta) - это сервер авторизации.

Из прочитанных мною статей кажется, что SPA сначала должен позвонить на сервер авторизации, чтобы получить токен доступа изатем используйте этот токен доступа для вызова API userInfo на сервере ресурсов.Тогда это выглядит как пункт № 2 выше, что мой сервер является сервером ресурсов неправильно.IDP клиента должен быть одновременно и сервером авторизации, и сервером ресурсов?

В таком случае, где мой сервер вписывается в весь поток OIDC?

Как устанавливается доверие между Okta (IDP клиента) и моим сервером?

Можно ли достичь потока, эквивалентного инициированному IDP потоку Fed SSO (с использованием SAML) в OIDC?

1 Ответ

0 голосов
/ 29 мая 2018

Вы можете использовать неявный тип предоставления Openid Connect (и response_mode = form_post) для достижения такого же пользовательского опыта, как SAML HTTP Postinding.Если ваш IdP не поддерживает form_post, токены будут возвращены как фрагмент и останутся в браузере, и вам потребуется код для получения токена из браузера.

...