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 和多因素身份验证。
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 服务器。
解压文件夹:
unzip rhsso-7.4.0.zip
[root@host01 ~]# unzip rhsso-7.4.0.zip
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 进入
standalone/configuration
目录并打开standalone.xml
进行编辑:cd standalone/configuration vi standalone.xml
[root@host01 ~]# cd standalone/configuration [root@host01 configuration]# vi standalone.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在新创建的
rhsso-7.4.0
文件夹的bin
目录中,运行add-user-keycloak
脚本来添加初始管理员用户:./add-user-keycloak.sh -u admin
[root@host01 bin]# ./add-user-keycloak.sh -u admin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
localhost
和两个127.0.0.1
实例的所有实例替换为安装 Red Hat SSO 的计算机的 IP 地址。 启动服务器。在
rh-sso-7.4
文件夹的bin
目录中,运行独立
引导脚本:./standalone.sh
[root@host01 bin]# ./standalone.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 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. 客户端设置标签页 参数的名称 语法 示例 客户端 ID
BASE_URL:8443/auth/saml2/metadata
https://example.ceph.redhat.com:8443/auth/saml2/metadata
Enabled
ON
ON
客户端协议
saml
saml
包括 AuthnStatement
ON
ON
签署文档
ON
ON
签名算法
RSA_SHA1
RSA_SHA1
SAML 签名密钥名称
KEY_ID
KEY_ID
有效重定向 URL
BASE_URL:8443/*
https://example.ceph.redhat.com:8443/*
基本 URL
BASE_URL:8443
https://example.ceph.redhat.com:8443/
Master SAML 处理 URL
https://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_Mode
READ_ONLY
用户名 LDAP 属性
username
RDN LDAP 属性
username
UUID LDAP 属性
nsuniqueid
用户对象类
inetOrgPerson, organizationalPerson, rhatPerson
连接 URL
示例:ldap://ldap.corp.redhat.com,点 Test Connection。您将收到 LDAP 连接成功的通知。
用户 DN
ou=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
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
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
[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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 替换
-
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
cephadm shell CEPH_MGR_HOST ceph dashboard sso show saml2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
cephadm shell host01 ceph dashboard sso show saml2
[root@host01 ~]# cephadm shell host01 ceph dashboard sso show saml2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要启用 SSO,运行以下命令:
语法
cephadm shell CEPH_MGR_HOST ceph dashboard sso enable saml2 SSO is "enabled" with "SAML2" protocol.
cephadm shell CEPH_MGR_HOST ceph dashboard sso enable saml2 SSO is "enabled" with "SAML2" protocol.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
cephadm shell host01 ceph dashboard sso enable saml2
[root@host01 ~]# cephadm shell host01 ceph dashboard sso enable saml2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 打开您的仪表板 URL。
示例
https://dashboard_hostname.ceph.redhat.com:8443
https://dashboard_hostname.ceph.redhat.com:8443
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 在 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>
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 dashboard sso enable
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
现在,为 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>
https://<HOSTNAME/IP_OF_THE_MGMT-GATEWAY_HOST>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 清除 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 dashboard sso enable oauth2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph dashboard sso enable oauth2 SSO is "enabled" with "oauth2" protocol.
[ceph: root@host01 /]# ceph dashboard sso enable oauth2 SSO is "enabled" with "oauth2" protocol.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置有效的重定向 URL。
语法
https://HOST_NAME|IP_ADDRESS/oauth2/callback
https://HOST_NAME|IP_ADDRESS/oauth2/callback
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意此 URL 必须与 OAuth2 代理服务中配置的重定向 URL 相同。
配置有效的用户角色。
注意对于管理员角色,请使用管理员或只读访问权限配置 IDP 用户。
打开您的仪表板 URL。
示例
https://<hostname/ip address of mgmt-gateway host>
https://<hostname/ip address of mgmt-gateway host>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 在 SSO 页面上,输入身份提供程序(IdP)凭据。SSO 重定向到仪表板 Web 界面。
验证
使用 cephadm shell ceph dashboard sso status
命令随时检查 SSO 状态。
示例
cephadm shell ceph dashboard sso status
[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
cephadm shell CEPH_MGR_HOST ceph dashboard sso status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
cephadm shell host01 ceph dashboard sso status
[root@host01 ~]# cephadm shell host01 ceph dashboard sso status SSO is "enabled" with "SAML2" protocol.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要禁用 SSO,请运行以下命令:
语法
cephadm shell CEPH_MGR_HOST ceph dashboard sso disable SSO is "disabled".
cephadm shell CEPH_MGR_HOST ceph dashboard sso disable SSO is "disabled".
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
cephadm shell host01 ceph dashboard sso disable
[root@host01 ~]# cephadm shell host01 ceph dashboard sso disable
Copy to Clipboard Copied! Toggle word wrap Toggle overflow