Link Search Menu Expand Document Documentation Menu

配置 Dashboards 登录以支持多种身份验证选项

您可以配置 OpenSearch Dashboards 的登录窗口,以提供单一或多种用户身份验证选项。目前,Dashboards 支持基本身份验证、OpenID Connect 和 SAML 作为多种选项。

配置多种身份验证选项的一般步骤

在配置多种身份验证选项的登录窗口之前,请考虑以下步骤顺序。

  1. 决定在登录时提供哪些类型的身份验证。
  2. 配置每种身份验证类型,包括身份提供商 (IdP) 的身份验证域以及赋予每种类型登录 OpenSearch Dashboards 权限的基本设置。有关 OpenID Connect 后端配置,请参阅OpenID Connect。有关 SAML 后端配置,请参阅SAML
  3. opensearch_dashboards.yml 文件中添加、启用和配置多种选项的身份验证设置。

启用多种身份验证选项

默认情况下,Dashboards 提供基本身份验证用于登录。要启用多种身份验证选项,首先需要将 opensearch_security.auth.multiple_auth_enabled 添加到 opensearch_dashboards.yml 文件并将其设置为 true

要在登录期间将多种身份验证类型指定为选项,请将 opensearch_security.auth.type 设置添加到 opensearch_dashboards.yml 文件并输入多种类型作为值。当设置中添加了多个身份验证类型时,Dashboards 登录窗口会识别多种类型并进行调整以适应登录选项。

在设置 Dashboards 以提供多种身份验证选项时,基本身份验证始终是设置中所需的一个值。

当只需要一种身份验证类型时,请为设置添加单个值。

opensearch_security.auth.type: "openid"

对于多种身份验证选项,请将值作为以逗号分隔的数组添加到设置中。请注意,Dashboards 目前支持基本身份验证、OpenID Connect 和 SAML 的组合作为有效值集。在设置中,这些值表示为 "basicauth""openid""saml"

opensearch_security.auth.type: ["basicauth","openid"]
opensearch_security.auth.multiple_auth_enabled: true
opensearch_security.auth.type: ["basicauth","saml"]
opensearch_security.auth.multiple_auth_enabled: true
opensearch_security.auth.type: ["basicauth","saml","openid"]
opensearch_security.auth.multiple_auth_enabled: true

opensearch_security.auth.type 设置包含 basicauth 和另一种身份验证类型时,登录窗口会显示为以下示例。

Basic authentication and one other type in the sign-in window

当指定所有三种有效身份验证类型时,登录窗口会显示为以下示例。

All three authentication types specified in the sign-in window

自定义登录环境

除了每种身份验证类型所需的基本登录设置之外,您还可以在 opensearch_dashboards.yml 文件中配置其他设置,以自定义登录窗口,使其清晰地表示可用的选项。例如,您可以将登录按钮上的标签替换为 IdP 的名称和图标。请参阅以下设置和描述。

Multi-option sign-in window with with some customization

基本身份验证设置

这些设置允许您自定义基本用户名和密码登录按钮。

设置 描述
opensearch_security.ui.basicauth.login.brandimage 登录按钮徽标。支持的文件类型包括 SVG、PNG 和 GIF。
opensearch_security.ui.basicauth.login.showbrandimage 确定是否显示登录按钮的徽标。默认为 true

OpenID Connect 身份验证设置

这些设置允许您自定义与 OpenID Connect 身份验证关联的登录按钮。有关将 OpenID Connect 用作单一登录选项所需的基本设置,请参阅OpenSearch Dashboards 单点登录

设置 描述
opensearch_security.ui.openid.login.buttonname 登录按钮的显示名称。“使用单点登录登录”为默认值。
opensearch_security.ui.openid.login.brandimage 登录按钮徽标。支持的文件类型包括 SVG、PNG 和 GIF。
opensearch_security.ui.openid.login.showbrandimage 确定是否显示登录按钮的徽标。默认为 false

SAML 身份验证设置

这些设置允许您自定义与 SAML 身份验证关联的登录按钮。有关将 SAML 用作登录选项所需的基本设置,请参阅OpenSearch Dashboards 配置

设置 描述
opensearch_security.ui.saml.login.buttonname 登录按钮的显示名称。“使用单点登录登录”为默认值。
opensearch_security.ui.saml.login.brandimage 登录按钮徽标。支持的文件类型包括 SVG、PNG 和 GIF。
opensearch_security.ui.saml.login.showbrandimage 确定是否显示登录按钮的徽标。默认为 false

示例设置

以下示例显示了当 opensearch_dashboards.yml 文件配置为支持两种登录身份验证类型时的基本设置。

# The several settings directly below are typical of all `opensearch_dashboards.yml` configurations. #
server.host: 0.0.0.0
server.port: 5601
opensearch.hosts: ["https://:9200"]
opensearch.ssl.verificationMode: none
opensearch.username: <preferred username>
opensearch.password: <preferred password>
opensearch.requestHeadersAllowlist: ["securitytenant","Authorization"]
opensearch_security.multitenancy.enabled: true
opensearch_security.multitenancy.tenants.preferred: ["Private", "Global"]
opensearch_security.readonly_mode.roles: ["<role_for_read_only>"]

# Settings that enable multiple option authentication in the sign-in window #
opensearch_security.auth.multiple_auth_enabled: true
opensearch_security.auth.type: ["basicauth","openid"]

# Basic authentication customization #
opensearch_security.ui.basicauth.login.brandimage: <path/to/OSlogo.png>
opensearch_security.ui.basicauth.login.showbrandimage: true

# OIDC auth customization and start settings #
opensearch_security.ui.openid.login.buttonname: Log in with <IdP name or other> 
opensearch_security.ui.openid.login.brandimage: <path/to/brand-logo.png>
opensearch_security.ui.openid.login.showbrandimage: true

opensearch_security.openid.base_redirect_url: <"OIDC redirect URL">
opensearch_security.openid.verify_hostnames: false
opensearch_security.openid.refresh_tokens: false
opensearch_security.openid.logout_url: <"OIDC logout URL">

opensearch_security.openid.connect_url: <"OIDC connect URL">
opensearch_security.openid.client_id: <Client ID>
opensearch_security.openid.client_secret: <Client secret>