Create or update the tenant's primary SSO/IdP configuration (AAL3 step-up)
const url = 'https://example.com/v1/console/sso/tenants/example';const options = { method: 'PUT', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"assurance_mapping":{"acr":["example"],"amr":["example"],"saml_contexts":["example"]},"claimed_domains":["example"],"display_name":"example","enabled":true,"network_allowlist":["example"],"oidc_client_id":"example","oidc_client_secret":"example","oidc_groups_claim":"example","oidc_issuer":"https://example.com","protocol":"oidc","require_sso":true,"saml_acs_url":"https://example.com","saml_email_attr":"example","saml_entity_id":"example","saml_groups_attr":"example","saml_idp_sso_url":"https://example.com","saml_metadata_url":"https://example.com","saml_sp_cert_pem":"example","saml_sp_key_pem":"example","saml_sp_sign_cert_pem":"example","saml_sp_sign_key_pem":"example","scim_authoritative":true}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://example.com/v1/console/sso/tenants/example \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "assurance_mapping": { "acr": [ "example" ], "amr": [ "example" ], "saml_contexts": [ "example" ] }, "claimed_domains": [ "example" ], "display_name": "example", "enabled": true, "network_allowlist": [ "example" ], "oidc_client_id": "example", "oidc_client_secret": "example", "oidc_groups_claim": "example", "oidc_issuer": "https://example.com", "protocol": "oidc", "require_sso": true, "saml_acs_url": "https://example.com", "saml_email_attr": "example", "saml_entity_id": "example", "saml_groups_attr": "example", "saml_idp_sso_url": "https://example.com", "saml_metadata_url": "https://example.com", "saml_sp_cert_pem": "example", "saml_sp_key_pem": "example", "saml_sp_sign_cert_pem": "example", "saml_sp_sign_key_pem": "example", "scim_authoritative": true }'Creates or updates the tenant’s primary IdP configuration. Step-up required; secrets are sealed at rest and never returned.
Authorizations
Section titled “ Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “ Path Parameters ”Tenant whose IdP surface this is (the tenant’s key).
Request Body required
Section titled “ Request Body required ”object
Exact upstream MFA values. Omitted/null amr accepts mfa or a signed combination of knowledge (pwd/pin) and possession (otp/hwk/swk); a single method never counts by default. Explicit amr lists replace these defaults with operator-owned exact matches. Omitted/null saml_contexts defaults to https://refeds.org/profile/mfa. ACR has no implicit values. Empty lists trust none. An empty object restores defaults; omission preserves the stored mapping.
object
Responses
Section titled “ Responses ”OK
object
Exact upstream MFA values. Omitted/null amr accepts mfa or a signed combination of knowledge (pwd/pin) and possession (otp/hwk/swk); a single method never counts by default. Explicit amr lists replace these defaults with operator-owned exact matches. Omitted/null saml_contexts defaults to https://refeds.org/profile/mfa. ACR has no implicit values. Empty lists trust none. An empty object restores defaults; omission preserves the stored mapping.
object
Example
{ "protocol": "oidc"}Bad request
object
object
With code module_not_enabled: the namespace of the module this node does not run.
Example generated
{ "error": { "code": "example", "message": "example", "module": "example" }}Unauthenticated
object
object
With code module_not_enabled: the namespace of the module this node does not run.
Example generated
{ "error": { "code": "example", "message": "example", "module": "example" }}Forbidden
object
object
With code module_not_enabled: the namespace of the module this node does not run.
Example generated
{ "error": { "code": "example", "message": "example", "module": "example" }}Not found
object
object
With code module_not_enabled: the namespace of the module this node does not run.
Example generated
{ "error": { "code": "example", "message": "example", "module": "example" }}Conflict / setup required
object
object
With code module_not_enabled: the namespace of the module this node does not run.
Example generated
{ "error": { "code": "example", "message": "example", "module": "example" }}Rate limited
object
object
With code module_not_enabled: the namespace of the module this node does not run.
Example generated
{ "error": { "code": "example", "message": "example", "module": "example" }}