生成密钥
在其中一个节点上执行,并把生成的my-secret.key拷贝到其他节点上
代码语言:javascript复制bin/pulsar tokens create-secret-key --output /data/my-secret.key --base64
创建用户token
在其中一个节点上执行
代码语言:javascript复制bin/pulsar tokens create --secret-key file:///data/my-secret.key --subject pulsar-user(用户名)
token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJwdWxzYXItdXNlciJ9.pQObSlvRguNjOdHy-Vzrfx5DY8iacqq4Y9HP_gbXVYU
给命名空间添加认证权限
在其中一个节点上执行
代码语言:javascript复制bin/pulsar-admin namespaces grant-permission public/functions --role pulsar-user --actions produce,consume
bin/pulsar-admin namespaces grant-permission capital/cloud --role pulsar-user(用户名) --actions produce,consume
bin/pulsar-admin namespaces grant-permission capital/enterprise --role pulsar-user(用户名) --actions produce,consume
修改配置文件
在所有节点上执行
代码语言:javascript复制vim conf/broker.conf
authenticationEnabled=true
superUserRoles=pulsar-user # 用户名
authorizationEnabled=true
authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderToken
authenticateOriginalAuthData=true
tokenSecretKey=file:///data/my-secret.key # my-secret.key的绝对路径
brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationToken
brokerClientAuthenticationParameters=token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJwdWxzYXItdXNlciJ9.pQObSlvRguNjOdHy-Vzrfx5DY8iacqq4Y9HP_gbXVYU # 第二步生成的token
代码语言:javascript复制vim conf/client.conf
authPlugin=org.apache.pulsar.client.impl.auth.AuthenticationToken
authParams=token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJwdWxzYXItdXNlciJ9.pQObSlvRguNjOdHy-Vzrfx5DY8iacqq4Y9HP_gbXVYU # 第二步生成的token
重启broker集群
所有节点都执行
代码语言:javascript复制bin/pulsar-daemon stop broker
bin/pulsar-daemon start broker