Authentication using Athenz

    A decentralized Athenz system contains an (ZMS) server and an authoriZation Token System (ZTS) server.

    首先,你需要启用 Athenz 的服务访问控制。 You need to create domains for the provider (which provides some resources to other services with some authentication/authorization policies) and the tenant (which is provisioned to access some resources in a provider). 在这种情况下,供应商与 Pulsar 服务本身相对应,租户与使用 Pulsar 的每个应用程序相对应(通常情况下,指 Pulsar 中的)。

    租户 一侧,你需要做以下事情:

    1. 生成私钥/公钥对
    2. 使用公钥在域上创建服务,例如 some _app

    请注意,当 Pulsar 客户端必须使用步骤2生成的私钥连接到 。(参见 Java 和 的客户端配置示例)。

    在提供商一侧,你需要做以下事情:

    1. 创建一个域名,例如 pulsar
    2. 创建角色
    3. 将租户服务添加到角色成员

    请注意,你可以在步骤2中指定任何动作和资源,因为它们不在 Pulsar上使用。 In other words, Pulsar uses the Athenz role token only for authentication, not for authorization.

    For more specific steps involving UI, refer to Example Service Access Control Setup.

    conf/broker中可以找到完整的参数列表.onf 文件,你也可以在 中找到这些参数的默认值。

    关于使用 Athenz 的 Pulsar 客户端身份验证的更多信息,请参阅以下针对语言的文件:

    pulsar-admin, 使用 conf/client. onf 配置文件在 Pulsar 安装中。

    你需要将以下验证参数添加到 conf/client.conff 配置文件以使用 Athenz 的 Pulsar 的 CLI 工具:

    1. # URL for the broker
    2. # Set Athenz auth plugin and its parameters
    3. authParams={"tenantDomain":"shopping","tenantService":"some_app","providerDomain":"pulsar","privateKey":"file:///path/to/private.pem","keyId":"v1"}
    4. # Enable TLS
    5. useTls=true
    6. tlsTrustCertsFilePath=/path/to/cacert.pem