从 azure blob 存储(静态网站)访问 azure key vault
Access azure key vault from azure blob storage (static website)
我有一个 blob 存储,用作网站。
此 blob 具有系统分配的托管标识。
此身份已作为访问策略添加到密钥保管库。
所以实际上它应该能够访问这些秘密。
但是当我按照 microsoft documented 的方式尝试时,我得到了一个错误。
const getSecret = async () => {
var credential = new DefaultAzureCredential({
ManagedIdentityClientId: "<blob-id>",
} as DefaultAzureCredentialOptions)
const keyVaultName = "<key-vault-name>"
const url = "https://" + keyVaultName + ".vault.azure.net"
const client = new SecretClient(url, credential)
const secret = await client.getSecret("function-key")
}
我收到错误消息
Error: DefaultAzureCredential is not supported in the browser. Use InteractiveBrowserCredential instead.
at Module.60308 (defaultAzureCredential.browser.js:5:34)
这可能吗?
谢谢!
- 请检查这个 azure-sdk-for-js issue 根据哪个,
交互式凭据是 recommended 而不是默认的
credentials.And 对于在浏览器中 运行 的客户端应用程序,
InteractiveBrowserCredential
是唯一的凭证类型
supported.Please 检查这个 github reference
- 因此对于 Node.js 的交互式凭据,如果 clientId 是
前提是,需要将 Azure AD 应用配置为具有
"Mobile and desktop applications"
作为 redirect
端点而不是 web。看
set up redirect uri
见DefaultAzureCredential and examples
同样根据DefaultAzureCredential Class | Microsoft Docs
如果启用,将按顺序尝试以下凭据类型:
EnvironmentCredential >ManagedIdentityCredential >
SharedTokenCacheCredential > VisualStudioCredential >
VisualStudioCodeCredential > AzureCliCredential>
AzurePowerShellCredential >InteractiveBrowserCredential: uses browser to auth users - not enabled by default. Pass true to the DefaultAzureCredential to enable it.
我有一个 blob 存储,用作网站。 此 blob 具有系统分配的托管标识。
此身份已作为访问策略添加到密钥保管库。 所以实际上它应该能够访问这些秘密。
但是当我按照 microsoft documented 的方式尝试时,我得到了一个错误。
const getSecret = async () => {
var credential = new DefaultAzureCredential({
ManagedIdentityClientId: "<blob-id>",
} as DefaultAzureCredentialOptions)
const keyVaultName = "<key-vault-name>"
const url = "https://" + keyVaultName + ".vault.azure.net"
const client = new SecretClient(url, credential)
const secret = await client.getSecret("function-key")
}
我收到错误消息
Error: DefaultAzureCredential is not supported in the browser. Use InteractiveBrowserCredential instead.
at Module.60308 (defaultAzureCredential.browser.js:5:34)
这可能吗?
谢谢!
- 请检查这个 azure-sdk-for-js issue 根据哪个,
交互式凭据是 recommended 而不是默认的
credentials.And 对于在浏览器中 运行 的客户端应用程序,
InteractiveBrowserCredential
是唯一的凭证类型 supported.Please 检查这个 github reference - 因此对于 Node.js 的交互式凭据,如果 clientId 是
前提是,需要将 Azure AD 应用配置为具有
"Mobile and desktop applications"
作为redirect
端点而不是 web。看 set up redirect uri
见DefaultAzureCredential and examples
同样根据DefaultAzureCredential Class | Microsoft Docs 如果启用,将按顺序尝试以下凭据类型:
EnvironmentCredential >ManagedIdentityCredential > SharedTokenCacheCredential > VisualStudioCredential > VisualStudioCodeCredential > AzureCliCredential> AzurePowerShellCredential >InteractiveBrowserCredential:
uses browser to auth users - not enabled by default. Pass true to the DefaultAzureCredential to enable it.