Настройка подписи и шифрования SAML
Grafana поддерживает подписанные и зашифрованные ответы, и только поддерживает подписанные запросы.
Сертификат и приватный ключ
Обычно сертификат и ключ встроены в метаданные IdP и обновляются по мере необходимости Grafana автоматически. Однако если ваш IdP ожидает подписанные запросы, вы должны предоставить сертификат и приватный ключ.
Стандарт SAML SSO использует асимметричное шифрование для обмена информацией между SP (Grafana) и IdP. Для выполнения такого шифрования вам нужны публичная часть и приватная часть. В этом случае сертификат X.509 предоставляет публичную часть, а приватный ключ предоставляет приватную часть. Приватный ключ должен быть выпущен в формате PKCS#8.
Если вы предоставляете сертификат и ключ напрямую, Grafana поддерживает два способа указания как certificate, так и private_key:
- Без суффикса (
certificateилиprivate_key) конфигурация предполагает, что вы предоставили содержимое файла в кодировке base64. - С суффиксом
_path(certificate_pathилиprivate_key_path) Grafana обрабатывает введённое значение как путь и пытается прочитать файл из файловой системы.
Note
Вы можете использовать только одну форму каждого параметра конфигурации. Использование нескольких форм, например как
certificate, так иcertificate_path, приводит к ошибке.
Всегда работайте с командой безопасности вашей компании над настройкой сертификатов и приватных ключей. Если вам нужно сгенерировать их самостоятельно (например, в краткосрочной перспективе, для целей тестирования и так далее), используйте следующий пример для генерации сертификата и приватного ключа, включая шаг обеспечения того, чтобы ключ был сгенерирован в формате PKCS#8.
Алгоритм подписи
Стандарт SAML требует цифровых подписей для критически важных сообщений, таких как запросы аутентификации и выхода. Когда вы настраиваете параметр signature_algorithm, Grafana автоматически подписывает эти запросы SAML, используя ваш настроенный приватный ключ и сертификат.
Поддерживаемые алгоритмы
rsa-sha1: устаревший алгоритм, не рекомендуется для новых развёртыванийrsa-sha256: рекомендуется для большинства случаев использованияrsa-sha512: самая сильная безопасность, но может повлиять на производительность
Важные соображения
- Алгоритм подписи должен точно совпадать с вашей конфигурацией IdP
- Несовпадающие алгоритмы приведут к сбоям валидации подписи
- Grafana использует ключ и сертификат, указанные в параметрах
private_keyиcertificate, для подписи - Мы рекомендуем использовать
rsa-sha256для новых реализаций SAML
Пример генерации приватного ключа для аутентификации SAML
Пример того, как сгенерировать самоподписанный сертификат и приватный ключ, действительный в течение одного года:
$ openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
Кодируйте файлы cert.pem и key.pem в base64: (переключатель -w0 не нужен на Mac, только для Linux)
$ base64 -i key.pem -o key.pem.base64
$ base64 -i cert.pem -o cert.pem.base64
Значения в кодировке base64 (файлы key.pem.base64, cert.pem.base64) затем используются для certificate и private key.
Предоставляемый вами ключ должен выглядеть так:
-----BEGIN PRIVATE KEY-----
...
...
-----END PRIVATE KEY-----