OAuth 2.0 认证
本文介绍如何在 StarRocks 中启用 OAuth 2.0 认证。
从 v3.5.0 开始,StarRocks 支持使用 OAuth 2.0 对客户端访问进行认证。您可以在 Web UI 和 JDBC 驱动程序上通过 HTTP 启用 OAuth 2.0 认证。
StarRocks 使用 Authorization Code 流程,该流程将授权码交换为令牌。通常,该流程包括以下步骤:
- StarRocks 协调器将用户的浏览器重定向到授权服务器。
- 用户在授权服务器上进行身份验证。
- 请求被批准后,浏览器被重定向回 StarRocks FE,并附带授权码。
- StarRocks 协调器将授权码交换为令牌。
本文介绍如何在 StarRocks 中手动创建和认证用户以使用 OAuth 2.0。有关如何使用安全集成将 StarRocks 与您的 OAuth 2.0 服务集成的说明,请参阅 Authenticate with Security Integration。有关如何在您的 OAuth 2.0 服务中认证用户组的更多信息,请参阅 Authenticate User Groups。
前提条件
如果您希望从 MySQL 客户端连接到 StarRocks,MySQL 客户端版本必须为 9.2 或更高版本。有关更多信息,请参阅 MySQL 官方文档。
使用 OAuth 2.0 创建用户
创建用户时,通过 IDENTIFIED WITH authentication_oauth2 [AS '{xxx}'] 指定认证方法为 OAuth 2.0。{xxx} 是用户的 OAuth 2.0 属性。。除了当前方式,您还可以在 FE 配置文件中配置默认的 OAuth 2.0 属性。您需要手动修改所有 fe.conf 文件并重启所有 FE 使之生效。配置默认属性后,当您省略 AS '{xxx}' 部分时,StarRocks 会使用您配置文件中指定的默认属性。
语法:
CREATE USER <username> IDENTIFIED WITH authentication_oauth2 [AS
'{
"auth_server_url": "<auth_server_url>",
"token_server_url": "<token_server_url>",
"client_id": "<client_id>",
"client_secret": "<client_secret>",
"redirect_url": "<redirect_url>",
"jwks_url": "<jwks_url>",
"principal_field": "<principal_field>",
"required_issuer": "<required_issuer>",
"required_audience": "<required_audience>"
}']
| 属性名 | 对应 FE 配置项 | 描述 |
|---|---|---|
auth_server_url | oauth2_auth_server_url |