Тихая аутентификация SAML с использованием Auth0 в качестве провайдера идентификации - PullRequest
0 голосов
/ 12 марта 2019

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

https://{your_domain}.auth0.com/samlp/{client_id}

до

https://{your_domain}.auth0.com/samlp/{client_id}={connection your_db_connection_name}

Как упоминалось в первой ссылке, но это позволяет мне избегать перенаправлений, если у пользователя уже есть существующий сеанс. Вторая ссылка ссылается на параметр в URL:

prompt = none

Но это для протокола OpenId Connect, поэтому я не помогаю.

Текущий поток выглядит следующим образом:

  1. Пользователь отправляет учетные данные моему провайдеру сервера (это бесполезно, потому что Auth0 требует учетные данные в своем виджете)
  2. Поставщик сервера запрашивает аутентификацию SAML для Auth0
  3. Auth0 перенаправляет пользователя на его виджет входа в систему (пользователь вводит снова учетные данные)
  4. Пользователь получает доступ

Чего я хочу добиться:

  1. Пользователь отправляет учетные данные моему провайдеру сервера
  2. Поставщик сервера интегрирует учетные данные (здесь я делаю не знаю как) в запросе SAML 2.0
  3. Auth0 получает и аутентифицирует учетные данные (без какого-либо Перенаправление)
  4. Пользователь получает доступ

Что я использую:

  • в качестве провайдера сервера, узел JS с Express и saml2-js библиотека
  • Как поставщик удостоверений, обычное веб-приложение с надстройкой SAML2 Web App для Auth0

Я новичок в использовании SAML и Auth0 и пока не знаю много. Любое руководство или совет приветствуется. Спасибо.

(Если у меня есть недостатки в моем английском, не стесняйтесь комментировать, спасибо)

1 Ответ

0 голосов
/ 02 апреля 2019

Я исследовал это и обнаружил, что достичь этого невозможно (не сейчас, возможно, в будущем).

Использование HTTP-Post Binding позволяет избежать перенаправления, только если сеанс пользователя уже существует. Если нет, пользователь будет перенаправлен на страницу входа IdP (в данном случае на страницу входа Auth0)

В протоколе SAML есть профиль, который называется Enhanced Client или Proxy (ECP), но он редко используется и рекомендуется для приложений, которые не могут использовать браузер.

Кроме того, только некоторые IdP поддерживают его, например Keycloak и Shibboleth .

...