Espacio de nombres: microsoft.graph
Quite una credencial de clave de un servicePrincipal. Un servicePrincipal puede usar este método junto con addKey para automatizar la puesta en marcha de las claves que expiran.
Como parte de la validación de la solicitud para este método, se comprueba una prueba de posesión de una clave existente antes de que se pueda realizar la acción.
Esta API está disponible en las siguientes implementaciones nacionales de nube.
| Servicio global |
Gobierno de EE. UU. L4 |
Us Government L5 (DOD) |
China operada por 21Vianet |
| ✅ |
✅ |
✅ |
✅ |
Permissions
Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use un permiso o permisos con privilegios superiores solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.
| Tipo de permiso |
Permisos con privilegios mínimos |
Permisos con privilegios más altos |
| Delegado (cuenta profesional o educativa) |
Application.ReadWrite.All |
Directory.ReadWrite.All |
| Delegado (cuenta personal de Microsoft) |
No admitida. |
No admitida. |
| Aplicación |
Application.ReadWrite.OwnedBy |
Application.ReadWrite.All, Directory.ReadWrite.All |
Importante
En escenarios delegados con cuentas profesionales o educativas, al usuario que ha iniciado sesión se le debe asignar un rol de Microsoft Entra compatible o un rol personalizado con un permiso de rol admitido. Se admiten los siguientes roles con privilegios mínimos para esta operación.
- Un usuario miembro no administrador con permisos de usuario predeterminados: para las aplicaciones de su propiedad
- Desarrollador de aplicaciones: para las aplicaciones de su propiedad
- Administrador de aplicaciones en la nube
- Administrador de la aplicación
Solicitud HTTP
Puede dirigirse a la entidad de servicio mediante su id . o appId.
id y appId se conocen como id. de objeto y id. de aplicación (cliente), respectivamente, en los registros de aplicaciones en el Centro de administración Microsoft Entra.
POST /serviceprincipals/{id}/removeKey
POST /servicePrincipals(appId='{appId}')/removeKey
| Nombre |
Descripción |
| Authorization |
{token} de portador. Obligatorio. Obtenga más información sobre la autenticación y la autorización. |
| Content-Type |
application/json. Obligatorio. |
Cuerpo de la solicitud
En el cuerpo de la solicitud, proporcione las siguientes propiedades necesarias.
| Propiedad |
Tipo |
Descripción |
| keyId |
Guid |
Identificador único de la contraseña. |
| prueba |
Cadena |
Token JWT autofirmado que se usa como prueba de posesión de las claves existentes. Este token JWT debe estar firmado con una clave privada que corresponda a uno de los certificados válidos existentes asociados con servicePrincipal. El token debe contener las siguientes notificaciones:-
aud: el público debe ser
00000002-0000-0000-c000-000000000000. -
iss: El emisor debe ser el identificador del servicePrincipal que inicia la solicitud.
-
nbf: no antes de la hora.
-
exp: el tiempo de expiración debe ser el valor de nbf + 10 minutos.
Para ver los pasos para generar este token de prueba de posesión, consulte Generación de tokens de prueba de posesión para claves graduales. |
Respuesta
Si se ejecuta correctamente, este método devuelve un código de respuesta 204 No content.
Ejemplos
En el ejemplo siguiente se muestra cómo llamar a esta API.
Solicitud
En el ejemplo siguiente se muestra la solicitud.
POST https://graph.microsoft.com/v1.0/servicePrincipals/{id}/removeKey
Content-Type: application/json
{
"keyId": "f0b0b335-1d71-4883-8f98-567911bfdca6",
"proof":"eyJ0eXAiOiJ..."
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.ServicePrincipals.Item.RemoveKey;
var requestBody = new RemoveKeyPostRequestBody
{
KeyId = Guid.Parse("f0b0b335-1d71-4883-8f98-567911bfdca6"),
Proof = "eyJ0eXAiOiJ...",
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
await graphClient.ServicePrincipals["{servicePrincipal-id}"].RemoveKey.PostAsync(requestBody);
Para obtener más información sobre cómo agregar el SDK al proyecto y crear una instancia de authProvider, consulte la documentación del SDK.
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
"github.com/google/uuid"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphserviceprincipals "github.com/microsoftgraph/msgraph-sdk-go/serviceprincipals"
//other-imports
)
requestBody := graphserviceprincipals.NewRemoveKeyPostRequestBody()
keyId := uuid.MustParse("f0b0b335-1d71-4883-8f98-567911bfdca6")
requestBody.SetKeyId(&keyId)
proof := "eyJ0eXAiOiJ..."
requestBody.SetProof(&proof)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
graphClient.ServicePrincipals().ByServicePrincipalId("servicePrincipal-id").RemoveKey().Post(context.Background(), requestBody, nil)
Para obtener más información sobre cómo agregar el SDK al proyecto y crear una instancia de authProvider, consulte la documentación del SDK.
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.serviceprincipals.item.removekey.RemoveKeyPostRequestBody removeKeyPostRequestBody = new com.microsoft.graph.serviceprincipals.item.removekey.RemoveKeyPostRequestBody();
removeKeyPostRequestBody.setKeyId(UUID.fromString("f0b0b335-1d71-4883-8f98-567911bfdca6"));
removeKeyPostRequestBody.setProof("eyJ0eXAiOiJ...");
graphClient.servicePrincipals().byServicePrincipalId("{servicePrincipal-id}").removeKey().post(removeKeyPostRequestBody);
Para obtener más información sobre cómo agregar el SDK al proyecto y crear una instancia de authProvider, consulte la documentación del SDK.
const options = {
authProvider,
};
const client = Client.init(options);
const removeKey = {
keyId: 'f0b0b335-1d71-4883-8f98-567911bfdca6',
proof: 'eyJ0eXAiOiJ...'
};
await client.api('/servicePrincipals/{id}/removeKey')
.post(removeKey);
Para obtener más información sobre cómo agregar el SDK al proyecto y crear una instancia de authProvider, consulte la documentación del SDK.
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\ServicePrincipals\Item\RemoveKey\RemoveKeyPostRequestBody;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new RemoveKeyPostRequestBody();
$requestBody->setKeyId('f0b0b335-1d71-4883-8f98-567911bfdca6');
$requestBody->setProof('eyJ0eXAiOiJ...');
$graphServiceClient->servicePrincipals()->byServicePrincipalId('servicePrincipal-id')->removeKey()->post($requestBody)->wait();
Para obtener más información sobre cómo agregar el SDK al proyecto y crear una instancia de authProvider, consulte la documentación del SDK.
Import-Module Microsoft.Graph.Applications
$params = @{
keyId = "f0b0b335-1d71-4883-8f98-567911bfdca6"
proof = "eyJ0eXAiOiJ..."
}
Remove-MgServicePrincipalKey -ServicePrincipalId $servicePrincipalId -BodyParameter $params
Para obtener más información sobre cómo agregar el SDK al proyecto y crear una instancia de authProvider, consulte la documentación del SDK.
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.serviceprincipals.item.remove_key.remove_key_post_request_body import RemoveKeyPostRequestBody
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = RemoveKeyPostRequestBody(
key_id = UUID("f0b0b335-1d71-4883-8f98-567911bfdca6"),
proof = "eyJ0eXAiOiJ...",
)
await graph_client.service_principals.by_service_principal_id('servicePrincipal-id').remove_key.post(request_body)
Para obtener más información sobre cómo agregar el SDK al proyecto y crear una instancia de authProvider, consulte la documentación del SDK.
Respuesta
En el ejemplo siguiente se muestra la respuesta.
HTTP/1.1 204 No Content