3.2. mod_auth_mellon Apache HTTPD 模块
mod_auth_mellon 模块是 SAML 的 Apache HTTPD 插件。如果您的语言/环境支持将 Apache HTTPD 用作代理,您可以使用 mod_auth_mellon 使用 SAML 保护您的 Web 应用程序。有关此模块的详情,请查看 mod_auth_mellon GitHub 仓库。
要配置 mod_auth_mellon,您需要:
- 一个身份提供程序(IdP)实体描述符 XML 文件,该文件描述了与 Red Hat Single Sign-On 或另一个 SAML IdP 的连接
- SP 实体描述符 XML 文件,用于描述您要保护的应用程序的 SAML 连接和配置。
- 私钥 PEM 文件,它是 PEM 格式的文本文件,用于定义应用程序用于签署文档的私钥。
- 证书 PEM 文件,这是为应用程序定义证书的文本文件。
- mod_auth_mellon-specific Apache HTTPD 模块配置。
涉及两台主机:
- 运行 Red Hat Single Sign-On 的主机,称为 $idp_host,因为 Red Hat Single Sign-On 是 SAML 身份提供程序(IdP)。
- 运行 Web 应用的主机,称为 $sp_host。在 SAML 中,使用 IdP 的应用程序称为服务提供商(SP)。
以下所有步骤都需要在具有 root 权限的 $sp_host 上执行。
3.2.1.1. 安装软件包 复制链接链接已复制到粘贴板!
要安装所需软件包,您需要:
- Apache Web 服务器(httpd)
- Mellon SAML SP 附加组件模块用于 Apache
- 创建 X509 证书的工具
要安装所需软件包,请运行以下命令:
yum install httpd mod_auth_mellon mod_ssl openssl
yum install httpd mod_auth_mellon mod_ssl openssl
3.2.1.2. 为 Apache SAML 创建配置目录 复制链接链接已复制到粘贴板!
建议您在一个位置保留与 Apache 使用 SAML 相关的配置文件。
在 Apache 配置根目录 /etc/httpd 下创建名为 saml2 的新目录:
mkdir /etc/httpd/saml2
mkdir /etc/httpd/saml2
3.2.1.3. 配置 Mellon 服务提供商 复制链接链接已复制到粘贴板!
Apache 附加组件模块的配置文件位于 /etc/httpd/conf.d 目录中,且文件名扩展名 .conf。您需要创建 /etc/httpd/conf.d/mellon.conf 文件并将 Mellon 的配置指令放入其中。
Mellon 的配置指令可大致分为两类信息:
- 使用 SAML 身份验证保护的 URL
- 引用受保护的 URL 时,将使用 SAML 参数。
Apache 配置指令通常遵循 URL 空间中的层次结构,这些结构称为位置。您需要为 Mellon 指定一个或多个 URL 位置来保护。您具有如何添加适用于各个位置的配置参数的灵活性。您可以将所有必要参数添加到位置块中,也可以将 Mellon 参数添加到特定受保护位置的 URL 位置层次结构中的常用位置(或两者的某些组合)。由于 SP 以相同的方式运作,因此无论哪个位置触发 SAML 操作,因此此处使用的示例配置将通用 Mellon 配置指令放在层次结构的根目录中,然后可以使用最小指令定义特定位置。此策略可避免为每个受保护的位置复制相同的参数。
此示例只有一个受保护的位置:https://$sp_host/private。
要配置 Mellon 服务提供商,请执行以下步骤:
流程
- 使用以下内容创建文件 /etc/httpd/conf.d/mellon.conf:
以上代码中提到的一些文件会在后续步骤中创建。