Skip to content
CCPEDIAby Unity Nodes
Documentation/Canton Network Docs/Ledger APIOpenAPIView on Canton Network Docs

POST /v2/idps

POST
/
v2
/
idps
Try it
cURL
Python
JavaScript
PHP
Go
Java
Ruby
curl --request POST \
  --url 'http://localhost:7575/v2/idps' \
  --header 'Authorization: Bearer $TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "identityProviderConfig": {
    "identityProviderId": "<string>",
    "isDeactivated": false,
    "issuer": "<string>",
    "jwksUrl": "<string>",
    "audience": "<string>"
  }
}'
import json
import requests

url = "http://localhost:7575/v2/idps"
headers = {'Authorization': 'Bearer <token>', 'Content-Type': 'application/json'}
payload = json.loads(r'''{
  "identityProviderConfig": {
    "identityProviderId": "<string>",
    "isDeactivated": false,
    "issuer": "<string>",
    "jwksUrl": "<string>",
    "audience": "<string>"
  }
}''')
response = requests.request(
    "POST", url, headers=headers, json=payload
)

print(response.text)
const response = await fetch('http://localhost:7575/v2/idps', {
  method: 'POST',
  headers: {
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
},
  body: JSON.stringify({
  "identityProviderConfig": {
    "identityProviderId": "<string>",
    "isDeactivated": false,
    "issuer": "<string>",
    "jwksUrl": "<string>",
    "audience": "<string>"
  }
}),
});

console.log(await response.text());
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'http://localhost:7575/v2/idps',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => <<<'JSON'
{
  "identityProviderConfig": {
    "identityProviderId": "<string>",
    "isDeactivated": false,
    "issuer": "<string>",
    "jwksUrl": "<string>",
    "audience": "<string>"
  }
}
JSON,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer <token>",
        "Content-Type: application/json"
    ],
]);

$response = curl_exec($curl);
echo $response;
package main

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

func main() {
  req, _ := http.NewRequest("POST", "http://localhost:7575/v2/idps", bytes.NewBufferString(`{
  "identityProviderConfig": {
    "identityProviderId": "<string>",
    "isDeactivated": false,
    "issuer": "<string>",
    "jwksUrl": "<string>",
    "audience": "<string>"
  }
}`))
  req.Header.Set("Authorization", "Bearer <token>")
  req.Header.Set("Content-Type", "application/json")
  response, _ := http.DefaultClient.Do(req)
  defer response.Body.Close()
  body, _ := io.ReadAll(response.Body)
  fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

var request = HttpRequest.newBuilder()
    .uri(URI.create("http://localhost:7575/v2/idps"))
    .header("Authorization", "Bearer <token>")
    .header("Content-Type", "application/json")
    .method("POST", HttpRequest.BodyPublishers.ofString("""
{
  "identityProviderConfig": {
    "identityProviderId": "<string>",
    "isDeactivated": false,
    "issuer": "<string>",
    "jwksUrl": "<string>",
    "audience": "<string>"
  }
}
"""))
    .build();
var response = HttpClient.newHttpClient().send(
    request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
require 'net/http'
require 'uri'

uri = URI('http://localhost:7575/v2/idps')
request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer <token>'
request['Content-Type'] = 'application/json'
request.body = <<~JSON
{
  "identityProviderConfig": {
    "identityProviderId": "<string>",
    "isDeactivated": false,
    "issuer": "<string>",
    "jwksUrl": "<string>",
    "audience": "<string>"
  }
}
JSON
response = Net::HTTP.start(uri.hostname, uri.port) do |http|
  http.request(request)
end
puts response.body
200
400
default
{
  "identityProviderConfig": {
    "identityProviderId": "<string>",
    "isDeactivated": false,
    "issuer": "<string>",
    "jwksUrl": "<string>",
    "audience": "<string>"
  }
}
<string>
{
  "code": "<string>",
  "cause": "<string>",
  "correlationId": "<string>",
  "traceId": "<string>",
  "context": {},
  "resources": [
    [
      "<string>"
    ]
  ],
  "errorCategory": 123,
  "grpcCodeValue": 123,
  "retryInfo": "<string>",
  "definiteAnswer": false
}

Create a new identity provider configuration. The request will fail if the maximum allowed number of separate configurations is reached.

cURL
Python
JavaScript
PHP
Go
Java
Ruby
curl --request POST \
  --url 'http://localhost:7575/v2/idps' \
  --header 'Authorization: Bearer $TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "identityProviderConfig": {
    "identityProviderId": "<string>",
    "isDeactivated": false,
    "issuer": "<string>",
    "jwksUrl": "<string>",
    "audience": "<string>"
  }
}'
import json
import requests

url = "http://localhost:7575/v2/idps"
headers = {'Authorization': 'Bearer <token>', 'Content-Type': 'application/json'}
payload = json.loads(r'''{
  "identityProviderConfig": {
    "identityProviderId": "<string>",
    "isDeactivated": false,
    "issuer": "<string>",
    "jwksUrl": "<string>",
    "audience": "<string>"
  }
}''')
response = requests.request(
    "POST", url, headers=headers, json=payload
)

print(response.text)
const response = await fetch('http://localhost:7575/v2/idps', {
  method: 'POST',
  headers: {
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
},
  body: JSON.stringify({
  "identityProviderConfig": {
    "identityProviderId": "<string>",
    "isDeactivated": false,
    "issuer": "<string>",
    "jwksUrl": "<string>",
    "audience": "<string>"
  }
}),
});

console.log(await response.text());
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'http://localhost:7575/v2/idps',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => <<<'JSON'
{
  "identityProviderConfig": {
    "identityProviderId": "<string>",
    "isDeactivated": false,
    "issuer": "<string>",
    "jwksUrl": "<string>",
    "audience": "<string>"
  }
}
JSON,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer <token>",
        "Content-Type: application/json"
    ],
]);

$response = curl_exec($curl);
echo $response;
package main

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

func main() {
  req, _ := http.NewRequest("POST", "http://localhost:7575/v2/idps", bytes.NewBufferString(`{
  "identityProviderConfig": {
    "identityProviderId": "<string>",
    "isDeactivated": false,
    "issuer": "<string>",
    "jwksUrl": "<string>",
    "audience": "<string>"
  }
}`))
  req.Header.Set("Authorization", "Bearer <token>")
  req.Header.Set("Content-Type", "application/json")
  response, _ := http.DefaultClient.Do(req)
  defer response.Body.Close()
  body, _ := io.ReadAll(response.Body)
  fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

var request = HttpRequest.newBuilder()
    .uri(URI.create("http://localhost:7575/v2/idps"))
    .header("Authorization", "Bearer <token>")
    .header("Content-Type", "application/json")
    .method("POST", HttpRequest.BodyPublishers.ofString("""
{
  "identityProviderConfig": {
    "identityProviderId": "<string>",
    "isDeactivated": false,
    "issuer": "<string>",
    "jwksUrl": "<string>",
    "audience": "<string>"
  }
}
"""))
    .build();
var response = HttpClient.newHttpClient().send(
    request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
require 'net/http'
require 'uri'

uri = URI('http://localhost:7575/v2/idps')
request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer <token>'
request['Content-Type'] = 'application/json'
request.body = <<~JSON
{
  "identityProviderConfig": {
    "identityProviderId": "<string>",
    "isDeactivated": false,
    "issuer": "<string>",
    "jwksUrl": "<string>",
    "audience": "<string>"
  }
}
JSON
response = Net::HTTP.start(uri.hostname, uri.port) do |http|
  http.request(request)
end
puts response.body
200
400
default
{
  "identityProviderConfig": {
    "identityProviderId": "<string>",
    "isDeactivated": false,
    "issuer": "<string>",
    "jwksUrl": "<string>",
    "audience": "<string>"
  }
}
<string>
{
  "code": "<string>",
  "cause": "<string>",
  "correlationId": "<string>",
  "traceId": "<string>",
  "context": {},
  "resources": [
    [
      "<string>"
    ]
  ],
  "errorCategory": 123,
  "grpcCodeValue": 123,
  "retryInfo": "<string>",
  "definiteAnswer": false
}

Authorizations

httpAuth

Authorization
string
required
HTTP bearer authentication. Send the token as Authorization: Bearer &lt;token&gt;. Ledger API standard JWT token

apiKeyAuth

Sec-WebSocket-Protocol
string
required
API key authentication in the header. Ledger API standard JWT token (websocket)

Body

application/json
identityProviderConfig
object
required
OpenAPI type: IdentityProviderConfig.Required

Show child attributes

identityProviderId
string
required
The identity provider identifier Must be a valid LedgerString (as describe in value.proto). Required
isDeactivated
boolean
When set, the callers using JWT tokens issued by this identity provider are denied all access to the Ledger API. Modifiable Optional
issuer
string
required
Specifies the issuer of the JWT token. The issuer value is a case sensitive URL using the https scheme that contains scheme, host, and optionally, port number and path components and no query or fragment components. Modifiable Can be left empty when used in UpdateIdentityProviderConfigRequest if the issuer is not being updated. Required
jwksUrl
string
required
The JWKS (JSON Web Key Set) URL. The Ledger API uses JWKs (JSON Web Keys) from the provided URL to verify that the JWT has been signed with the loaded JWK. Only RS256 (RSA Signature with SHA-256) signing algorithm is supported. Modifiable Required
audience
string
Specifies the audience of the JWT token. When set, the callers using JWT tokens issued by this identity provider are allowed to get an access only if the “aud” claim includes the string specified here Modifiable Optional

Responses

200

application/json
identityProviderConfig
IdentityProviderConfig
required
Required

Show child attributes

identityProviderId
string
required
The identity provider identifier Must be a valid LedgerString (as describe in value.proto). Required
isDeactivated
boolean
When set, the callers using JWT tokens issued by this identity provider are denied all access to the Ledger API. Modifiable Optional
issuer
string
required
Specifies the issuer of the JWT token. The issuer value is a case sensitive URL using the https scheme that contains scheme, host, and optionally, port number and path components and no query or fragment components. Modifiable Can be left empty when used in UpdateIdentityProviderConfigRequest if the issuer is not being updated. Required
jwksUrl
string
required
The JWKS (JSON Web Key Set) URL. The Ledger API uses JWKs (JSON Web Keys) from the provided URL to verify that the JWT has been signed with the loaded JWK. Only RS256 (RSA Signature with SHA-256) signing algorithm is supported. Modifiable Required
audience
string
Specifies the audience of the JWT token. When set, the callers using JWT tokens issued by this identity provider are allowed to get an access only if the “aud” claim includes the string specified here Modifiable Optional

400

Invalid value, Invalid value for: body
text/plain
value
string
required

default

application/json
code
string
required
cause
string
required
correlationId
string
traceId
string
context
Map_String
required
resources
Tuple2_String_String[]
errorCategory
integer (int32)
required
grpcCodeValue
integer (int32)
retryInfo
string
definiteAnswer
boolean

History

Updated3.5

The POST /v2/idps operation changed in this snapshot.