我想在应用程序配置服务中检索Azure密钥库引用的秘密。在dotnet中,这是小菜一碟,只需添加Options.configureKeyVault,就可以像下面这样检索secret:
var credential = new DefaultAzureCredential();
var config = new ConfigurationBuilder().AddAzureAppConfiguration(options => {
options.Connect(
new Uri("https://app-cf.azconfig.io"), credential
).Select("*", "label");
options.ConfigureKeyVault(kv => {
kv.SetCredential(credential);
});
}).Build();
var test = config.GetValue<string>("secret_name");
但是在Python中,我没有找到任何方法可以在AzureAppConfigurationClient中添加KeyVault处理,当您试图检索KeyVault引用的secret时,您只需要得到字符串:
'{“uri”:“https://kv-name.vault.azure.net/secrets/secretname”}'
。
我已经“解决”了这个写作函数:
import json
from pathlib import Path
from azure.appconfiguration import AzureAppConfigurationClient
from azure.identity import DefaultAzureCredential
from azure.keyvault.secrets import SecretClient
def get_appcf_label(base_url: str, label: str) -> dict:
"""Get app configurations for specified label."""
credential = DefaultAzureCredential()
client = AzureAppConfigurationClient(base_url, credential)
filtered_listed = client.list_configuration_settings(
key_filter="*", label_filter=label
)
config = dict()
for item in filtered_listed:
if (
item.content_type
== "application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8"
):
url_parts = Path(json.loads(item.value)["uri"]).parts
vault_url = "//".join(url_parts[:2])
kv_secret = url_parts[-1]
kv_client = SecretClient(vault_url, credential)
secret_val = kv_client.get_secret(kv_secret).value
config.update({item.key: secret_val})
else:
config.update({item.key: item.value})
return config
我不喜欢这个解决方案,尤其是字符串解析,尽管它很有效,但我想不出更好的方法。你有什么想法如何以更聪明/更干净的方式做这件事吗?
我想这应该是最简单的办法。此外,您应该查阅信息以获得承载令牌
。
RESR API--Web应用程序-获取应用程序设置密钥库引用
您可以在代码中使用导入请求
。下面的帖子可以告诉你如何发送帖子请求。
这个Python脚本被部署为从Azure函数应用程序运行在Linux消费计划上,这个脚本被期望从Azure密钥库中读取机密。 除了代码部署之外,还进行了以下配置 null 此错误说明应用程序没有密钥库上的机密获取权限,但如上所述,将角色分配给在密钥库上具有阅读器角色的功能应用程序。 配置中可能出现的问题是什么?如何缓解?
我设置了一个简单的应用程序服务来使用/测试Azure应用程序配置 Azure应用程序配置包含2个非密钥库条目和1个密钥库引用条目 使用正确的访问策略设置密钥库,允许获取/列出Azure应用程序配置的托管服务标识的机密 当我在Azure App Config中添加指向KeyVault的条目时,应用程序将不会启动(HTTP错误500.30-ANCM进程内启动失败),日志显示此异常: 异常信息:Micr
在运行net472 web应用程序的Azure应用程序服务中,我从密钥库访问证书,如下所示: 这一行抛出一个错误
问题内容: 我尝试从KeyStore获取密钥。我通过Keytool创建了一个密钥库: keytool -genkeypair -dname“ cn = Mark Jones,ou = JavaSoft,o = Sun,c = US” -alias business2 -keypass abcdtest -keystore C:\ workspace \ XMLSample \ keystore \
我在过去为Azure函数使用了很多秘密,现在我试图使用一个密钥,RSA加密,4096位。这是一个私有的PuTTy.ppk键,我已经将其导出为。pem类型以满足Azure的要求。我有一个Python 3.7应用程序,我已经在其中部署了所需的功能,并尝试在应用程序设置中引用所需的键,下面的语句是: @microsoft.keyvault(secreturi=https://{thevault-addr
我有一个web应用程序,我想使用Spring Boot的服务器配置。这两个应用程序都位于本地主机上。我从头开始创建了前两个应用程序,它们一起工作,但当我使用具有许多依赖项(不仅仅是云配置和web依赖项)的客户端时,它就不再工作了。我怎么知道?我在服务器的属性文件中有一个变量,我试图在我的客户机中用@Value(“${atena}”)来使用它,错误出现在java中。lang.IllegalArgum