Create and test access control
This guide shows how to create and test access policies in Aidbox
Simple Access Policy
You can test access policies with Postman.
Access the Auth Clients tab and create a new client.
Access the Access Control tab and create new access policy with the code below. Let's consider the work of this policy. In this schema, two constraints are introduced:
it is allowed to use only the GET method;
it is allowed to use only request URIs starting with "/fhir/".
JSON-schema version:
Matcho
engine version:
Matcho
engine version:Now, let's execute requests in Postman.
A request succeeds if at least one of the policies is valid for it.
Positive Test
Negative Test
Policy Debugging
Let's use the parameter __debug=policy
in requests to see which JSON-schema validation returned true/false.
Positive Test
Negative Test
See the full documentation Access Policies.
Access Policies for Users
Previously, we tested access control for clients using Postman as a client. Now, let's create and test access policies for users. We will still need our client credentials.
First, we need to create a couple of users.
Access the Users tab and create two users in Aidbox.Cloud.
User 1
User 2
Read-Only Access for Patient Role
Now, let's define read-only access for the 'Patient' role. Create an access policy with the code below.
Full Access for Administrator Role
Let's set access rights for administrators.
Test User Access Control
Get Bearer Token for User
Now, let's test the policies in Postman.
First, we need to get bearer token for a user and a client.
This line grant_type: password
should not be changed.
Execute the request and copy the received access_token
value. Paste it to your test request in the Authorization header with the word Bearer
before it.
E.g. you got the access_token:
Your authorization header will be: Bearer 45ab638d-9a3a-492b-b2df-0d8295c108fc
.
Execute Requests with User Bearer Token
Now, let's execute requests from users to test their access.
Test user request with GET
Test user request with POST
The results of the schema validation should be the following:
Request/User | User 1 (Administrator) | User 2 (Patient) |
---|---|---|
GET | True | True |
POST | True | False |
See the full documentation Resource Owner Credentials Grant.
Signed RPC policy token
You can create policy-token to access rpc without creating AccessPolicy resource
To do that call aidbox.policy/create-policy-token
RPC method:
This RPC method will return you a JWT token, which can be used only to call two methods with params you described:
aidbox.sdc/read-document
aidbox.sdc/save-document
To make a call RPC with this token just pass it in body:
Last updated