通过安全集成认证用户
使用安全集成将 StarRocks 与外部身份验证系统集成。
通过在 StarRocks 集群中创建安全集成,您可以允许外部身份验证服务访问 StarRocks。借助安全集成,您无需在 StarRocks 中手动创建用户。当用户尝试使用外部身份登录时,StarRocks 将根据 authentication_chain 中的配置使用相应的安全集成来验证用户身份。身份验证成功后,用户被允许登录,StarRocks 会在会话中为用户创建一个虚拟用户以执行后续操作。
请注意,如果您使用安全集成配置外部身份验证方法,您还必须 将 StarRocks 与 Apache Ranger 集成 以启用外部授权。目前,不支持将安全集成与 StarRocks 本地授权集成。
您还可以为 StarRocks 启用 Group Provider,以访问外部身份验证系统中的组信息,从而允许在 StarRocks 中创建、验证和授权用户组。
在特定情况下,也支持使用外部身份验证服务手动创建和管理用户。有关更多说明,请参阅 另见。
创建安全集成
目前,StarRocks 的安全集成支持以下身份验证系统:
- LDAP
- JSON Web Token(JWT)
- OAuth 2.0
备注
创建安全集成时,StarRocks 不提供连接性检查。
使用 LDAP 创建安全集成
语法
CREATE SECURITY INTEGRATION <security_integration_name>
PROPERTIES (
"type" = "authentication_ldap_simple",
"authentication_ldap_simple_server_host" = "",
"authentication_ldap_simple_server_port" = "",
"authentication_ldap_simple_bind_base_dn" = "",
"authentication_ldap_simple_user_search_attr" = ""
"authentication_ldap_simple_bind_root_dn" = "",
"authentication_ldap_simple_bind_root_pwd" = "",
"authentication_ldap_simple_ssl_conn_allow_insecure" = "{true | false}",
"authentication_ldap_simple_ssl_conn_trust_store_path" = "",
"authentication_ldap_simple_ssl_conn_trust_store_pwd" = "",
"comment" = ""
)
参数
security_integration_name
- 必需:是
- 描述:安全集成的名称。
注意
安全集成名称是全局唯一的。您不能将此参数指定为native。
type
- 必需:是
- 描述:安全集成的类型。指定为
authentication_ldap_simple。
authentication_ldap_simple_server_host
- 必需:否
- 描述:LDAP 服务的 IP 地址。默认值:
127.0.0.1。
authentication_ldap_simple_server_port
- 必需:否
- 描述:LDAP 服务的端口。默认值:
389。
authentication_ldap_simple_bind_base_dn
- 必需:是
- 描述:集群搜索的 LDAP 用户的基本专有名称 (DN)。
authentication_ldap_simple_user_search_attr
- 必需:是
- 描述:用于登录 LDAP 服务的用户属性,例如
uid。
备注
DN 传递机制:LDAP 安全集成支持 DN 传递功能。
- 认证成功后,系统会同时记录用户的登录名和完整 DN。
- 当与 Group Provider 结合使用时,DN 信息会自动传递给 Group Provider。
- 如果 Group Provider 未配置
ldap_user_search_attr参数,将使用 DN 进行组匹配。 - 这种机制特别适用于 Microsoft AD 等复杂 LDAP 环境。
有关详细信息,请参见认证用户组中的 DN 匹配机制说明。
authentication_ldap_simple_bind_root_dn
- 必需:是
- 描述:LDAP 服务的管理员 DN。
authentication_ldap_simple_bind_root_pwd
- 必需:是
- 描述:LDAP 服务的管理员密码。
authentication_ldap_simple_ssl_conn_allow_insecure
- 必需:否
- 描述:是否允许使用非加密方式连接到 LDAP 服务器。默认值:
true。将此值设置为false表示访问 LDAP 需要使用 SSL 加密。
authentication_ldap_simple_ssl_conn_trust_store_path
- 必需:否
- 描述:存储 LDAP 服务器的 SSL CA 证书的本地路径。支持 pem 和 jks 格式。如果证书是由受信机构颁发的,则无需配置。
authentication_ldap_simple_ssl_conn_trust_store_pwd
- 必需:否
- 描述:访问本地存储的 LDAP 服务器的 SSL CA 证书所用的密码。pem 格式证书不需要密码,只有 jsk 格式证书需要。
group_provider
- 必需:否
- 描述:与安全集成结合使用的 Group Provider 名称。多个 Group Provider 用逗号分隔。设置后,StarRocks 将在用户登录时记录每个指定提供者下的用户组信息。从 v3.5 开始支持。有关启用 Group Provider 的详细说明,请参阅 Authenticate User Groups。
permitted_groups
- 必需:否
- 描述:允许登录到 StarRocks 的组名称。多个组用逗号分隔。确保指定的组可以通过组合的 Group Provider 检索。从 v3.5 开始支持。
comment
- 必需: 否
- 描述:安全集成的描述。
使用 JWT 认证创建安全集成
语法
CREATE SECURITY INTEGRATION <security_integration_name>
PROPERTIES (
"type" = "authentication_jwt",
"jwks_url" = "",
"principal_field" = "",
"required_issuer" = "",
"required_audience" = ""
"comment" = ""
)
参数
security_integration_name
- 必需:是
- 描述:安全集成的名称。
注意
安全集成名称是全局唯一的。您不能将此参数指定为native。
type
- 必需:是
- 描述:安全集成的类型。指定为
jwt。
jwks_url
- 必需:是
- 描述:JSON Web Key Set (JWKS) 服务的 URL 或
fe/conf目录下本地文件的路径。
principal_field
- 必需:是
- 描述:用于标识 JWT 中主题 (
sub) 的字段的 字符串。默认值为sub。此字段的值必须与登录 StarRocks 的用户名相同。
required_issuer
- 必需:否
- 描述:用于标识 JWT 中发行者 (
iss) 的字符串列表。仅当列表中的某个值与 JWT 发行者匹配时,JWT 才被视为有效。
required_audience
- 必需:否
- 描述:用于标识 JWT 中受众 (
aud) 的字符串列表。仅当列表中的某个值与 JWT 受众匹配时,JWT 才被视为有效。
comment
- 必需:否
- 描述:安全集成的描述。
使用 OAuth 2.0 创建安全集成
语法
CREATE SECURITY INTEGRATION <security_integration_name>
PROPERTIES (
"type" = "authentication_oauth2",
"auth_server_url" = "",
"token_server_url" = "",
"client_id" = "",
"client_secret" = "",
"redirect_url" = "",
"jwks_url" = "",
"principal_field" = "",
"required_issuer" = "",
"required_audience" = ""
"comment" = ""
)