在没有客户端机密的情况下使用 Azure KeyVault Rest API 进行身份验证?

时间:2021-06-21 18:19:15

标签: azure azure-keyvault secret-key

如何在不传递客户端密钥的情况下通过其余 api 对 azure keyvault 进行身份验证?我的应用程序是本地的。我发现的示例使用客户端密钥进行身份验证,如果我必须在本地存储客户端密钥,这似乎首先违背了 KeyVault 的目的。我确实有我的证书的租户 ID、应用程序 ID 和 SubjectDistinguishedName。有没有办法使用 Rest api 或其他不涉及使用客户端机密或其他一些敏感数据的方式来验证这种方式?

1 个答案:

答案 0 :(得分:0)

当然可以,我假设您使用客户端凭据流来获取令牌,您可以使用 client_assertion 而不是 client_secret 来获取访问令牌。

POST https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token

client_id=<client_id>
&scope=https://vault.azure.net/.default
&client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
&client_assertion=eyJhbGciOiJSUzI1NiIsIng1dCI6Imd4OHRHeXN5amNScUtqRlBuZDdSRnd2dxxx
&grant_type=client_credentials

请参阅 Access token request with a certificate 并阅读 certificate credentials 以了解如何注册您的证书和断言的格式。