Set the login providers of an organization
using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Put, RequestUri = new Uri("https://api.nimles.com/identity/api/tenant/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/Organizations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/loginProviders"), Headers = { { "Authorization", "Bearer <token>" }, }, Content = new StringContent("[ { \"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\" } ]") { Headers = { ContentType = new MediaTypeHeaderValue("application/json") } }};using (var response = await client.SendAsync(request)){ response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);}const url = 'https://api.nimles.com/identity/api/tenant/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/Organizations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/loginProviders';const options = { method: 'PUT', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '[{"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"}]'};
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://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.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The organization identifier.
Your tenant id.
Request Body
Section titled “Request Body”The login providers to set.
object
object
object
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" }]Responses
Section titled “Responses”OK
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
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.
An RFC 9457 problem.
object
Example generated
{ "detail": "example", "instance": "example", "status": 1, "title": "example", "type": "example"}Not found: no such item in the tenant.
An RFC 9457 problem.
object
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.
An RFC 9457 problem.
object
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.
A validation problem: the messages by member (or by JSON Pointer for a patch).
object
object
Example generated
{ "errors": { "additionalProperty": [ "example" ] }, "status": 1, "title": "example", "type": "example"}