PingOne Platform APIs - Early Access

Read Authorization Rules

GET {{apiPath}}/v1/environments/{{envID}}/authorizationRules

The GET {{apiPath}}/v1/environments/{{envID}}/authorizationRules operation returns the authorization rules associated with the environment.

Query parameters
Parameter Description

filter

Applies to the shared field. Accepts true or false as the filter value. If omitted, rules are listed as usual, in alphabetical order.

Headers

Authorization      Bearer {{accessToken}}

Example Request

  • cURL

  • C#

  • Go

  • HTTP

  • Java

  • jQuery

  • NodeJS

  • Python

  • PHP

  • Ruby

  • Swift

curl --location --globoff '{{apiPath}}/v1/environments/{{envID}}/authorizationRules' \
--header 'Authorization: Bearer {{accessToken}}'
var options = new RestClientOptions("{{apiPath}}/v1/environments/{{envID}}/authorizationRules")
{
  MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("", Method.Get);
request.AddHeader("Authorization", "Bearer {{accessToken}}");
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
package main

import (
  "fmt"
  "net/http"
  "io"
)

func main() {

  url := "{{apiPath}}/v1/environments/{{envID}}/authorizationRules"
  method := "GET"

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, nil)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Authorization", "Bearer {{accessToken}}")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
GET /v1/environments/{{envID}}/authorizationRules HTTP/1.1
Host: {{apiPath}}
Authorization: Bearer {{accessToken}}
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
  .url("{{apiPath}}/v1/environments/{{envID}}/authorizationRules")
  .method("GET", body)
  .addHeader("Authorization", "Bearer {{accessToken}}")
  .build();
Response response = client.newCall(request).execute();
var settings = {
  "url": "{{apiPath}}/v1/environments/{{envID}}/authorizationRules",
  "method": "GET",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer {{accessToken}}"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var request = require('request');
var options = {
  'method': 'GET',
  'url': '{{apiPath}}/v1/environments/{{envID}}/authorizationRules',
  'headers': {
    'Authorization': 'Bearer {{accessToken}}'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
import requests

url = "{{apiPath}}/v1/environments/{{envID}}/authorizationRules"

payload = {}
headers = {
  'Authorization': 'Bearer {{accessToken}}'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('{{apiPath}}/v1/environments/{{envID}}/authorizationRules');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'Authorization' => 'Bearer {{accessToken}}'
));
try {
  $response = $request->send();
  if ($response->getStatus() == 200) {
    echo $response->getBody();
  }
  else {
    echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
    $response->getReasonPhrase();
  }
}
catch(HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
require "uri"
require "net/http"

url = URI("{{apiPath}}/v1/environments/{{envID}}/authorizationRules")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer {{accessToken}}"

response = http.request(request)
puts response.read_body
var request = URLRequest(url: URL(string: "{{apiPath}}/v1/environments/{{envID}}/authorizationRules")!,timeoutInterval: Double.infinity)
request.addValue("Bearer {{accessToken}}", forHTTPHeaderField: "Authorization")

request.httpMethod = "GET"

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  guard let data = data else {
    print(String(describing: error))
    return
  }
  print(String(data: data, encoding: .utf8)!)
}

task.resume()

Example Response

200 OK

{
    "_links": {
        "self": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/authorizationRules?limit=25"
        }
    },
    "_embedded": {
        "authorizationRules": [
            {
                "_links": {
                    "self": {
                        "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/authorizationRules/f4f63ee5-4bc3-4b53-95de-49c8d8b68532"
                    }
                },
                "id": "f4f63ee5-4bc3-4b53-95de-49c8d8b68532",
                "name": "Deny payments over 10000 USD",
                "description": "",
                "enabled": true,
                "statements": [],
                "condition": {
                    "type": "AND",
                    "conditions": [
                        {
                            "type": "COMPARISON",
                            "left": {
                                "type": "ATTRIBUTE",
                                "id": "a362310a-2417-4366-9dce-65e888d99b6d"
                            },
                            "comparator": "GREATER_THAN_OR_EQUAL",
                            "right": {
                                "type": "CONSTANT",
                                "value": "10000"
                            }
                        }
                    ]
                },
                "effectSettings": {
                    "type": "UNCONDITIONAL_DENY"
                },
                "shared": true,
                "version": "88947a84-18da-4ace-8d87-defdf1cafa42"
            },
            {
                "_links": {
                    "self": {
                        "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/authorizationRules/0d64e1a0-94e3-4dcb-b758-ce6cf6745d30"
                    }
                },
                "id": "0d64e1a0-94e3-4dcb-b758-ce6cf6745d30",
                "name": "Rule1",
                "description": "Rule1 description",
                "enabled": true,
                "statements": [],
                "condition": {
                    "type": "EMPTY"
                },
                "effectSettings": {
                    "type": "UNCONDITIONAL_PERMIT"
                },
                "shared": true,
                "version": "afd728a4-e539-4657-85ac-29bde584a13c"
            },
            {
                "_links": {
                    "self": {
                        "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/authorizationRules/3f05e060-f4f4-4b34-82e4-618d4c67d4af"
                    }
                },
                "id": "3f05e060-f4f4-4b34-82e4-618d4c67d4af",
                "name": "Rule2",
                "description": "Rule2 description",
                "enabled": true,
                "statements": [],
                "condition": {
                    "type": "EMPTY"
                },
                "effectSettings": {
                    "type": "UNCONDITIONAL_PERMIT"
                },
                "shared": true,
                "version": "e36537b0-1a6e-43de-94fd-cf8604e95cf3"
            }
        ]
    },
    "count": 3,
    "size": 3
}