servicePrincipal
(MS Graph API)
The servicePrincipal
resource type represents an instance of an application in a directory. For more information, refer to the Microsoft Graph documentation.
Query all servicePrincipal
objects
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Accept-API-Version: resource=1.0" \ --request GET \ "http://localhost:8080/openidm/system/azuread/servicePrincipal?_queryFilter=true"
Read a servicePrincipal
Request
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Accept-API-Version: resource=1.0" \ --request GET \ "http://localhost:8080/openidm/system/azuread/servicePrincipal/1c696b95-7f68-4018-b627-6c9601faa80b"
Response
{
"_id": "1c696b95-7f68-4018-b627-6c9601faa80b",
"addIns": [],
"replyUrls": [],
"keyCredentials": [],
"oauth2PermissionScopes": [],
"displayName": "Test-Application",
"appRoleAssignments": [],
"alternativeNames": [],
"resourceSpecificApplicationPermissions": [],
"appDisplayName": "Test-Application",
"accountEnabled": true,
"appOwnerOrganizationId": "9e91bf24-7a08-433e-b111-5542416b4f20",
"passwordCredentials": [],
"servicePrincipalNames": [
"a293dbaf-ba5d-4692-8898-521a1da51bac"
],
"appId": "a293dbaf-ba5d-4692-8898-521a1da51bac",
"signInAudience": "AzureADandPersonalMicrosoftAccount",
"notificationEmailAddresses": [],
"servicePrincipalType": "Application",
"tags": [],
"appRoleAssignedTo": [],
"info": {},
"appRoles": [],
"appRoleAssignmentRequired": false
}
Create a servicePrincipal
A servicePrincipal requires an appId .
|
Request
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Accept-API-Version: resource=1.0" \ --header "Content-Type: application/json" \ --request POST \ --data '{ "appId": "0b9179f4-f617-4ab8-9c33-18a870c76722" }' \ "http://localhost:8080/openidm/system/azuread/servicePrincipal"
Response
{
"_id": "7d164d58-6210-4c25-84db-d3dfce1171b4",
"addIns": [],
"replyUrls": [],
"keyCredentials": [],
"oauth2PermissionScopes": [],
"displayName": "Test-Application",
"appRoleAssignments": [],
"alternativeNames": [],
"resourceSpecificApplicationPermissions": [],
"appDisplayName": "Test-Application",
"accountEnabled": true,
"appOwnerOrganizationId": "9e91bf24-7a08-433e-b111-5542416b4f20",
"passwordCredentials": [],
"servicePrincipalNames": [
"0b9179f4-f617-4ab8-9c33-18a870c76722"
],
"appId": "0b9179f4-f617-4ab8-9c33-18a870c76722",
"signInAudience": "AzureADandPersonalMicrosoftAccount",
"notificationEmailAddresses": [],
"servicePrincipalType": "Application",
"tags": [],
"appRoleAssignedTo": [],
"info": {},
"appRoles": [],
"appRoleAssignmentRequired": false
}
Add a password (client secret) to a servicePrincipal
Adding passwordCredential
when creating a servicePrincipal
is not supported. You must use the addPassword
method to add passwords or secrets to a servicePrincipal
.
Request
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Accept-API-Version: resource=1.0" \ --header "Content-Type: application/json" \ --request POST \ "http://localhost:8080/openidm/system/azuread/?_action=script&scriptId=addPassword&displayName=TestSecretGenesis&servicePrincipalId=32e18e7a-cb23-4453-b5f4-286bc1a629b8&builtinAction=addPassword"
Response
{
"actions": [
{
"result": {
"secretText": "{GENERATED-CLIENT-SECRET}",
"startDateTime": {
"dateTime": {
"date": {
"month": 5,
"year": 2023,
"day": 5
},
"time": {
"hour": 20,
"nano": 91094000,
"minute": 41,
"second": 8
}
},
"offset": {
"totalSeconds": 0
}
},
"displayName": "TestSecretGenesis",
"hint": "rJn",
"keyId": "862c0883-45ac-4e13-8adc-ce9bf3036570",
"endDateTime": {
"dateTime": {
"date": {
"month": 5,
"year": 2025,
"day": 5
},
"time": {
"hour": 20,
"nano": 91094000,
"minute": 41,
"second": 8
}
},
"offset": {
"totalSeconds": 0
}
}
}
}
]
}
Update a servicePrincipal
Request
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Accept-API-Version: resource=1.0" \ --header "Content-Type: application/json" \ --request PATCH \ --data '[ { "operation": "replace", "field": "/appRoleAssignmentRequired", "value": true } ]' \ "http://localhost:8080/openidm/system/azuread/servicePrincipal/7d164d58-6210-4c25-84db-d3dfce1171b4"
Response
{
"_id": "7d164d58-6210-4c25-84db-d3dfce1171b4",
"addIns": [],
"replyUrls": [],
"keyCredentials": [],
"oauth2PermissionScopes": [],
"displayName": "Test-Application",
"appRoleAssignments": [],
"alternativeNames": [],
"resourceSpecificApplicationPermissions": [],
"appDisplayName": "Test-Application",
"accountEnabled": true,
"appOwnerOrganizationId": "9e91bf24-7a08-433e-b111-5542416b4f20",
"passwordCredentials": [],
"servicePrincipalNames": [
"0b9179f4-f617-4ab8-9c33-18a870c76722"
],
"appId": "0b9179f4-f617-4ab8-9c33-18a870c76722",
"signInAudience": "AzureADandPersonalMicrosoftAccount",
"notificationEmailAddresses": [],
"servicePrincipalType": "Application",
"tags": [],
"appRoleAssignedTo": [],
"info": {},
"appRoles": [],
"appRoleAssignmentRequired": true
}
Delete a servicePrincipal
Request
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Accept-API-Version: resource=1.0" \ --header "Content-Type: application/json" \ --header "If-Match: *" \ --request DELETE \ "http://localhost:8080/openidm/system/azuread/servicePrincipal/1df34a52-3491-4b3a-8ec7-51d77ab50860"
Response
{
"_id": "1df34a52-3491-4b3a-8ec7-51d77ab50860",
"addIns": [],
"replyUrls": [],
"keyCredentials": [],
"oauth2PermissionScopes": [],
"displayName": "Test-Application",
"appRoleAssignments": [],
"alternativeNames": [],
"resourceSpecificApplicationPermissions": [],
"appDisplayName": "Test-Application",
"accountEnabled": true,
"appOwnerOrganizationId": "9e91bf24-7a08-433e-b111-5542416b4f20",
"passwordCredentials": [],
"servicePrincipalNames": [
"a2179b48-33f0-4933-8c59-39639469bb13"
],
"appId": "a2179b48-33f0-4933-8c59-39639469bb13",
"signInAudience": "AzureADandPersonalMicrosoftAccount",
"notificationEmailAddresses": [],
"servicePrincipalType": "Application",
"tags": [],
"appRoleAssignedTo": [],
"info": {},
"appRoles": [],
"appRoleAssignmentRequired": false
}