SAML сертификат, закрытый ключ - PullRequest
0 голосов
/ 08 июля 2019

Итак, я внедряю SSO поверх SAML2.0 для нашего приложения.Мы используем saml2-js на нашей стороне, и мы выполняем SSO, инициированную SP.

Реализация готова, и она работает, однако есть несколько частей, которые я изо всех сил пытаюсь обернуть.

  1. saml2-js требует от вас предоставить закрытый ключ и сертификат для экземпляра ServiceProvider -> https://www.npmjs.com/package/saml2-js#serviceprovideroptions Я не понимаю, для чего они используются, и saml2-js donНе предоставляйте сколько-нибудь значимого описания о них.Я попытался выяснить это с точки зрения SAML, но до сих пор не знаю.
  2. Как IdP, Okta является целью, и после настройки SAML в Okta Okta предоставляет свой сертификат.Теперь я понимаю эту часть, потому что Okta подпишет Ответ, и с нашей стороны SP использует этот сертификат, чтобы гарантировать, что Утверждение пришло от / доверенной стороны.Но как Okta удостоверяется, что запрос поступил от доверенной стороны?Я думал, что сертификат saml2-js, требуемый от нас, будет использоваться для этого, но, как оказалось, это предположение было ложным, потому что Okta никак не получает наш сертификат
  3. При настройке SAML в Okta ( okta guide ) в пункте 6 требуется, чтобы вы заполнили URI аудитории, который по умолчанию является SP entity_id.Но это может быть произвольное значение, верно?Для чего это используется и почему это обязательно?

1 Ответ

2 голосов
/ 09 июля 2019
  1. Поставщику услуг требуется закрытый ключ, если он подписывает сообщения SAML или расшифровывает утверждения SAML.Если это не так, закрытый ключ не требуется.

  2. Я не верю, что Okta требует подписи запроса SAML authn.Это не необычно.Если запрос на авторизацию SAML не подписан, IDP не может быть уверен в том, кто отправил сообщение, но обычно это не создает проблем безопасности.Если вы нажмете ссылку «Показать дополнительные настройки» в конфигурации Okta, вы получите возможность предоставить свой сертификат.Однако это требуется только для подписания сообщений о выходе.

  3. URI аудитории идентифицирует предполагаемого получателя ответа SAML, которым должен быть SP.Это часть протокола SAML, поэтому вы должны ожидать, что SP проверит его значение по идентификатору объекта SP.Если вы посмотрите на спецификацию SAML, то в ней говорится о ее цели, заключающейся в поддержке гарантийных исключений в суде.Вы можете сделать свои собственные выводы о том, насколько это полезно.

...