使用VS Code在本地调试Azure功能时无法进行身份验证

阿尔桑罗

在Python中有一个Azure函数,可以从Key Vault中获得秘密Azure功能是配置托管身份应用程序服务的一部分,因此我没有服务主体。要访问Key Vault,我正在使用azure身份库和DefaultAzureCredential类。

我的问题是使用此功能进行本地调试时,未检测到凭据我知道调试器使用其他外壳程序,因此未设置登录环境变量。我尝试在launch.json中指定“ env”属性,但收到警告,不允许我添加它,如果将其重命名为“ environment”,则同样。我还尝试使用InteractiveBrowserCredential类使用我的用户帐户登录,这是一种解决方法,但是随后由于不正确而无法访问Key Vault时,凭据被驳回。

如何设置VS Code本地调试环境以与App Service的托管身份一起使用?

这是我的代码的例外:

import os
import logging
import azure.functions as func
from azure.storage.blob import BlobServiceClient
from azure.identity import DefaultAzureCredential, UsernamePasswordCredential
from azure.keyvault.secrets import SecretClient

def main(req: func.HttpRequest) -> func.HttpResponse:
    vault_url = os.environ['KeyVaultUrl']
    credential = DefaultAzureCredential()
    secret_client = SecretClient(vault_url=vault_url, credential=credential)
    access_key = secret_client.get_secret(os.environ['StorageSecretName'])

谢谢

Jim Xu

如果您要DefaultAzureCredential在本地运行该功能,则需要在中添加这些设置local.settings.jsonjson文件用于存储应用程序设置,连接字符串和本地开发工具使用的设置。有关更多详细信息,请参考此处此处

例如

local.settings.json

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "",
    "FUNCTIONS_WORKER_RUNTIME": "python",  
    "AZURE_CLIENT_ID": "42e***522d988c4",
    "AZURE_CLIENT_SECRET": "Gbx2eK***ClJDfQpIjoae:",
    "AZURE_TENANT_ID": "e4c9ab4e-b***230ba2a757fb"
  }
}

import logging
import azure.functions as func
import os
from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential

async def main(req: func.HttpRequest) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')
    
    vault_url = 'https://testsql.vault.azure.net/'
    credential = DefaultAzureCredential()
    secret_client = SecretClient(vault_url=vault_url, credential=credential)
    access_key = secret_client.get_secret('DBConnectionString')
    return func.HttpResponse(access_key.value,
        mimetype="application/json",)
    

在此处输入图片说明 在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Asp.Net Core Web应用程序中使用EasyAuth对Azure App Service上的AAD进行身份验证时,无法填充ClaimsPrincipal

无法使用HostAPD进行身份验证

是否支持使用MSI进行Azure功能到功能身份验证

使用Postman对Azure功能执行Azure AD身份验证

是否可以使用Azure Active Directory身份验证在本地调试Azure功能?

使用本地文件进行Web身份验证

使用Azure Active Directory的Azure功能身份验证

在Web应用程序中对用户进行身份验证时,对用户进行身份验证以使用Azure功能

如何使用函数身份验证或Azure AD服务主体对Azure函数进行身份验证

通过pouchDB使用Api Key访问Cloudant时无法进行身份验证

无法使用远程服务器在本地进行身份验证

Azure DevOps服务-使用本地ADFS进行身份验证

通过Microsoft Azure进行身份验证时如何使用nativeclient重定向URI?

使用本地存储进行身份验证检查时,NextJS屏幕闪烁

无法使用git进行身份验证

无法使用Windows身份验证向SMTP服务器进行身份验证

在本地和Azure上使用Active Directory进行身份验证

使用本地unix用户进行HTTPS身份验证

无法使用 Azure Active Diectory Bearer 令牌对 Azure Functions 进行身份验证

从 Azure Kubernetes 服务使用 Azure 容器注册表进行身份验证时的问题

无法在简单的 HTML、JS 页面上使用 firebase 身份验证进行身份验证

从 Azure Functions 到 Azure SQL DB 进行身份验证时使用 Azure Active Directory Interactive

Web 身份验证:无法使用指纹进行身份验证

403 服务器在使用soapui 获取azure 存储数据时无法对请求进行身份验证

使用 azure java sdk 对 Azure 进行身份验证

无法使用 Azure 数据工厂通过 Azure SQL DB 的托管标识进行身份验证

使用passport.js进行身份验证时,如何从其余代码访问Passport“完成”功能?

无法使用 http Dart 包对 Azure DevOps Rest API 进行身份验证

使用 Azure 进行 HMAC 身份验证