2.11. 在仪表板中使用单点登录
Ceph 控制面板支持外部身份验证用户,可选择 Security Assertion Markup Language (SAML) 2.0 协议,或使用 OAuth2 代理(oauth2-proxy)。在将单点登录(SSO)与 Ceph 控制面板搭配使用之前,请创建控制面板用户帐户并分配任何必要的角色。Ceph 控制面板完成用户授权,然后现有的身份提供程序(IdP)完成身份验证过程。您可以使用 SAML 协议或 oauth2-proxy 启用单点登录。
Red Hat Ceph Storage 支持使用 RHSSO (Keycloak)仪表板 SSO 和多因素身份验证。
要将 SAML IdP 与 Ceph 控制面板连接,请使用以下服务提供程序(SP)配置详情。在以下每个配置 URL 中,将 DASHBOARD_HOST 替换为仪表板的完全限定域名(FQDN)和端口。例如,ceph-dashboard.example.com:8443。
- 实体 ID (Audience URI)
- Ceph 控制面板服务提供商的唯一标识符。
https://DASHBOARD_HOST/auth/saml2/metadata
- assertion Consumer Service (ACS)
- IdP 发送 SAML 断言的端点(使用 POST 绑定)。
https://DASHBOARD_HOST/auth/saml2/
- 默认中继状态(Start URL)
- 用户在成功登录后定向到的页面。
https://DASHBOARD_HOST/#/dashboard
有些 IdP 可以从服务提供商元数据自动配置这些字段。要提供元数据,请为 IdP 提供以下 URL:
OAuth2 SSO 使用 oauth2-proxy 服务与 Ceph 管理网关(mgmt-gateway)一起使用,从而提供统一访问和改进的用户体验。
OAuth2 SSO、mgmt-gateway 和 oauth2-proxy 服务是技术预览。
有关 Ceph 管理网关和 OAuth2 代理服务的更多信息,请参阅使用 Ceph 管理网关(mgmt-gateway)和使用 OAuth2 代理(oauth2-proxy)服务。
有关红帽构建的 Keycloack 的更多信息,请参阅红帽客户门户网站上的 红帽 构建 Keycloak。
2.11.1. 创建管理员帐户,将用户同步到 Ceph 仪表板 复制链接链接已复制到粘贴板!
您必须创建 admin 帐户,以便将用户同步到 Ceph 仪表板。
在创建了帐户后,请使用 Red Hat Single Sign-on(SSO)将用户同步到 Ceph 仪表板。请参阅 Red Hat Ceph Storage 仪表板指南中的使用 Red Hat Single Sign-On 将用户同步到 Ceph 仪表板。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 已安装仪表板。
- 控制面板的管理员级别访问权限。
- 用户添加到仪表板中。
- 所有主机上的 root 级别访问权限。
- 安装了 Java OpenJDK。如需更多信息,请参阅红帽客户门户网站中的 Installing and using OpenJDK 8 for RHEL 指南中的 Installing a JRE on RHEL by using yum 部分。
- 从 ZIP 文件安装的 Red Hat Single Sign-On。请参阅红帽客户门户网站上的 Red Hat Single Sign -On 的 Server 安装和配置指南中的 从 ZIP 文件安装 RH-SSO 部分。
流程
- 在安装了 Red Hat Ceph Storage 的系统中下载 Red Hat Single Sign-On 7.4.0 服务器。
解压文件夹:
[root@host01 ~]# unzip rhsso-7.4.0.zip进入
standalone/configuration目录并打开standalone.xml进行编辑:[root@host01 ~]# cd standalone/configuration [root@host01 configuration]# vi standalone.xml在新创建的
rhsso-7.4.0文件夹的bin目录中,运行add-user-keycloak脚本来添加初始管理员用户:[root@host01 bin]# ./add-user-keycloak.sh -u admin-
将
localhost和两个127.0.0.1实例的所有实例替换为安装 Red Hat SSO 的计算机的 IP 地址。 启动服务器。在
rh-sso-7.4文件夹的bin目录中,运行独立引导脚本:[root@host01 bin]# ./standalone.sh创建 admin 账户,https: IP_ADDRESS :8080/auth,带有一个用户名和密码:
注意只有在第一次登录到控制台时,才需要创建一个 admin 帐户。
- 使用创建的凭据登录 admin 控制台。
2.11.2. 使用 Red Hat Single Sign-On 将用户同步到 Ceph 仪表板 复制链接链接已复制到粘贴板!
您可以使用红帽单点登录(SSO)与轻量级目录访问协议(LDAP)集成来把用户同步到 Red Hat Ceph Storage 仪表板。
用户被添加到特定域中,它们可以通过 SSO 访问仪表板,而无需密码进行任何额外的要求。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 已安装仪表板。
- 控制面板的管理员级别访问权限。
- 用户添加到仪表板中。请参阅 Red Hat Ceph Storage Dashboard Guide 中的 Creating users on Ceph dashboard 部分。
- 所有主机上的 root 级别访问权限。
- 为同步用户创建的 admin 帐户。请参阅 Red Hat Ceph Storage Dashboard Guide中的创建管理员帐户,以便将用户同步到 Ceph 仪表板部分。
流程
- 要创建域,点 Master 下拉菜单。在这个域中,您可以提供对用户和应用程序的访问权限。
在 Add Realm 窗口中,输入区分大小写的域名,并将参数 Enabled 设置为 ON,点 Create :
在 Realm Settings 选项卡中,设置以下参数并点 Save :
- enabled - ON
- 用户管理的访问 - ON
记录下 SAML 2.0 身份提供商元数据的链接地址,粘贴到 Client Settings 中。
在 Clients 选项卡中,点 Create :
在 Add Client 窗口中设置以下参数,点 Save :
Client ID - BASE_URL:8443/auth/saml2/metadata
示例
https://example.ceph.redhat.com:8443/auth/saml2/metadata
- 客户端协议 - saml
在 Client 窗口中,在 Settings 选项卡中设置以下参数:
Expand 表 2.2. 客户端设置标签页 参数的名称 语法 示例 客户端 IDBASE_URL:8443/auth/saml2/metadata
https://example.ceph.redhat.com:8443/auth/saml2/metadata
EnabledON
ON
客户端协议saml
saml
包括 AuthnStatementON
ON
签署文档ON
ON
签名算法RSA_SHA1
RSA_SHA1
SAML 签名密钥名称KEY_ID
KEY_ID
有效重定向 URLBASE_URL:8443/*
https://example.ceph.redhat.com:8443/*
基本 URLBASE_URL:8443
https://example.ceph.redhat.com:8443/
Master SAML 处理 URLhttps://localhost:8080/auth/realms/REALM_NAME/protocol/saml/descriptor
https://localhost:8080/auth/realms/Ceph_LDAP/protocol/saml/descriptor
注意从 Realm Settings 选项卡中粘贴 SAML 2.0 身份提供程序元数据的链接。
在 Fine Grain SAML Endpoint Configuration 下,设置以下参数并点 Save :
Expand 表 2.3. 精细的 SAML 配置 参数的名称 语法 Example Assertion Consumer Service POST Binding URL
BASE_URL:8443/#/dashboard
https://example.ceph.redhat.com:8443/#/dashboard
Assertion Consumer Service Redirect Binding URL
BASE_URL:8443/#/dashboard
https://example.ceph.redhat.com:8443/#/dashboard
Logout Service Redirect Binding URL
BASE_URL:8443/
https://example.ceph.redhat.com:8443/
在 Clients 窗口的 Mappers 选项卡中,设置以下参数并点 Save :
Expand 表 2.4. 客户端映射程序标签 参数的名称 Value 协议saml
名称username
Mapper Property用户属性
属性username
SAML 属性名称username
在 Clients Scope 选项卡中,选择 role_list :
- 在 Mappers 选项卡中,选择 角色列表,将 Single Role Attribute 设置为 ON。
选择 User_Federation 选项卡:
- 在 User Federation 窗口中,从下拉菜单中选择 ldap :
在 User_Federation 窗口中,Settings 选项卡设置以下参数,然后单击保存 :
Expand 表 2.5. 用户 Federation Settings 标签页 参数的名称 Value 控制台显示名称rh-ldap
导入用户ON
Edit_ModeREAD_ONLY
用户名 LDAP 属性username
RDN LDAP 属性username
UUID LDAP 属性nsuniqueid
用户对象类inetOrgPerson, organizationalPerson, rhatPerson
连接 URL示例:ldap://ldap.corp.redhat.com,点 Test Connection。您将收到 LDAP 连接成功的通知。
用户 DNou=users, dc=example, dc=com
绑定类型simple
点 Test authentication。您将收到 LDAP 身份验证成功的通知。
在 Mappers 选项卡中,选择 first name 行并编辑以下参数,然后单击 Save :
- LDAP 属性 - 指定名称
在 User_Federation 选项卡,Settings 选项卡中,点 Synchronize all users:
您将收到用户同步成功完成的通知。
在 Users 选项卡中,搜索添加到仪表板中的用户并点击 Search 图标:
要查看用户,请点特定行。您应该看到联邦链接,作为提供给用户联邦的名称。
重要不要手动添加用户,因为用户不会由 LDAP 同步。如果手动添加,点 Delete 来删除用户。
注意如果 Red Hat SSO 当前正在您的工作环境中使用,请务必先启用 SSO。有关更多信息,请参阅 Red Hat Ceph Storage Dashboard Guide 中的 Enabling Single Sign-On with SAMLE 2.0 for the Ceph Dashboard 部分。
验证
用户添加到 realm,控制面板可以使用其电子邮件地址和密码访问 Ceph 仪表板。
示例
https://example.ceph.redhat.com:8443
2.11.3. 为 Ceph 仪表板启用带有 SAML 2.0 的单点登录 复制链接链接已复制到粘贴板!
Ceph 控制面板支持使用安全断言标记语言(SAML)2.0 协议进行外部身份验证。在将单点登录(SSO)与 Ceph 控制面板搭配使用之前,请创建控制面板用户帐户并分配所需的角色。Ceph 控制面板对用户执行授权,身份验证过程由现有的身份提供程序(IdP)执行。您可以使用 SAML 协议启用单点登录。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 安装 Ceph 控制面板.
- 对 Ceph Manager 主机的 root 级别访问权限。
流程
要在 Ceph Dashboard 中配置 SSO,请运行以下命令:
语法
cephadm shell CEPH_MGR_HOST ceph dashboard sso setup saml2 CEPH_DASHBOARD_BASE_URL IDP_METADATA IDP_USERNAME_ATTRIBUTE IDP_ENTITY_ID SP_X_509_CERT SP_PRIVATE_KEY示例
[root@host01 ~]# cephadm shell host01 ceph dashboard sso setup saml2 https://dashboard_hostname.ceph.redhat.com:8443 idp-metadata.xml username https://10.70.59.125:8080/auth/realms/realm_name /home/certificate.txt /home/private-key.txt替换
-
CEPH_MGR_HOST 与 Ceph
mgr主机。例如,host01 - CEPH_DASHBOARD_BASE_URL 带有可以访问 Ceph 仪表板的基本 URL。
- IDP_METADATA,包含到远程或本地路径的 URL,或 IdP 元数据 XML 的内容。支持的 URL 类型包括 http、https 和 文件。
- 可选:IDP_USERNAME_ATTRIBUTE,包含用于从身份验证响应中获取用户名的属性。默认为 uid。
- 可选 :当 IdP 元数据中存在多个实体 ID 时,使用 IdP 实体 ID 的 IDP_ENTITY_ID。
- 可选:SP_X_509_CERT,包含 Ceph Dashboard 用来签名和加密的证书文件路径。
- 可选 :SP_PRIVATE_KEY 以及 Ceph Dashboard 用来签名和加密的私钥的文件路径。
-
CEPH_MGR_HOST 与 Ceph
验证当前的 SAML 2.0 配置:
语法
cephadm shell CEPH_MGR_HOST ceph dashboard sso show saml2示例
[root@host01 ~]# cephadm shell host01 ceph dashboard sso show saml2要启用 SSO,运行以下命令:
语法
cephadm shell CEPH_MGR_HOST ceph dashboard sso enable saml2 SSO is "enabled" with "SAML2" protocol.示例
[root@host01 ~]# cephadm shell host01 ceph dashboard sso enable saml2打开您的仪表板 URL。
示例
https://dashboard_hostname.ceph.redhat.com:8443- 在 SSO 页面上,输入登录凭据。SSO 会重定向到仪表板 Web 界面。
2.11.4. 使用 OAuth2 协议将 Red Hat SSO 配置为身份提供程序 复制链接链接已复制到粘贴板!
您可以通过将 Red Hat SSO 配置为身份提供程序(IdP),为 IBM Storage Ceph 控制面板启用单点登录(SSO)。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 具有对应子卷的子卷组。
-
启用 Ceph 管理网关(
mgmt-gateway)服务。有关更多信息,请参阅启用 Ceph 管理网关。 -
启用 OAuth2 代理服务(
oauth2-proxy)。如需更多信息,请参阅启用 OAuth2 代理服务。 - 在配置身份提供程序前,请确保配置了 oauth2 代理和身份提供程序。
流程
在 Red Hat SSO 中创建域。
- 单击 Master HEKETIdrop-down 菜单,再选择 Add Realm。
- 为域输入一个区分大小写的名称。
- 设置 Enabled HEKETIto ON ,点 Create。
配置 realm 设置。
- 进入 Realm Settings swigtab。
- 将 Enabled 设置为 ON,将 用户管理的访问权限 设置为 ON。
- 点* swigSave*。
- 复制 swigOpenID Endpoint Configuration swigURL。对于 OAuth2 Proxy 设置,请使用此配置中的 swigissuer swigendpoint。
示例
Issuer: http://<your-ip>:<port>/realms/<realm-name>
创建和配置 OIDC 客户端。
- 创建类型为 swigOpenID Connect 的客户端。
- 启用客户端身份验证和授权。
设置重定向 URL。
- 有效的重定向 URL: https://<host_name|IP_address>/oauth2/callback
- 有效的注销重定向 URL: https://<host_name|IP_address>/oauth2/sign_out
- 进入 Credentials 选项卡,并记下 wagonclient_id swigand swigclient_secret 的值。这些凭证需要配置 swigoauth2-proxywagonservice。
创建用于仪表板访问的角色。
- 导航到 Roles 选项卡。
- 创建角色并将其分配给 OIDC 客户端。
- 使用 IBM Storage Ceph 仪表板支持的角色名称。
创建用户并分配角色。
- 创建新用户。
- 定义用户凭据。
- 打开 swigRole Mappings swigtab,并将之前创建的角色分配给该用户。
为仪表板启用 SSO。
语法
ceph dashboard sso enable
现在,为 Ceph 管理堆栈启用了 SSO。当用户访问控制面板时,它们会被重定向到 Red Hat SSO 登录页面。身份验证成功后,会根据 Red Hat SSO 中指定的角色在所有监控堆栈(包括仪表板、Grafana 和 Prometheus)授予用户访问权限。
2.11.5. 使用 OAuth2 协议将 IBM Security Verify 配置为身份提供程序 复制链接链接已复制到粘贴板!
您可以通过将 IBM Security Verify 配置为身份提供程序(IdP)为 IBM Storage Ceph 仪表板启用单点登录(SSO)。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 安装 Ceph 控制面板.
-
启用 Ceph 管理网关(
mgmt-gateway)服务。有关更多信息,请参阅启用 Ceph 管理网关。 -
启用 OAuth2 代理服务(
oauth2-proxy)。如需更多信息,请参阅启用 OAuth2 代理服务。
流程
- 从 IBM Security Verify 应用程序,进入到 Applications > Application,然后点 Add An Application。
- 在 Application Type 下,选择 Custom Application,再单击 Add Application。
- 在 General 选项卡下添加公司名称。
- 导航到 Sign-on 选项卡,然后从 Sign-on Method 下拉列表中选择 Open ID Connect 1.0。
在 Application URL 部分下,输入 mgmt-gateway URL。
示例
https://<HOSTNAME/IP_OF_THE_MGMT-GATEWAY_HOST>- 清除 PKCE 验证 复选框。
从 Redirect URIs 部分,填写重定向 URI。使用以下重定向 URL 格式:
从 Token settings 中,选择 JWT 作为访问令牌格式。对于以下每个属性,在对应字段中输入详情,然后从下拉列表中选择对应的属性源:
- 名称 | preferred_username
- 电子邮件 | 电子邮件
- 从 Consent Settings,从下拉列表中选择 Do not ask for consent。
- 在 Custom Scopes 中清除 Restrict Custom Scopes 复选框,然后点 Save。
添加用户。
- 进入 Directory > Users & Groups 并点 Add User。
- 提供所需的用户名和有效电子邮件地址。初始用户凭证发送到提供的电子邮件地址。
- 点击 Save。
进入 Directory > Attributes,再点 Add Attribute。
- 选中 Custom Attribute,然后选择 Single Sign On (SSO) 复选框。点 Next。
- 在 Attribute Name 字段中,输入 roles。
- 在 Data Type 下,从下拉列表中选择 Multivalue String。
- 点 Additional settings,从 Apply Transformation 下拉列表中选择 Lowercase,然后点 Next。
- 单击 Add Attribute。
进入 Directory > Users & Groups 并编辑新添加的用户。
- 选择 View Extended Profile。
- 从 自定义用户属性,添加所需的仪表板角色。例如,管理员、read-only、block-manager 等。此用户会自动继承仪表板角色。
- 单击 Save settings。
进入 Applications > Application,点在第 2 步中创建的自定义应用程序的 Settings 图标。
- 在 Sign-on 选项卡中,进入 *Token setting*s。
- 对于 roles 属性,在对应的字段中输入详情,然后从下拉列表中选择对应的属性源: roles | roles
- 在 Entitlements 选项卡中,添加新创建的用户并点 Save。
2.11.6. 启用 OAuth2 单点登录 复制链接链接已复制到粘贴板!
为 Ceph 控制面板启用 OAuth2 单点登录(SSO)。OAuth2 SSO 使用 oauth2-proxy 服务。
为 Red Hat Ceph Storage 8.0 启用 OAuth2 单点登录是技术预览。
红帽产品服务级别协议(SLA)不支持技术预览功能,且其功能可能并不完善,因此红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。如需了解更多详细信息,请参阅红帽技术预览功能的支持范围。
先决条件
在开始前,请确保您有以下先决条件:
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 安装 Ceph 控制面板.
- Ceph 管理器主机的 root 级别访问权限。
- 在 7.6.0 上带有 Red Hat Single-Sign 的 admin 帐户。如需更多信息,请参阅 使用红帽单点登录 7.6.0 创建管理员帐户。
-
启用 Ceph 管理网关(
mgmt-gateway)服务。有关更多信息,请参阅启用 Ceph 管理网关。 -
启用 OAuth2 代理服务(
oauth2-proxy)。如需更多信息,请参阅启用 OAuth2 代理服务。 - 您应该拥有运行 Red Hat Single-Sign-On 7.6.0 的 admin 帐户,运行 OAuth2 协议,或 IBM Security Verify with OAuth2 协议正在运行。如需更多信息,请参阅使用 OAuth2 协议将 IBM 安全验证配置为身份提供程序。
流程
启用 Ceph 控制面板 OAuth2 SSO 访问。
语法
ceph dashboard sso enable oauth2示例
[ceph: root@host01 /]# ceph dashboard sso enable oauth2 SSO is "enabled" with "oauth2" protocol.设置有效的重定向 URL。
语法
https://HOST_NAME|IP_ADDRESS/oauth2/callback注意此 URL 必须与 OAuth2 代理服务中配置的重定向 URL 相同。
配置有效的用户角色。
注意对于管理员角色,请使用管理员或只读访问权限配置 IDP 用户。
打开您的仪表板 URL。
示例
https://<hostname/ip address of mgmt-gateway host>- 在 SSO 页面上,输入身份提供程序(IdP)凭据。SSO 重定向到仪表板 Web 界面。
验证
使用 cephadm shell ceph dashboard sso status 命令随时检查 SSO 状态。
示例
[root@host01 ~]# cephadm shell ceph dashboard sso status
SSO is "enabled" with "oauth2" protocol.
2.11.7. 为 Ceph 仪表板禁用单点登录 复制链接链接已复制到粘贴板!
您可以随时为 Ceph 控制面板禁用 SAML 2.0 和 OAuth2 SSO。
先决条件
在开始前,请确保您有以下先决条件:
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 安装 Ceph 控制面板.
- 对 Ceph Manager 主机的 root 级别访问权限。
- 为 Ceph Dashboard 启用单点登录
流程
要查看 SSO 的状态,请运行以下命令:
语法
cephadm shell CEPH_MGR_HOST ceph dashboard sso status示例
[root@host01 ~]# cephadm shell host01 ceph dashboard sso status SSO is "enabled" with "SAML2" protocol.要禁用 SSO,请运行以下命令:
语法
cephadm shell CEPH_MGR_HOST ceph dashboard sso disable SSO is "disabled".示例
[root@host01 ~]# cephadm shell host01 ceph dashboard sso disable