You need to enable JavaScript to run this app.
文档中心
云搜索服务

云搜索服务

复制全文
下载 pdf
实例访问
配置 SAML 身份验证实现单点登录
复制全文
下载 pdf
配置 SAML 身份验证实现单点登录
通过 SAML 身份验证,您可以将 Elasticsearch 和 OpenSearch 实例接入企业身份认证体系,实现用户通过单点登录访问。本文介绍如何配置 SAML 身份验证实现单点登录。​
背景信息​
单点登录(Single Sign-On,SSO)是一种统一身份认证机制,允许用户通过一次身份验证即可访问多个相互信任的应用系统,无需重复登录。SAML(Security Assertion Markup Language)2.0 是一种基于 XML 的开放标准,广泛应用于企业级单点登录场景,通过身份提供商(Identity Provider,IdP)与服务提供商(Service Provider,SP)之间交换身份认证信息,实现用户身份的安全认证和授权。​
在 Elasticsearch 和 OpenSearch 实例中启用 SAML 身份验证后,Elasticsearch 和 OpenSearch 实例作为服务提供商(SP),将用户身份认证委托给身份提供商(IdP)。用户完成身份认证后,IdP 会向 Elasticsearch 和 OpenSearch 实例返回包含用户身份和角色信息的 SAML 断言(Assertion),Elasticsearch 和 OpenSearch 实例根据断言完成用户登录和权限控制,从而实现基于 SAML 2.0 的单点登录。​
前提条件​
已创建 Elasticsearch 或 OpenSearch 实例。具体操作,请参见创建实例。​
注意事项​
  • 仅 OpenSearch 2.9、3.3 和 Elasticsearch 7 实例支持 SAML 身份验证。​
  • 开启、编辑或关闭 SAML 身份验证将使实例重启,建议在业务低峰期操作。​
开启 SAML 身份验证​
  1. 在顶部导航栏,选择目标项目和地域。​
  1. 在实例列表页面,单击目标实例名称。​
  1. 在左侧导航栏选择基本信息,然后在访问认证区域的 SAML 身份验证右侧单击开启免密登录。​
  1. 在启用 SAML 身份验证面板,配置以下参数,然后单击确定。​
  • ​
    参数​
    说明​
    访问方式​
    选择公网访问或私网访问。​
    说明​
    公网访问仅当 Kibana/Dashboards 开启公网访问访问时可见。具体操作,请参见配置 Kibana/Dashboards 公网访问。​
    sp.entity_id​
    SP 的唯一标识。​
    sp.acs​
    SP 接收 SAML 响应的回调地址。​
    idp.entity_id​
    IdP 的唯一标识,需与 idp.metadata 中的 idp.entity_id 一致。​
    idp.metadata​
    IdP 的 SAML 2.0 元数据,XML 格式。​
    idp.roles_key(可选)​
    用于指定用户角色对应的 SAML 属性。实例将从 SAML 认证信息中根据此属性决定当前访问者的角色信息。​
    idp.subject_key(可选)​
    用于指定用户主体对应的 SAML 属性。实例将从 SAML 认证信息中根据此属性决定当前访问者的主体信息。​
    ​
说明​
配置后各节点将逐个重启,实例进入更新中状态,请耐心等待。当实例恢复运行中状态时,SAML 身份验证开启成功。​
后续操作​
通过 SAML 协议访问实例​
开启 SAML 身份验证后,用户通过 SAML 协议访问 Elasticsearch 或 OpenSearch 实例时,身份信息和角色信息由 IdP 返回。subject_key 和 roles_key 用于约定 IdP 返回的用户身份字段和角色字段。例如,IdP 返回如下信息:​
​
{​
"subject_key": "xxx@volcengine.com",​
"roles_key": "my_role"​
}​
​
其中,subject_key 表示登录用户名,roles_key 表示用户所属角色。实例将根据返回的角色信息为用户授予相应权限。​
请确保 IdP 返回的角色已在实例中创建,并已配置相应权限,否则用户登录后可能无法正常访问相关资源。以下示例演示如何通过 Dev Tools 创建一个对 logs-* 索引只读的角色:​
​
PUT _opendistro/_security/api/roles/my_role​
{​
"cluster_permissions": [],​
"index_permissions": [​
{​
"index_patterns": ["logs-*"],​
"allowed_actions": ["read"]​
}​
],​
"tenant_permissions": []​
}​
​
PUT _opendistro/_security/api/rolesmapping/my_role​
{​
"backend_roles": ["my_role"]​
}​
​
说明​
以上示例创建的为只读角色。如需更多权限,可通过调用 API 创建。具体操作,请参见 API 参考。 ​
修改 SAML 身份验证配置​
开启 SAML 身份验证后,您还可以根据需要修改 SAML 身份验证配置。​
  1. 在顶部导航栏,选择目标项目和地域。​
  1. 在实例列表页面,单击目标实例名称。​
  1. 在左侧导航栏选择基本信息,然后在访问认证区域的 SAML 身份验证右侧单击编辑。​
  1. 在编辑 SAML 身份验证面板,根据需要修改 IdP 信息,然后单击确定。具体参数说明,请参见开启 SAML 身份验证。​
关闭 SAML 身份验证​
当您不再需要通过 SAML 身份验证实现单点登录,可关闭SAML 身份验证。​
  1. 在顶部导航栏,选择目标项目和地域。​
  1. 在实例列表页面,单击目标实例名称。​
  1. 在左侧导航栏选择基本信息,然后在访问认证区域的 SAML 身份验证右侧单击关闭。​
  1. 在弹出的对话框中,单击确定。​
最近更新时间:2026.07.15 10:36:24
这个页面对您有帮助吗?
有用
有用
无用
无用