servicePrincipal:addKey
命名空间:microsoft.graph
重要
Microsoft Graph /beta
版本下的 API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。
将密钥凭据添加到 servicePrincipal。 servicePrincipal 可以使用此方法和 removeKey 来自动滚动其即将到期的密钥。
注意
创建 servicePrincipal 和 更新 servicePrincipal 操作可以继续用于添加和更新具有或不带用户上下文的任何 servicePrincipal 的密钥凭据。
作为此方法请求验证的一部分,在执行操作之前,将验证现有密钥的所有权证明。
没有任何现有有效证书的 ServicePrincipal (,即尚未添加证书,或者所有证书都已) 过期,将无法使用此服务操作。 更新 servicePrincipal 可用于改为执行更新。
权限
为此 API 选择标记为最低特权的权限。 只有在应用需要它时,才使用更高的特权权限。 有关委派权限和应用程序权限的详细信息,请参阅权限类型。 要了解有关这些权限的详细信息,请参阅 权限参考。
权限类型 | 最低特权权限 | 更高特权权限 |
---|---|---|
委派(工作或学校帐户) | Application.ReadWrite.All | Directory.ReadWrite.All |
委派(个人 Microsoft 帐户) | 不支持。 | 不支持。 |
应用程序 | Application.ReadWrite.OwnedBy | Application.ReadWrite.All、Directory.ReadWrite.All |
HTTP 请求
可以使用服务主体 ID 或 appId 来寻址服务主体。 id 和 appId 在 Microsoft Entra 管理中心 中的应用注册中分别称为“对象 ID”和“应用程序 (客户端) ID”。
POST /servicePrincipals/{id}/addKey
POST /servicePrincipals(appId='{appId}')/addKey
请求标头
名称 | 说明 |
---|---|
Authorization | 持有者 {token}。 必填。 详细了解 身份验证和授权。 |
Content-Type | application/json. 必需。 |
请求正文
在请求正文中,提供以下必需属性。
属性 | 类型 | 说明 |
---|---|---|
keyCredential | keyCredential | 要添加的新 servicePrincipal 密钥凭据。
类型、用法和密钥是此用法的必需属性。 支持的密钥类型包括:
|
passwordCredential | passwordCredential | 只需要设置 secretText ,它应包含密钥的密码。 仅类型 为 的 X509CertAndPassword 键需要此属性。 否则将其设置为 null 。 |
证明 | String | 用作现有密钥所有权证明的自签名 JWT 令牌。 必须使用与 servicePrincipal 关联的现有有效证书之一对应的私钥对此 JWT 令牌进行签名。 令牌应包含以下声明:
有关生成此所有权证明令牌的步骤,请参阅 为滚动密钥生成所有权证明令牌。 |
响应
如果成功,此方法在响应正文中返回响应 200 OK
代码和新的 keyCredential 对象。
示例
示例 1:向 servicePrincipal 添加新的密钥凭据
请求
以下示例显示了一个请求。
POST https://graph.microsoft.com/beta/servicePrincipals/{id}/addKey
Content-type: application/json
{
"keyCredential": {
"type": "AsymmetricX509Cert",
"usage": "Verify",
"key": "MIIDYDCCAki..."
},
"passwordCredential": null,
"proof":"eyJ0eXAiOiJ..."
}
响应
以下示例显示了相应的响应。
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#microsoft.graph.keyCredential"
}
示例 2:为密钥添加密钥凭据和关联的密码
请求
以下示例显示了一个请求。
POST https://graph.microsoft.com/beta/servicePrincipals/{id}/addKey
Content-type: application/json
{
"keyCredential": {
"type": "X509CertAndPassword",
"usage": "Sign",
"key": "MIIDYDCCAki..."
},
"passwordCredential": {
"secretText": "MKTr0w1..."
},
"proof":"eyJ0eXAiOiJ..."
}
响应
以下示例显示了相应的响应。
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#microsoft.graph.keyCredential"
}