Skip to main content

External Token Providers

Use the External Token Providers API to manage external token providers that enable client applications to use a JSON Web Token (JWT) issued by an identity provider to authenticate to Dremio.

External Token Providers Object
{
"id": "a32191f2-ede6-4533-9a17-1532eea015aa",
"name": "My Token Provider",
"audience": [
"f7fdd9e0-8332-4131-95ce-b350c3bbeab2"
],
"userClaim": "upn",
"issuerUrl": "https://login.microsoftonline.com/959d4644-91e6-4652-9d16-bddeb046c807/v2.0",
"jwksUrl": "https://login.microsoftonline.com/959d4644-91e6-4652-9d16-bddeb046c807/discovery/v2.0/keys",
"enabled": true
}

External Token Provider Attributes

id String (UUID)

UUID of the external token provider. Generated by Dremio and immutable.


name String

User-provided name of the external token provider. Used for display only.

Example: My Token Provider


audience Array of String

Intended recipients of the JSON Web Token (JWT). If there is only one audience for the JWT, the audience value contains only one string.

Example:

[
"f7fdd9e0-8332-4131-95ce-b350c3bbeab2"
]

userClaim String

Key name for the target claim in the JSON Web Token (JWT). The target claim's value corresponds to the Dremio username.

Example: upn


issuerUrl String

URL that identifies the principal that issued the JSON Web Token (JWT).

Example: https://login.microsoftonline.com/959d4644-91e6-4652-9d16-bddeb046c807/v2.0


jwksUrl String

Endpoint that hosts the JWK Set (JWKS), a set of public keys used to verify the JSON Web Token (JWT) signature.

Example: https://login.microsoftonline.com/959d4644-91e6-4652-9d16-bddeb046c807/discovery/v2.0/keys


enabled Boolean

Whether the provider is enabled. Returns true if enabled, false otherwise.

List All External Token Providers

Method and URL
GET /v0/external-token-providers/

Example

Request
curl -X GET 'https://api.dremio.cloud/v0/external-token-providers' \
-H "Authorization: Bearer $DREMIO_TOKEN" \
-H 'Content-Type: application/json'
Response
[
{
"id": "d21bbf72-6ab7-45e8-9466-ae1d9ffe92a7",
"name": "My First Provider",
"enabled": true
},
{
"id": "a32191f2-ede6-4533-9a17-1532eea015aa",
"name": "My Token Provider",
"enabled": true
}
]

Response Status Codes

200   OK

403   Forbidden

Create an External Token Provider

Method and URL
POST /v0/external-token-providers

Parameters

name Body   String

Name to use for the external token provider.

Example: My Token Provider


audience Body   Array of String

Intended recipients of the JSON Web Token (JWT).

Example:

[
"f7fdd9e0-8332-4131-95ce-b350c3bbeab2"
]

userClaim Body   String

Key name for the target claim in the JSON Web Token (JWT). The target claim's value corresponds to the Dremio username.

Example: upn


issuerUrl Body   String

URL that identifies the principal that issued the JSON Web Token (JWT).

Example: https://login.microsoftonline.com/959d4644-91e6-4652-9d16-bddeb046c807/v2.0


jwksUrl Body   String   Optional

Endpoint that hosts the JWK Set (JWKS), a set of public keys used to verify the JSON Web Token (JWT) signature. If you do not provide a jwksUrl value, Dremio retrieves the value from <issuerUrl>/.well-known/openid-configuration.

Example: https://login.microsoftonline.com/959d4644-91e6-4652-9d16-bddeb046c807/discovery/v2.0/keys


enabled Body   Boolean   Optional

Whether the provider is enabled. Set to true to enable, false to disable. The default is false.

Example

Request
curl -X POST 'https://api.dremio.cloud/v0/external-token-providers' \
-H "Authorization: Bearer $DREMIO_TOKEN" \
-H 'Content-Type: application/json' \
--data-raw '{
"name": "My Token Provider",
"audience": [
"f7fdd9e0-8332-4131-95ce-b350c3bbeab2"
],
"issuerUrl": "https://login.microsoftonline.com/3e334762-b0c6-4c36-9faf-93800f0d6c71/v2.0",
"jwksUrl": "https://login.microsoftonline.com/959d4644-91e6-4652-9d16-bddeb046c807/discovery/v2.0/keys",
"userClaim": "upn"
}'

A successful request returns an empty response body with HTTP status 204 No Content.

Response Status Codes

204   No Content

400   Bad Request

403   Forbidden

Retrieve an External Token Provider by ID

Method and URL
GET /v0/external-token-providers/{id}

Parameters

id Path   String (UUID)

UUID of the external token provider.

Example

Request
curl -X GET "https://api.dremio.cloud/v0/external-token-providers/$EXTERNAL_TOKEN_PROVIDER_ID" \
-H "Authorization: Bearer $DREMIO_TOKEN" \
-H 'Content-Type: application/json'
Response
{
"id": "a32191f2-ede6-4533-9a17-1532eea015aa",
"name": "My Token Provider",
"audience": [
"f7fdd9e0-8332-4131-95ce-b350c3bbeab2"
],
"userClaim": "upn",
"issuerUrl": "https://login.microsoftonline.com/959d4644-91e6-4652-9d16-bddeb046c807/v2.0",
"jwksUrl": "https://login.microsoftonline.com/959d4644-91e6-4652-9d16-bddeb046c807/discovery/v2.0/keys",
"enabled": true
}

Response Status Codes

200   OK

403   Forbidden

404   Not Found

Update an External Token Provider

Method and URL
PUT /v0/external-token-providers/{id}

Parameters

id Path   String (UUID)

UUID of the external token provider.


name Body   String

User-provided name of the external token provider.

Example: My Token Provider


audience Body   Array of String

Intended recipients of the JSON Web Token (JWT).

Example:

[
"28edee01-4d0d-46ed-b1ae-52139bc3b3ad"
]

userClaim Body   String

Key name for the target claim in the JSON Web Token (JWT). The target claim's value corresponds to the Dremio username.

Example: preferred_username


issuerUrl Body   String

URL that identifies the principal that issued the JSON Web Token (JWT).

Example: https://login.microsoftonline.com/959d4644-91e6-4652-9d16-bddeb046c807/v2.0


jwksUrl Body   String   Optional

Endpoint that hosts the JWK Set (JWKS), a set of public keys used to verify the JSON Web Token (JWT) signature. If you do not provide a jwksUrl value, Dremio retrieves the value from <issuerUrl>/.well-known/openid-configuration using the updated issuer.

Example: https://login.microsoftonline.com/959d4644-91e6-4652-9d16-bddeb046c807/discovery/v2.0/keys


enabled Body   Boolean   Optional

Whether the provider is enabled. Set to true to enable, false to disable. The default is false.

Example

Request
curl -X PUT "https://api.dremio.cloud/v0/external-token-providers/$EXTERNAL_TOKEN_PROVIDER_ID" \
-H "Authorization: Bearer $DREMIO_TOKEN" \
-H 'Content-Type: application/json' \
--data-raw '{
"name": "My Token Provider",
"audience": [
"28edee01-4d0d-46ed-b1ae-52139bc3b3ad"
],
"userClaim": "preferred_username",
"issuerUrl": "https://login.microsoftonline.com/959d4644-91e6-4652-9d16-bddeb046c807/v2.0",
"enabled": true
}'
Response
{
"id": "a32191f2-ede6-4533-9a17-1532eea015aa",
"name": "My Token Provider",
"audience": [
"28edee01-4d0d-46ed-b1ae-52139bc3b3ad"
],
"userClaim": "preferred_username",
"issuerUrl": "https://login.microsoftonline.com/959d4644-91e6-4652-9d16-bddeb046c807/v2.0",
"jwksUrl": "https://login.microsoftonline.com/959d4644-91e6-4652-9d16-bddeb046c807/discovery/v2.0/keys",
"enabled": true
}

Response Status Codes

200   OK

400   Bad Request

403   Forbidden

404   Not Found

Enable or Disable an External Token Provider

Enable the specified external token provider.

Method and URL
PUT /v0/external-token-providers/{id}/enable

Disable the specified external token provider.

Method and URL
PUT /v0/external-token-providers/{id}/disable

Parameters

id Path   String (UUID)

UUID of the external token provider.

Example

Request
curl -X PUT "https://api.dremio.cloud/v0/external-token-providers/$EXTERNAL_TOKEN_PROVIDER_ID/enable" \
-H "Authorization: Bearer $DREMIO_TOKEN" \
-H 'Content-Type: application/json'

A successful request returns an empty response body with HTTP status 204 No Content.

Response Status Codes

204   No Content

400   Bad Request

403   Forbidden

404   Not Found

Delete an External Token Provider

Method and URL
DELETE /v0/external-token-providers/{id}

Parameters

id Path   String (UUID)

UUID of the external token provider that you want to delete.

Example

Request
curl -X DELETE "https://api.dremio.cloud/v0/external-token-providers/$EXTERNAL_TOKEN_PROVIDER_ID" \
-H "Authorization: Bearer $DREMIO_TOKEN" \
-H 'Content-Type: application/json'

A successful request returns an empty response body with HTTP status 204 No Content.

Response Status Codes

204   No Content

403   Forbidden