Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Enumerar entidades de servicio
Si ya tiene una entidad de servicio existente que desea usar, en este paso se explica cómo recuperar la entidad de servicio existente.
Se puede recuperar una lista de las entidades de servicio de un inquilino con az ad sp list. Por defecto, este comando devuelve los primeros 100 principios de servicio de su inquilino. Para obtener todos los principales de servicio de un inquilino, use el parámetro --all. La obtención de esta lista puede tardar mucho tiempo, por lo que se recomienda filtrar la lista con uno de los parámetros siguientes:
-
--display-namesolicita entidades de servicio que tengan un prefijo que coincida con el nombre proporcionado. El nombre para mostrar de una entidad de servicio es el valor establecido con el parámetro--namedurante la creación. Si no estableciste--namedurante la creación del principal de servicio, el prefijo de nombre esazure-cli-. -
--spnfiltra por coincidencia exacta del nombre principal de servicio. El nombre principal del servicio siempre comienza conhttps://. Si el valor que usó para--nameno era un URI, este valor seráhttps://seguido del nombre mostrado. -
--show-minesolicita solo las entidades de servicio creadas por el usuario que ha iniciado sesión. -
--filtertoma un filtro OData y realiza el filtrado del lado servidor . Este método se recomienda en lugar de filtrar del lado del cliente con el parámetro--queryde la CLI. Para obtener información sobre los filtros de OData, consulte Sintaxis de expresiones de OData para filtros.
La información devuelta para los objetos principales de servicio es excesivamente detallada. Para obtener solo la información necesaria para el inicio de sesión, use la cadena [].{id:appId, tenant:appOwnerOrganizationId}de consulta . Este es un ejemplo que obtiene la información de inicio de sesión de todas las entidades de servicio creadas por el usuario actualmente conectado.
az ad sp list --show-mine --query "[].{SPname:displayName, SPid:appId, tenant:appOwnerOrganizationId}" --output table
Si trabaja en una organización grande con muchas entidades de servicio, pruebe estos ejemplos de comandos:
# 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
Importante
Tanto el usuario como el inquilino se pueden recuperar con az ad sp list y az ad sp show, pero los secretos de autenticación o el método de autenticación no están disponibles. Los secretos de los certificados de Azure Key Vault se pueden recuperar con az keyvault secret show, pero no se almacenan otros secretos de forma predeterminada. Si olvida un método de autenticación o un secreto, restablezca las credenciales de la entidad de servicio.
Propiedades de la entidad de servicio
Al obtener una lista de entidades de servicio que usan az ad sp list, hay muchas propiedades de salida a las que puede hacer referencia en el 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
}
}
]
Use el --query parámetro para recuperar y almacenar las propiedades del service principal en variables.
# 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"
Pasos siguientes
Ahora que ha aprendido a recuperar su principal de servicio existente, proceda al siguiente paso para aprender cómo administrar los roles de su principal de servicio.