Deprecated: Add JWT Identity Provider (IDP)
POSThttps://$CUSTOM-DOMAIN/management/v1/idps/jwt
Create a new identity provider configuration on the organization to enable your users to log in with social/enterprise login. JSON Web Token Identity Provider (JWT IDP) gives you the possibility to use an (existing) JWT as a federated identity. You have to provide an endpoint where ZITADEL can get the existing JWT token.
Request​
Header Parameters
The default is always the organization of the requesting user. If you like to get/set a result of another organization include the header. Make sure the user has permission to access the requested data.
- application/json
- application/grpc
- application/grpc-web+proto
Body
required
Possible values: non-empty
and <= 200 characters
Possible values: [STYLING_TYPE_UNSPECIFIED
, STYLING_TYPE_GOOGLE
]
Default value: STYLING_TYPE_UNSPECIFIED
some identity providers specify the styling of the button to their login
Possible values: non-empty
and <= 200 characters
the endpoint where the JWT can be extracted
Possible values: non-empty
and <= 200 characters
the issuer of the JWT (for validation)
Possible values: non-empty
and <= 200 characters
the endpoint to the key (JWK) which is used to sign the JWT with
Possible values: non-empty
and <= 200 characters
the name of the header where the JWT is sent in, default is authorization
Body
required
Possible values: non-empty
and <= 200 characters
Possible values: [STYLING_TYPE_UNSPECIFIED
, STYLING_TYPE_GOOGLE
]
Default value: STYLING_TYPE_UNSPECIFIED
some identity providers specify the styling of the button to their login
Possible values: non-empty
and <= 200 characters
the endpoint where the JWT can be extracted
Possible values: non-empty
and <= 200 characters
the issuer of the JWT (for validation)
Possible values: non-empty
and <= 200 characters
the endpoint to the key (JWK) which is used to sign the JWT with
Possible values: non-empty
and <= 200 characters
the name of the header where the JWT is sent in, default is authorization
Body
required
Possible values: non-empty
and <= 200 characters
Possible values: [STYLING_TYPE_UNSPECIFIED
, STYLING_TYPE_GOOGLE
]
Default value: STYLING_TYPE_UNSPECIFIED
some identity providers specify the styling of the button to their login
Possible values: non-empty
and <= 200 characters
the endpoint where the JWT can be extracted
Possible values: non-empty
and <= 200 characters
the issuer of the JWT (for validation)
Possible values: non-empty
and <= 200 characters
the endpoint to the key (JWK) which is used to sign the JWT with
Possible values: non-empty
and <= 200 characters
the name of the header where the JWT is sent in, default is authorization
Responses​
- 200
- default
A successful response.
- application/json
- application/grpc
- application/grpc-web+proto
- Schema
- Example (from schema)
Schema
details
object
{
"details": {
"sequence": "2",
"creationDate": "2025-03-20T14:09:43.873Z",
"changeDate": "2025-03-20T14:09:43.873Z",
"resourceOwner": "69629023906488334"
},
"idpId": "69234230193872955"
}
- Schema
- Example (from schema)
Schema
details
object
{
"details": {
"sequence": "2",
"creationDate": "2025-03-20T14:09:43.874Z",
"changeDate": "2025-03-20T14:09:43.874Z",
"resourceOwner": "69629023906488334"
},
"idpId": "69234230193872955"
}
- Schema
- Example (from schema)
Schema
details
object
{
"details": {
"sequence": "2",
"creationDate": "2025-03-20T14:09:43.874Z",
"changeDate": "2025-03-20T14:09:43.874Z",
"resourceOwner": "69629023906488334"
},
"idpId": "69234230193872955"
}
An unexpected error response.
- application/json
- application/grpc
- application/grpc-web+proto
- Schema
- Example (from schema)
Schema
details
object[]
{
"code": 0,
"message": "string",
"details": [
{
"@type": "string"
}
]
}
- Schema
- Example (from schema)
Schema
details
object[]
{
"code": 0,
"message": "string",
"details": [
{
"@type": "string"
}
]
}
- Schema
- Example (from schema)
Schema
details
object[]
{
"code": 0,
"message": "string",
"details": [
{
"@type": "string"
}
]
}
- curl
- python
- go
- nodejs
- ruby
- csharp
- php
- java
- powershell
- CURL
curl -L 'https://$CUSTOM-DOMAIN/management/v1/idps/jwt' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <TOKEN>' \
-d '{
"name": "google",
"stylingType": "STYLING_TYPE_UNSPECIFIED",
"jwtEndpoint": "https://accounts.google.com",
"issuer": "https://accounts.google.com",
"keysEndpoint": "https://accounts.google.com/keys",
"headerName": "x-auth-token",
"autoRegister": true
}'