如何以纯文本形式从 Azure KeyVault 获取密钥?
How to get key from Azure KeyVault as a plain text?
我已经在 Key Vault 中创建了密钥,并在其中手动导入了私钥。现在我想使用 shell 编程来检索。
我已关注 https://docs.microsoft.com/en-us/rest/api/keyvault/getkey/getkey 并尝试检索纯文本,但我遇到了以下错误
curl https://test-poc-kv-31.vault.azure.net/keys/sftp/ec8368364d1844c908234396e8f50344e68?api-version=7.1
{"error":{"code":"Unauthorized","message":"Request is missing a Bearer or PoP token."}}
不确定如何为我的 URL 获取 Bearer 令牌?
错误信息很清楚,Request is missing a Bearar or Pop token
。
创建令牌的步骤:
- 使用此命令创建服务主体 -
az ad sp create-for-rbac
从输出命令中获取 appId
并向此服务主体提供权限:
- 从上面的命令中获取
password
、appId
和 tenant
并替换为以下内容:
curl --location --request POST 'https://login.microsoftonline.com/{TenantID}/oauth2/v2.0/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id={appId}' \
--data-urlencode 'client_secret={password}' \
--data-urlencode 'scope=https://vault.azure.net/.default'
从响应命令中获取access_token并将其传递给此命令:
curl -s "https://test-poc-kv-
31.vault.azure.net/keys/sftp/ec8368364d1844c908234396e8f50344e68?api-version=7.1" -H
"Authorization: Bearer %access_token%"
除了使用 curl,您还可以使用 Azure CLI(让您的生活更轻松) :
az keyvault key show --name "%KEY_NAME%" --vault-name "VAULT_NAME"
我已经在 Key Vault 中创建了密钥,并在其中手动导入了私钥。现在我想使用 shell 编程来检索。
我已关注 https://docs.microsoft.com/en-us/rest/api/keyvault/getkey/getkey 并尝试检索纯文本,但我遇到了以下错误
curl https://test-poc-kv-31.vault.azure.net/keys/sftp/ec8368364d1844c908234396e8f50344e68?api-version=7.1
{"error":{"code":"Unauthorized","message":"Request is missing a Bearer or PoP token."}}
不确定如何为我的 URL 获取 Bearer 令牌?
错误信息很清楚,Request is missing a Bearar or Pop token
。
创建令牌的步骤:
- 使用此命令创建服务主体 -
az ad sp create-for-rbac
从输出命令中获取 appId
并向此服务主体提供权限:
- 从上面的命令中获取
password
、appId
和tenant
并替换为以下内容:
curl --location --request POST 'https://login.microsoftonline.com/{TenantID}/oauth2/v2.0/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id={appId}' \
--data-urlencode 'client_secret={password}' \
--data-urlencode 'scope=https://vault.azure.net/.default'
从响应命令中获取access_token并将其传递给此命令:
curl -s "https://test-poc-kv- 31.vault.azure.net/keys/sftp/ec8368364d1844c908234396e8f50344e68?api-version=7.1" -H "Authorization: Bearer %access_token%"
除了使用 curl,您还可以使用 Azure CLI(让您的生活更轻松) :
az keyvault key show --name "%KEY_NAME%" --vault-name "VAULT_NAME"