Een bestaande service-principal ophalen
Service-principals vermelden
Als u al een bestaande service-principal hebt die u wilt gebruiken, wordt in deze stap uitgelegd hoe u uw bestaande service-principal ophaalt.
Een lijst met de service-principals in een tenant kan worden opgehaald met az ad sp list. Deze opdracht retourneert standaard de eerste 100 service-principals voor uw tenant. Gebruik de --all
parameter om alle service-principals van een tenant op te halen. Het ophalen van deze lijst kan lang duren, dus het is raadzaam dat u de lijst filtert met een van de volgende parameters:
--display-name
vraagt service-principals aan die een voorvoegsel hebben dat overeenkomt met de opgegeven naam. De weergavenaam van een service-principal is de waarde die is ingesteld met de parameter tijdens het--name
maken. Als u niet hebt ingesteld--name
tijdens het maken van de service-principal, isazure-cli-
het naamvoorvoegsel .--spn
filters op exact overeenkomende service-principal-namen. De naam van de service-principal begint altijd methttps://
. als de waarde die u hebt--name
gebruikt geen URI was, wordthttps://
deze waarde gevolgd door de weergavenaam.--show-mine
vraagt alleen service-principals aan die zijn gemaakt door de aangemelde gebruiker.--filter
neemt een OData-filter en voert filters aan de serverzijde uit. Deze methode wordt aanbevolen om clientzijde te filteren met de parameter van--query
de CLI. Zie de syntaxis van de OData-expressie voor filters voor meer informatie over OData-filters.
De informatie die wordt geretourneerd voor service-principal-objecten is uitgebreid. Gebruik de querytekenreeks [].{id:appId, tenant:appOwnerOrganizationId}
om alleen de gegevens op te halen die nodig zijn voor aanmelding. Hier volgt een voorbeeld van het ophalen van de aanmeldingsgegevens voor alle service-principals die zijn gemaakt door de momenteel aangemelde gebruiker:
az ad sp list --show-mine --query "[].{SPname:displayName, SPid:appId, tenant:appOwnerOrganizationId}" --output table
Als u in een grote organisatie met veel service-principals werkt, kunt u de volgende opdrachtvoorbeelden proberen:
# get service principals containing a keyword
az ad sp list --display-name mySearchWord --output table
# get service principals using an OData filter
az ad sp list --filter "displayname eq 'myExactServicePrincipalName'" --output json
# get a service principal having a certain servicePrincipalNames property value
az ad sp list --spn https://spURL.com
Belangrijk
De gebruiker en tenant kunnen beide worden opgehaald met az ad sp list en az ad sp show, maar verificatiegeheimen of de verificatiemethode is niet beschikbaar. Geheimen voor certificaten in Azure Key Vault kunnen worden opgehaald met az keyvault secret show, maar er worden standaard geen andere geheimen opgeslagen. Als u een verificatiemethode of geheim vergeet, stelt u de referenties van de service-principal opnieuw in.
Eigenschappen van service-principal
Wanneer u een lijst met service-principals krijgt die worden gebruikt az ad sp list
, zijn er veel uitvoereigenschappen waarnaar u kunt verwijzen in uw script.
[
{
"accountEnabled": true,
"addIns": [],
"alternativeNames": [],
"appDescription": null,
"appDisplayName": "myServicePrincipalName",
"appId": "00000000-0000-0000-0000-000000000000",
"appOwnerOrganizationId": "00000000-0000-0000-0000-000000000000",
"appRoleAssignmentRequired": false,
"appRoles": [],
"applicationTemplateId": null,
"createdDateTime": null,
"deletedDateTime": null,
"description": null,
"disabledByMicrosoftStatus": null,
"displayName": "myServicePrincipalName",
"homepage": "https://myURL.com",
"id": "00000000-0000-0000-0000-000000000000",
"info": {
"logoUrl": null,
"marketingUrl": null,
"privacyStatementUrl": null,
"supportUrl": null,
"termsOfServiceUrl": null
},
"keyCredentials": [],
"loginUrl": null,
"logoutUrl": null,
"notes": null,
"notificationEmailAddresses": [],
"oauth2PermissionScopes": [
{
"adminConsentDescription": "my admin description",
"adminConsentDisplayName": "my admin display name",
"id": "00000000-0000-0000-0000-000000000000",
"isEnabled": true,
"type": "User",
"userConsentDescription": "my user description",
"userConsentDisplayName": "my user display name",
"value": "user_impersonation"
}
],
"passwordCredentials": [],
"preferredSingleSignOnMode": null,
"preferredTokenSigningKeyThumbprint": null,
"replyUrls": [],
"resourceSpecificApplicationPermissions": [],
"samlSingleSignOnSettings": null,
"servicePrincipalNames": [
"00000000-0000-0000-0000-000000000000",
"https://myURL.com"
],
"servicePrincipalType": "Application",
"signInAudience": null,
"tags": [
"WindowsAzureActiveDirectoryIntegratedApp"
],
"tokenEncryptionKeyId": null,
"verifiedPublisher": {
"addedDateTime": null,
"displayName": null,
"verifiedPublisherId": null
}
}
]
Gebruik de --query
parameter om eigenschappen van de service-principal op te halen en op te slaan in variabelen.
# Bash script
spID=$(az ad sp list --display-name myServicePrincipalName --query "[].{spID:appId}" --output tsv)
tenantID=$(az ad sp list --display-name myServicePrincipalName --query "[].{tenant:appOwnerOrganizationId}" --output tsv)
userConsentDescr=$(az ad sp list --display-name myServicePrincipalName --query "[].{ucs:oauth2PermissionScopes.userConsentDescription[0]}" --output tsv)
echo "Using appId $spID in tenant $tenantID for $userConsentDescr"
Volgende stappen
Nu u hebt geleerd hoe u uw bestaande service-principal ophaalt, gaat u verder met de volgende stap om te leren hoe u uw service-principalrollen beheert.