Разница между сертификатом веб-сайта и сертификатом SAML?

Разница между сертификатом веб-сайта и сертификатом SAML?

Сертификат браузера — это подписанный документ, и с помощью открытого ключа центра сертификации мой пользовательский агент может проверить его.

В файле метаданных SAML тоже есть сертификат, но он просто кажется чем-то другим. Что это и для чего он конкретно?

решение1

Он используется дляпроизводитьподписанный документ. Сертификат, который находится в метаданных IdP, используется для подписи токенов SAML («утверждений»), которые выпускаются поставщиком удостоверений (IdP) и передаются поставщику услуг (SP).

Поскольку утверждение передается через веб-браузер пользователя, оно должно быть защищено от несанкционированного доступа со стороны пользователя (например, чтобы пользователь не мог добавлять дополнительные группы или другие атрибуты), поэтому оно подписывается цифровой подписью с использованием закрытого ключа IdP, а SP проверяет эту подпись, прежде чем разрешить вам войти в систему.

Другими словами, если утверждения SAML примерно эквивалентны подписанным токенам JWT в OIDC, то сертификаты используются как ключи подписи JWT.

(На самом деле, утверждение SAML можно было бы назвать «сертификатом», а выдавший его IdP — «центром сертификации»...)


Кроме того, SP может иметь свой собственный сертификат, который IdP может использовать дляшифроватьутверждение (например, если оно содержит внутренние данные, которые не должны быть переданы пользователю, например, статус теневого бана, или просто для минимизации раскрытия информации, например, номера социального страхования). Это необязательно.

Еще одна причина, по которой SP имеют собственные сертификаты, заключается в том, что они могут подписыватьзапросы на выход из системыкоторые отправляются обратно в IdP. Протокол SAML2 поддерживает «единый выход», когда выход из одного SP приводит к выходу из всех остальных, а также из самого IdP, но этот протокол включает в себя длинную цепочку перенаправлений через местоположения, которые не обязательно могут доверять друг другу.


Примечание: Несмотря на то, что сертификаты в SAML являются тем же типом «подписанного документа», что и в TLS, одно большое отличие заключается в том, что в большинстве случаев сертификаты SAML являются самоподписанными, и SP заботится только о точном открытом ключе, игнорируя все остальные поля. (На самом деле, главная причина использования сертификатов X.509 заключается в том, что SAML использует уже существующий стандарт XML-DSig, и все инструменты/библиотеки рассчитывают иметь дело с сертификатами.) Хотя это не означает, что онине могбыть выпущенным центром сертификации; это поддерживается, но требуется редко.

Связанный контент