v0.0.1 2023-01-14 15:17 UTC

This package is auto-updated.

Last update: 2024-06-07 07:45:20 UTC


This is the Authz development kit for PHP.


You can install the SDK in your project by adding the following dependency:

$ composer require eko/authz-sdk

⚠️ Please note that you will need to install the grpc PHP extension.


You have to instanciate a new Authz Client in your code by doing:

use Eko\AuthzSdk\Client;

$client = new Client('localhost:8081', '<client_id>', '<client_secret>');

Once the client is instanciate, you have access to all the gRPC methods.

In order to create a new Principal, you can use

[$response, $status] = $client->PrincipalCreate(new PrincipalCreateRequest([
    'id' => 'user-123',
    'attributes' => [
        new Attribute(['key' => 'email', 'value' => 'johndoe@acme.tld']),

To declare a new resource:

[$response, $status] = $client->ResourceCreate(new ResourceCreateRequest([
    'id' => 'post.123',
    'kind' => 'post',
    'value' => '123',
    'attributes' => [
        new Attribute(['key' => 'owner_email', 'value' => 'johndoe@acme.tld']),

You can also declare a new policy this way:

[$response, $status] = $client->PolicyCreate(new PolicyCreateRequest([
    'id' => 'post-owners',
    'resources' => ['post.*'],
    'actions' => ['edit', 'delete'],
    'attribute_rules' => [
        'principal.email == resource.owner_email',

Then, you can perform a check with:

if ($client->IsAllowed('user-123', 'post', '123', 'edit')) {
    // Do something

Please note that you have access to all the gRPC methods declared here in the proto file.


This SDK connects over gRPC to the backend service. Here are the available configuration options:

Property Description
Address Authz backend to connect to
ClientID Your service account client id used to authenticate
ClientSecret Your service account client secret key used to authenticate