Manage Workload Identity Providers

Prev Next

These APIs allow you to manage workload identity providers. This includes operations such as retrieving information and details of all workload identity providers, creating new workload identity providers or updating them, creating SCIM tokens, etc.


Workload Identity Provider APIs

1. Create a Workload Identity Provider

The POST method creates a new workload identity provider.

POST{{url}}/api/workload/identity-providers

Request Example

curl --location --request POST '{{url}}/api/workload/identity-providers' \
--header 'Authorization: TOKEN {{apiToken}}'
--data-raw '{
        "idpType": "AWS",
        "id": 16,
        "name": "AWS STS",
        "description": "Get caller identity",
        "attributesMap": [
            {
                "idpAttr": "UserId",
                "userAttr": "ns9p06xsanb66e1opszl"
            }
        ],
        "validationWindow": 99999,
        "maxDuration": 5
    }

Response Example 

Status: 200 OK
{
        "idpType": "AWS",
        "id": 16,
        "name": "AWS STS",
        "description": "Get caller identity",
        "attributesMap": [
            {
                "idpAttr": "UserId",
                "userAttr": "ns9p06xsanb66e1opszl"
            }
        ],
        "validationWindow": 99999,
        "maxDuration": 5
    }

2. Get Workload Identity Provider Details

The GET method returns the details of the workload identity provider.

GET{{url}}/api/workload/identity-providers

Optional parameters that can be used in this request are type and name.

If the name is used as the optional parameter, the GET method returns the details of the identity provider by name, by using the identity provider name given in the path as the lookup parameter. The type parameter can have the following values: AWS, OIDC or SCIM.

GET{{url}}/api/identity-providers?name={{idpName}}

Request Example

curl --location --request GET '{{url}}/api/workload/identity-providers' \
--header 'Authorization: TOKEN {{apiToken}}'

Response Example 

An example response of the GET request for retrieving the details of identity providers is shown here.

Status: 200 OK
{
        "idpType": "AWS",
        "id": 16,
        "name": "AWS STS",
        "description": "Get caller identity",
        "attributesMap": [
            {
                "idpAttr": "UserId",
                "userAttr": "ns9p06xsanb66e1opszl"
            }
        ],
        "validationWindow": 99999,
        "maxDuration": 5
    }

3. Update Workload Identity Provider

The PUT method updates an identity provider in the system.

PUT{{url}}/api/workload/identity-providers

Request Example

curl --location --request PUT '{{url}}/api/workload/identity-providers' \
--header 'Authorization: TOKEN {{apiToken}}' \
--data-raw '{
  "id": 0,
  "name": "string",
  "description": "string",
  "attributesMap": [
    {
      "idpAttr": "string",
      "userAttr": "string"
    }
  ],
  "validationWindow": 30
}'

Response Example 

Status: 200 OK
{
        "idpType": "AWS",
        "id": 16,
        "name": "AWS STS",
        "description": "Get caller identity",
        "attributesMap": [
            {
                "idpAttr": "UserId",
                "userAttr": "ns9p06xsanb66e1opszl"
            }
        ],
        "validationWindow": 99999,
        "maxDuration": 5
    }

4. Get Workload Identity Provider Details

The GET method retrieves the details of the workload identity provider.

GET{{url}}/api/workload/identity-providers/{{idpId}}

Request Example

curl --location --request GET '{{url}}/api/workload/identity-providers/{{idpId}}' \
--header 'Authorization: TOKEN {{apiToken}}' 

Response Example 

Status: 200 OK
{
        "idpType": "AWS",
        "id": 16,
        "name": "AWS STS",
        "description": "Get caller identity",
        "attributesMap": [
            {
                "idpAttr": "UserId",
                "userAttr": "ns9p06xsanb66e1opszl"
            }
        ],
        "validationWindow": 99999,
        "maxDuration": 5
    }

5. Delete an Identity Provider

The DELETE method deletes the identity provider based on the id of the users associated with that identity provider. This is an irreversible operation and results in the user(s) losing access to the system.


DELETE{{url}}/api/workload/identity-providers/{{idpId}}

Request Example

curl --location --request DELETE '{{url}}/api/workload/identity-providers/{{idpId}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: TOKEN {{apiToken}}'

Response Example 

Status: 200 OK

Workload User Identity Provider APIs

These APIs manage service identity association to an identity provider.

1. Get Service Identity's Identity Provider

The GET method returns the service identity's identity provider for authentication.

GET{{url}}/api/workload/users/{{targetUserId}}/identity-provider

Request Example

curl --location --request GET '{{url}}/api/workload/users/{{targetUserId}}/identity-provider/' \
--header 'Content-Type: application/json' \
--header 'Authorization: TOKEN {{apiToken}}'

Response Example 

Status: 200 OK
{
  "idp": {
    "id": 0,
    "name": "string",
    "description": "string",
    "attributesMap": [
      {
        "idpAttr": "string",
        "userAttr": "string"
      }
    ],
    "validationWindow": 30
  },
  "tokenDuration": 300,
  "mappingAttributes": [
    {
      "attrId": "string",
      "values": [
        "string"
      ]
    }
  ]
}

2. Specifying Service identity's authenticating identity provider

The POST method assigns the service identity's identity provider to authenticate with.

POST{{url}}/api/workload/users/{{targetUserId}}/identity-provider

The request parameters used in this method are shown in the following table:

ParameterDescriptionData TypeRequired
targetUserIdThe random 20 alphanumeric string id of the service identity user.stringMandatory

Request Example

curl --location --request POST '{{url}}/api/workload/users/{{targetUserId}}/identity-provider' \
--header 'Content-Type: application/json' \
--header 'Authorization: TOKEN {{apiToken}}' \
--data-raw '{
  "idpId": 0,
  "tokenDuration": 300,
  "mappingAttributes": [
    {
      "attrId": "string",
      "values": [
        "string"
      ]
    }
  ]
}'

Response Example 

Status: 200 OK
{
  "idp": {
    "id": 0,
    "name": "string",
    "description": "string",
    "attributesMap": [
      {
        "idpAttr": "string",
        "userAttr": "string"
      }
    ],
    "validationWindow": 30
  },
  "tokenDuration": 300,
  "mappingAttributes": [
    {
      "attrId": "string",
      "values": [
        "string"
      ]
    }
  ]
}


3. Delete  Service Identity's assigned identity provider for Authentication

The DELETE method reverts service identity back to use a static API token for authentication by deleting the user identity provider assignment.

DELETE{{url}}/api/workload/users/{{targetUserId}}/identity-provider

Request Example

curl --location --request DELETE '{{url}}/api/workload/users/{{targetUserId}}/identity-provider' \
--header 'Authorization: TOKEN {{apiToken}}'

Response Example 

Status: 200 OK

Workload SCIM User Identity Provider APIs

These APIs manage service identity association to SCIM provisioning for the identity provider.

1. Designate user to authenticate as for SCIM provisioning

The POST method designates user to authenticate as for scim provisioning of an identity provider.

POST{{url}}/api/workload/scim-user/identity-provider

Request Example

curl --location --request POST '{{url}}/api/workload/scim-user/identity-provider' \
--header 'Authorization: TOKEN {{apiToken}}' \
--data-raw '[
    {
  "idpName": "string",
  "userId": "string",
  "username": "string"
}
]'

Response Example 

Status: 200 OK
{
  "idpName": "string",
  "userId": "string",
  "username": "string"
}

2. Identity Provider SCIM Provisioning assigned Service Identity

The GET method retrieves the identity provider's SCIM provisioning assigned service identity.

GET{{url}}/api/workload/scim-user/identity-provider/{{idpName}}

Request Example

curl --location --request GET '{{url}}/api/workload/scim-user/identity-provider/{{idpName}}' \
--header 'Authorization: TOKEN {{apiToken}}'

Response Example 

Status: 200 OK
{
  "idpName": "string",
  "userId": "string",
  "username": "string"
}

3. Delete User SCIM Identity Provider Association

DELETE{{url}}/api/workload/scim-user/identity-provider/{{idpName}}

Request Parameters

ParameterDescription
idpNameName of the identity provider.

Request Example

curl --location --request DELETE '{{url}}/api/workload/scim-user/identity-provider/{{idpName}}' \
--header 'Authorization: TOKEN {{apiToken}}'

Response Example 

This request does not return a response body.