返回

Pulsar3.0 不再局限于 JWT 鉴权,看看你该怎么做?

后端

OAuth2:Pulsar 3.0 的新认证机制

简介

随着 Pulsar 3.0 的推出,Pulsar 社群迎来了一个激动人心的变化:OAuth2 认证机制。OAuth2 为 Pulsar 带来了更多灵活性、安全性,使其在访问控制方面更加强大。

为何选择 OAuth2

Pulsar 2.x 版本中,JWT(JSON Web 令牌)曾是默认的认证机制。然而,OAuth2 凭借其独特优势,成为了 Pulsar 3.0 的首选:

  • 灵活性: OAuth2 允许用户授予第三方应用程序访问多个资源的权限,而 JWT 仅允许访问单个资源。
  • 安全性: OAuth2 使用授权代码保护用户密码,而 JWT 则不使用。
  • 易用性: OAuth2 是一种广泛采用的授权标准,易于理解和使用。

如何在 Pulsar 3.0 中使用 OAuth2

切换到 OAuth2 认证涉及以下步骤:

  1. 在 Pulsar 集群中配置 OAuth2 服务器。
  2. 在 OAuth2 服务器中创建 Pulsar 客户端应用程序。
  3. 在 Pulsar 集群中配置 Pulsar 客户端应用程序。
  4. 在 Pulsar 集群中创建角色和策略。
  5. 将角色和策略应用于 Pulsar 集群中的资源。

示例代码

# Pulsar 集群配置 OAuth2 服务器
bin/pulsar config set \
    --config proxyServiceUrl \
    https://my-oauth2-server.com:8443 \
    --config tlsTrustCertsFilePath /path/to/cert.pem
# 创建 Pulsar 客户端应用程序
curl -X POST \
    -H "Content-Type: application/json" \
    -d '{
        "client_name": "my-client-app",
        "redirect_uris": [
            "https://my-app.com/callback"
        ],
        "response_types": [
            "code"
        ],
        "token_endpoint_auth_method": "client_secret_basic"
    }' \
    "https://my-oauth2-server.com:8443/oauth2/clients"

常见问题解答

1. 为什么我无法访问 Pulsar 集群?
确保已正确配置 OAuth2 服务器、客户端应用程序、角色和策略。

2. 如何授予用户访问权限?
通过将角色分配给用户,并在角色上应用策略,可以控制用户对 Pulsar 集群的访问权限。

3. 如何管理 OAuth2 客户端应用程序?
可以在 OAuth2 服务器中创建、修改和删除客户端应用程序。

4. Pulsar 3.0 中 JWT 认证是否仍然可用?
是的,Pulsar 3.0 仍支持 JWT 认证,但不再是默认选项。

5. OAuth2 认证是否适用于所有 Pulsar 版本?
OAuth2 认证仅适用于 Pulsar 3.0 及更高版本。

结论

OAuth2 认证的引入标志着 Pulsar 访问控制机制的重大进步。它为 Pulsar 用户提供了更灵活、更安全、更易于使用的认证体验。通过遵循本指南,你可以轻松地将 Pulsar 集群升级到 OAuth2 认证,并释放其全部潜力。