如何从现有的 Azure 服务主体获取客户端机密
How to get client secret from existing Azure service principal
我在 Azure 中创建了启用 RBAC 的 service principal 以使用环境变量在我的 OS 中配置 Key Vault 访问。创建服务主体时,Azure CLI 会响应服务主体详细信息,其中包含 clientSecret
值。创建命令:
az ad sp create-for-rbac -n <http://my-name> --sdk-auth
我想知道以后是否可以以及如何请求 clientSecret
。当我使用
az ad sp show --id <my-service-principal-uuid>
或
az ad sp credential list --id <my-service-principal-uuid>
clientSecret
不在响应信息中。
除了创建时,还有什么方法可以检索 clientSecret
吗?
你可以像下面这样获得
创建服务主体
SPA_SP_APP_ID=$(az ad sp create-for-rbac --name $AKS_SP_NAME --skip-assignment --query appId)
检索服务主体 APPID 和客户端密钥
SPA_SP_SECRET=$(az ad sp credential reset --name $SPA_SP_APP_ID --query "password")
编辑
正如上面提到的 Moss,一旦创建就无法检索。
创建后无法检索。你能做的最好的事情就是重置它,此时你将看到新值:
PS C:\> az ad sp credential reset --name foo
{
"appId": "...",
"name": "foo",
"password": "...",
"tenant": "..."
}
这意味着您需要在任何地方手动更新凭据,例如在 Azure DevOps 中,如果您创建了与该特定服务主体的 Azure RM 服务连接。
我在 Azure 中创建了启用 RBAC 的 service principal 以使用环境变量在我的 OS 中配置 Key Vault 访问。创建服务主体时,Azure CLI 会响应服务主体详细信息,其中包含 clientSecret
值。创建命令:
az ad sp create-for-rbac -n <http://my-name> --sdk-auth
我想知道以后是否可以以及如何请求 clientSecret
。当我使用
az ad sp show --id <my-service-principal-uuid>
或
az ad sp credential list --id <my-service-principal-uuid>
clientSecret
不在响应信息中。
除了创建时,还有什么方法可以检索 clientSecret
吗?
你可以像下面这样获得
创建服务主体
SPA_SP_APP_ID=$(az ad sp create-for-rbac --name $AKS_SP_NAME --skip-assignment --query appId)
检索服务主体 APPID 和客户端密钥
SPA_SP_SECRET=$(az ad sp credential reset --name $SPA_SP_APP_ID --query "password")
编辑
正如上面提到的 Moss,一旦创建就无法检索。
创建后无法检索。你能做的最好的事情就是重置它,此时你将看到新值:
PS C:\> az ad sp credential reset --name foo
{
"appId": "...",
"name": "foo",
"password": "...",
"tenant": "..."
}
这意味着您需要在任何地方手动更新凭据,例如在 Azure DevOps 中,如果您创建了与该特定服务主体的 Azure RM 服务连接。