PingOne Advanced Identity Cloud

Remote proxy advanced usage

In addition to basic remote proxy calls, you can manage external configurations directly through the REST API. The following examples show how to use REST access paths to query data through the proxy, and how to list, view, and delete remote proxy configurations.

REST access paths

Remote proxy configurations are stored in external.idm-<receiving-tenant-name>.json. Depending on whether you’re managing the proxy setup or querying data through it, use one of the following REST paths:

  • Runtime data access path (/openidm/external/idm/<receiving-tenant-name>): Use this path to proxy requests through to the receiving instance, for example, querying managed objects.

  • Configuration management path (/openidm/config/external.idm/<receiving-tenant-name>): Use this path to list, inspect, or delete the proxy configuration file itself.

Query data through the proxy

Use the runtime data access path to query data through the proxy.

For example:

Request
curl \
--header "Authorization: Bearer <access-token>" \
--header "Accept-API-Version: resource=1.0" \
--request GET \
"https://<originating-tenant-env-fqdn>/openidm/external/idm/<receiving-tenant-name>/managed/realm-name_user?_queryFilter=true"
Response
{
  "result": [
    {
      "_id": "95b2b43c-621e-4bca-8a97-efc768f17751",
      "_rev": "00000000f20217df",
      "userName": "testUser",
      "accountStatus": "active",
      "givenName": "Test",
      "sn": "User",
      "mail": "testUser@test.com"
    }
  ],
  "resultCount": 1,
  "pagedResultsCookie": null,
  "totalPagedResultsPolicy": "NONE",
  "totalPagedResults": -1,
  "remainingPagedResults": -1
}

List all external configurations

Query /openidm/config and filter on _id to list external configurations.

For example:

Request
curl \
--header "Authorization: Bearer <access-token>" \
--header "Accept-API-Version: resource=1.0" \
--request GET \
'https://<originating-tenant-env-fqdn>/openidm/config?_queryFilter=_id+sw+"external.idm"'
Response
{
  "result": [
    {
      "_id": "external.idm/<receiving-tenant-name>",
      "pid": "external.idm.29cd...f4a",
      "factoryPid": "external.idm"
    }
  ]
}

Get a specific external configuration

Use the configuration management path to get a specific external configuration.

For example:

Request
curl \
--header "Authorization: Bearer <access-token>" \
--header "Accept-API-Version: resource=1.0" \
--request GET \
"https://<originating-tenant-env-fqdn>/openidm/config/external.idm/<receiving-tenant-name>"

Delete an external configuration

Use the configuration management path to delete an external configuration.

For example:

Request
curl \
--header "Authorization: Bearer <access-token>" \
--header "Accept-API-Version: resource=1.0" \
--request DELETE \
"https://<originating-tenant-env-fqdn>/openidm/config/external.idm/<receiving-tenant-name>"