3.2.2. 为 mod_auth_mellon 使用的 Cookie 设置 SameSite 值
浏览器计划将 Cookie 的 SameSite 属性的默认值设置为 Lax。此设置表示,只有在请求来自同一域中时,才会将 Cookie 发送到应用程序。此行为可能会影响 SAML POST 绑定,这些绑定可能无法正常工作。要保留 mod_auth_mellon 模块的完整功能,我们建议将 mod_auth_mellon 创建的 Cookie 的 SameSite 值设置为 None。这样做可能会导致使用 Red Hat Single Sign-On 登录。
要将 SameSite 值设置为 None,请在 mellon.conf 文件中的 < ;Location / > tag 中添加以下配置。
MellonSecureCookie On MellonCookieSameSite none
MellonSecureCookie On
MellonCookieSameSite none
对此配置的支持包括在 0.16.0 版的 mod_auth_mellon 模块中。
3.2.2.1. 创建服务提供商元数据 复制链接链接已复制到粘贴板!
在 SAML IdP 和 SP 中可交换 SAML 元数据,它是一个 XML 格式。元数据的 schema 是一种标准,因此,参与 SAML 实体可以相互消耗元数据。您需要:
- SP 使用的 IdP 元数据
- 描述 IdP 提供的 SP 元数据
SAML 元数据的一个组件是 X509 证书。这些证书用于两种目的:
- 为 SAML 消息签名,以便接收最终能够证明来自预期方的消息。
- 在传输期间加密消息(由于 SAML 消息通常发生在 TLS 保护的传输中)
如果您已有证书颁发机构(CA)或生成自签名证书,您可以使用自己的证书。在本例中简单起见,需要使用自签名证书。
因为 Mellon 的 SP 元数据必须反映已安装版本的 mod_auth_mellon 的功能,必须是有效的 SP 元数据 XML,并且必须包含 X509 证书(哪些创建可能是模糊的,除非您熟悉 X509 证书生成)。生成的元数据可以始终编辑,因为它是文本文件。该工具还会创建您的 X509 密钥和证书。
SAML IdP 和 SP 使用唯一名称(称为 EntityID)标识自己。要使用 Mellon 元数据创建工具,您需要:
- EntityID,通常是 SP 的 URL,并且通常检索 SP 元数据的 SP URL
- 将消耗 SP 的 SAML 消息的 URL,Mellon 调用 MellonPointPath。
要创建 SP 元数据,请执行以下步骤:
流程
创建几个 helper shell 变量:
fqdn=`hostname` mellon_endpoint_url="https://${fqdn}/mellon" mellon_entity_id="${mellon_endpoint_url}/metadata" file_prefix="$(echo "$mellon_entity_id" | sed 's/[^A-Za-z.]/_/g' | sed 's/__*/_/g')"fqdn=`hostname` mellon_endpoint_url="https://${fqdn}/mellon" mellon_entity_id="${mellon_endpoint_url}/metadata" file_prefix="$(echo "$mellon_entity_id" | sed 's/[^A-Za-z.]/_/g' | sed 's/__*/_/g')"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令调用 Mellon 元数据创建工具:
/usr/libexec/mod_auth_mellon/mellon_create_metadata.sh $mellon_entity_id $mellon_endpoint_url
/usr/libexec/mod_auth_mellon/mellon_create_metadata.sh $mellon_entity_id $mellon_endpoint_urlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将生成的文件移动到其目的地(在上面创建的 /etc/httpd/conf.d/mellon.conf 文件中引用):
mv ${file_prefix}.cert /etc/httpd/saml2/mellon.crt mv ${file_prefix}.key /etc/httpd/saml2/mellon.key mv ${file_prefix}.xml /etc/httpd/saml2/mellon_metadata.xmlmv ${file_prefix}.cert /etc/httpd/saml2/mellon.crt mv ${file_prefix}.key /etc/httpd/saml2/mellon.key mv ${file_prefix}.xml /etc/httpd/saml2/mellon_metadata.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow