多租户动态配置
多租户包含 UDB-SX Dashboards 中的动态配置选项,因此您可以管理租户的常见设置,而无需更改每个节点上的配置 YAML 文件并重新启动集群。您可以使用 UDB-SX Dashboards 前端或 REST API 来利用此功能。以下列表包括当前由动态配置涵盖的选项描述:
禁用或启用多租户:管理员可以动态禁用和启用多租户。禁用多租户不会造成数据丢失的风险。如果管理员选择重新启用租户,则所有先前保存的对象都将被保留并可用。默认值为
multitenancy_enabled: true。此设置不会影响全局租户,全局租户始终处于启用状态。禁用或启用私有租户:此选项允许管理员启用和禁用私有租户。与启用多租户设置一样,当重新启用私有租户时,所有先前保存的对象都将被保留并可用。
默认租户:此选项允许管理员选择全局、私有或自定义租户作为用户登录时的默认租户。如果用户无法访问默认租户(例如,如果指定了用户不可用的自定义租户作为默认租户),则默认值将过渡到首选租户,该租户由
udbsx-dashboards.yml文件中的udbsx_security.multitenancy.tenants.preferred设置指定。
根据使用动态配置对多租户所做的具体更改,一旦更改保存,某些用户可能会从其 Dashboards 会话中注销。例如,如果管理员用户禁用多租户,则选择私有或自定义租户的用户将被注销并需要重新登录。同样,如果管理员用户禁用私有租户,则选择私有租户的用户将被注销并需要重新登录。
然而,全局租户是一个特殊情况。由于此租户从未被禁用,因此选择全局租户作为其活动租户的用户将不会遇到会话中断。此外,更改默认租户不会影响用户的会话。
在 UDB-SX Dashboards 中配置多租户
要在 Dashboards 中配置多租户,请按照以下步骤操作:
首先,在 Dashboards 主页菜单中选择 安全。然后选择屏幕左侧安全菜单中的 租户。将显示 Dashboards 多租户 页面。
默认情况下,将显示 管理 选项卡。选择 配置 选项卡以显示多租户的动态设置。
在 Dashboards 多租户 字段中,选择 启用 复选框以启用多租户。清除复选框以禁用该功能。默认值为
true。在 Dashboards 租户 字段中,您可以启用或禁用用户的私有租户。默认情况下复选框已选中,该功能已启用。
在 Dashboards 默认租户 字段中,使用下拉菜单选择默认租户。菜单包括 Global、Private 以及任何其他可供用户使用的自定义租户。
进行首选更改后,选择窗口右下角的 保存更改。将弹出一个窗口,列出您已更改的配置项,并要求您审阅更改。
选择要确认的项目旁边的复选框,然后选择 应用更改。更改将动态实施。
使用 REST API 配置多租户
除了使用 Dashboards 界面外,您还可以使用 REST API 管理动态配置。
获取租户配置
GET 调用检索动态配置的设置:
GET /_plugins/_security/api/tenancy/config
示例响应
{
"default_tenant": "",
"private_tenant_enabled": true,
"multitenancy_enabled": true,
"sign_in_options": [
"BASIC"
]
}
更新租户配置
PUT 调用更新动态配置的设置:
PUT /_plugins/_security/api/tenancy/config
{
"default_tenant": "test-tenant",
"private_tenant_enabled": false,
"multitenancy_enabled": true
}
示例响应
{
"default_tenant": "test-tenant",
"private_tenant_enabled": false,
"multitenancy_enabled": true,
"sign_in_options": [
"BASIC"
]
}
Dashboardsinfo API
您还可以使用 Dashboardsinfo API 来检索登录到 Dashboards 的用户的多租户设置状态:
GET /_plugins/_security/dashboardsinfo
示例响应
{
"user_name": "admin",
"not_fail_on_forbidden_enabled": false,
"opensearch_dashboards_mt_enabled": true,
"opensearch_dashboards_index": ".kibana",
"opensearch_dashboards_server_user": "kibanaserver",
"multitenancy_enabled": true,
"private_tenant_enabled": false,
"default_tenant": "test-tenant",
"sign_in_options": [
"BASIC"
],
"password_validation_error_message": "A password must be at least 8 characters long and contain at least one uppercase letter, one lowercase letter, one digit, and one special character.",
"password_validation_regex": """(?=.*[A-Z])(?=.*[^a-zA-Z\d])(?=.*[0-9])(?=.*[a-z]).{8,}"""
}