Extending Authentication and Authorization in Pulsar

    Pulsar supports mutual TLS and Athenz authentication plugins. For how to use these authentication plugins, you can refer to the description in Security.

    你能够使用自定义的认证机制,只要实现以下两个插件的具体实现。 一个插件用于客户端库,另一个插件用于Pulsar Proxy 和 Pulsar Broker 来验证凭据。

    For the client library, you need to implement . By entering the command below you can pass this class when you create a Pulsar client:

    • Authentication ->

    这反过来需要以 org.apache.pulsar.client.api.AuthentationDataProvider 的形式提供客户端凭据。 这样就有机会为不同类型的连接返回不同类型的身份验证令牌,或者通过传递证书链来为TLS使用。

    你可以找到客户端认证实现的一些例子:

    Proxy/Broker 认证插件

    在 Proxy/Broker 这一侧,你需要配置相应的插件去检验客户端发送过来的凭据信息。 Proxy 和 Broker 可以同时支持多个身份认证提供者。

    在单个接口实现org.apache.pulsar.broker.authentication.AuthenticationProvider

    以下是 Broker 认证插件的示例:

    • Athenz —

    授权

    授权是检查某个“角色”或“主体”是否具有执行某个操作权限的操作。

    要提供自定义提供者,你必须实现接口。并将该类放到 Pulsar 所用的 classpath中,并将类名配置到conf/broker.conf中。