azure - 如何以纯文本形式从 Azure KeyVault 获取密钥?
问题描述
我在 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"
推荐阅读
- laravel - Laratrust 中间件管理面板
- python-3.x - 如何创建/连接到 Docker Azure 服务总线(使用 Python SDK)?
- python - 使用 matplotlib 创建堆积条形图
- python - VSCode Python:将代码移动到新行保留先前缩进的所有空格
- google-sheets - Excel/Sheets 基于两个条件的连续计数(函数?)
- html - 在页脚中排列 div
- swift - 单页应用程序中的 SpriteKit 粒子发射器?
- common-lisp - 如何在 Common Lisp 的另一个函数中调用一个函数?
- javascript - 如何一键运行几个mailto链接?
- node.js - 只能创建一个 cardNumber 类型的元素