Skip to content

Set the login providers of an organization

PUT
/api/tenant/{tenantId}/Organizations/{id}/loginProviders
curl --request PUT \
--url https://api.nimles.com/identity/api/tenant/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/Organizations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/loginProviders \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '[ { "fields": { "additionalProperty": { "value": "example", "valueType": "example" } }, "accessibility": "example", "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "name": "example", "clientId": "example", "clientSecret": "example", "token": "example", "hasClientSecret": true, "hasToken": true, "scopes": [ "example" ], "requestOfflineAccess": true, "authority": "example", "type": "example", "callbackPath": "example" } ]'

Sets the login providers for an organization (SSO configuration). The GET blanks the client secret and token, so a provider that sends them blank keeps the stored ones; a provider that changes its authority, client id or type must send its client secret again, or the update fails.

The organization has at most one oidc provider, and its token (the sign-in scheme) is always oidc-{id}, whatever the request carries. Its authority must be one Microsoft Entra ID directory (https://login.microsoftonline.com/{tenant id or domain}/v2.0; not common, organizations, consumers or personal Microsoft accounts’ tenant id) or Google (https://accounts.google.com) unless the caller is a platform administrator or it keeps the stored authority and client id, and another provider may not carry an oidc- or microsoft token (422 otherwise). Only a tenant id grants the SSO default access.

id
required
string format: uuid

The organization identifier.

tenantId
required
string format: uuid

Your tenant id.

The login providers to set.

Media typeapplication/json
Array<object>
object
fields
object
key
additional properties
object
value
required
nullable
valueType
string
nullable
accessibility
string
nullable
id
string format: uuid
name
required
string
nullable
clientId
required
string
nullable
clientSecret
required
string
nullable
token
required
string
nullable
hasClientSecret
boolean
hasToken
boolean
scopes
Array<string>
nullable
requestOfflineAccess
boolean
authority
string
nullable
type
string
nullable
callbackPath
string
nullable

Example generated

[
{
"fields": {
"additionalProperty": {
"value": "example",
"valueType": "example"
}
},
"accessibility": "example",
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"name": "example",
"clientId": "example",
"clientSecret": "example",
"token": "example",
"hasClientSecret": true,
"hasToken": true,
"scopes": [
"example"
],
"requestOfflineAccess": true,
"authority": "example",
"type": "example",
"callbackPath": "example"
}
]

OK

Media typeapplication/json
object
fields
object
key
additional properties
string
data
object
fields
object
key
additional properties
object
value
required
nullable
valueType
string
nullable
accessibility
string
nullable
id
string format: uuid
relations
Array<object>
nullable
object
fields
object
key
additional properties
object
value
required
nullable
valueType
string
nullable
accessibility
string
nullable
id
string format: uuid
name
string
nullable
entityId
required
string format: uuid
entityType
required
string
>= 1 characters
relationType
required
string
>= 1 characters
tenantId
string format: uuid
nullable
resourceGroupId
string format: uuid
nullable
creatorId
string format: uuid
nullable
createdDate
string format: date-time
nullable
version
integer format: int32
nullable
lastModified
string format: date-time
nullable
name
required
string
>= 1 characters
uniqueName
required
string
>= 1 characters
description
string
nullable
rootResourceGroupId
string format: uuid
nullable
memberIds
Array<string>
nullable
loginProviders
Array<object>
nullable
object
fields
object
key
additional properties
object
value
required
nullable
valueType
string
nullable
accessibility
string
nullable
id
string format: uuid
name
required
string
nullable
clientId
required
string
nullable
clientSecret
required
string
nullable
token
required
string
nullable
hasClientSecret
boolean
hasToken
boolean
scopes
Array<string>
nullable
requestOfflineAccess
boolean
authority
string
nullable
type
string
nullable
callbackPath
string
nullable
domains
Array<object>
nullable
object
fields
object
key
additional properties
object
value
required
nullable
valueType
string
nullable
accessibility
string
nullable
id
string format: uuid
value
required
string
nullable
logoId
string format: uuid
nullable
bannerId
string format: uuid
nullable
ssoDefaultAccess
object
groupIds
Array<string>
nullable
roleAssignments
Array<object>
nullable
object
organizationId
string format: uuid
nullable
resourceGroupId
string format: uuid
nullable
roleDefinitionId
required
string format: uuid
groupsApprovedAtTenant
boolean
rolesApproved
boolean

Example generated

{
"data": {
"fields": {
"additionalProperty": {
"value": "example",
"valueType": "example"
}
},
"accessibility": "example",
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"relations": [
{
"fields": {
"additionalProperty": {
"value": "example",
"valueType": "example"
}
},
"accessibility": "example",
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"name": "example",
"entityId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"entityType": "example",
"relationType": "example"
}
],
"tenantId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"resourceGroupId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"creatorId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"createdDate": "2026-04-15T12:00:00Z",
"version": 1,
"lastModified": "2026-04-15T12:00:00Z",
"name": "example",
"uniqueName": "example",
"description": "example",
"rootResourceGroupId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"memberIds": [
"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"
],
"loginProviders": [
{
"fields": {
"additionalProperty": {
"value": "example",
"valueType": "example"
}
},
"accessibility": "example",
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"name": "example",
"clientId": "example",
"clientSecret": "example",
"token": "example",
"hasClientSecret": true,
"hasToken": true,
"scopes": [
"example"
],
"requestOfflineAccess": true,
"authority": "example",
"type": "example",
"callbackPath": "example"
}
],
"domains": [
{
"fields": {
"additionalProperty": {
"value": "example",
"valueType": "example"
}
},
"accessibility": "example",
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"value": "example"
}
],
"logoId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"bannerId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"ssoDefaultAccess": {
"groupIds": [
"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"
],
"roleAssignments": [
{
"organizationId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"resourceGroupId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"roleDefinitionId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"
}
],
"groupsApprovedAtTenant": true,
"rolesApproved": true
}
}
}

No Content: done, with no item to return.

Unauthorized: no bearer token, or one that is expired or not for this API.

Forbidden: the caller holds no role that allows this action at this scope. The body is empty, or a problem whose detail names the action.

Media typeapplication/json

An RFC 9457 problem.

object
detail
string
nullable
instance
string
nullable
status
integer format: int32
nullable
title
string
nullable
type
string
nullable
key
additional properties

Example generated

{
"detail": "example",
"instance": "example",
"status": 1,
"title": "example",
"type": "example"
}

Not found: no such item in the tenant.

Media typeapplication/problem+json

An RFC 9457 problem.

object
detail
string
nullable
instance
string
nullable
status
integer format: int32
nullable
title
string
nullable
type
string
nullable
key
additional properties

Example generated

{
"detail": "example",
"instance": "example",
"status": 1,
"title": "example",
"type": "example"
}

Conflict: the item kept changing under concurrent writes; read it again and retry.

Media typeapplication/problem+json

An RFC 9457 problem.

object
detail
string
nullable
instance
string
nullable
status
integer format: int32
nullable
title
string
nullable
type
string
nullable
key
additional properties

Example generated

{
"detail": "example",
"instance": "example",
"status": 1,
"title": "example",
"type": "example"
}

Unprocessable: the body or the change is invalid. The errors are keyed by member.

Media typeapplication/problem+json

A validation problem: the messages by member (or by JSON Pointer for a patch).

object
errors
object
key
additional properties
Array<string>
status
integer format: int32
nullable
title
string
nullable
type
string
nullable
key
additional properties

Example generated

{
"errors": {
"additionalProperty": [
"example"
]
},
"status": 1,
"title": "example",
"type": "example"
}