使用来自keyvault的证书使用服务主体进行Azure登录

时间:2020-05-14 16:14:22

标签: azure azure-keyvault azure-service-principal

我正在遵循指南https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli?toc=%2Fazure%2Fazure-resource-manager%2Ftoc.json&view=azure-cli-latest 创建可以在shell脚本中使用的服务主体。

az ad sp create-for-rbac --name ServicePrincipalName --create-cert --cert CertName --keyvault VaultName

使用上述方法,我将创建的证书存储在密钥库中。

但是我不知道如何使用新的sp。

我从文档中看到的内容。是:-

az login --service-principal --username APP_ID --tenant TENANT_ID --password /path/to/cert

但是,即使我从密钥库下载了证书和私钥,也无法正常工作。

如何告诉登录名从keyvault提取密钥?

说明(更新):

如果真的没有办法使用keyvault进行服务主体登录,那么我真的想知道官方文档中两个语句的意义是什么。建议那样

1)

可以添加--keyvault参数以使用Azure密钥中的证书 保险柜。在这种情况下,--cert值是证书的名称。

az ad sp create-for-rbac --name ServicePrincipalName --cert CertName --keyvault VaultName 

2)

对于存储在Key Vault中的证书,请检索证书的 带有az keyvault秘密秀的私钥。在Key Vault中,名称为 证书的机密与证书名称相同。如果你 无法访问证书的私钥,请重置服务 主要凭证。

1 个答案:

答案 0 :(得分:1)

如果您使用az login -h,则可以看到使用证书的示例:

az login --service-principal -u http://azure-cli-2016-08-05-14-31-15 -p ~/mycertfile.pem --tenant contoso.onmicrosoft.com

所以您需要:

  • -u服务主体的ID
  • -p证书文件
  • --tenant(或-t)Azure AD租户ID

我认为它不能使用Key Vault中的证书登录,因为您需要登录以获取令牌来调用Key Vault。 一点鸡蛋和鸡蛋的问题:)