问题标签 [azure-identity]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
azure - 在获取 Azure Key Vault 的令牌时,尝试从令牌凭据的所有变体中找出意义
我正在使用 .Net 5 构建 Web API。Web API 受 Azure AD 保护,可由单个租户访问。Web API 将连接到其他 Azure 资源(存储、Cosmos DB 等),这些资源的连接字符串作为机密存储在 Azure Key Vault 中。
我的目标是在 API 启动时从 Azure Key Vault 获取这些连接字符串(秘密),并使用它们连接到这些资源。当 Web API 部署到生产环境时,它将managed identity
用于连接到 Key Vault 并获取机密。在开发过程中,我想使用其他一些机制来连接并获取秘密。我不想为此创建Service Principal
和使用客户端 ID/客户端密码。
我想知道在开发过程中如何实现连接,那时我发现了获取令牌的不同机制。但是,当我使用它们时,我遇到了许多问题,现在我对使用它们感到困惑。
1. ChainedTokenCredential
在研究的过程中,我遇到了Secretless Development from Local to Cloud with the New Azure SDKs, Project Tye, and Kubernetes
视频,随后memealyzer
在我了解的地方进行了项目ChainedTokenCredential
。根据我的理解,您可以链接多个令牌凭据,SDK 将尝试连接到每个令牌凭据,直到成功。这对我来说听起来很完美,我最终实现了类似于下面的代码:
根据我的理解,如果我在 Visual Studio 中运行上面的代码,代码应该首先尝试使用ManagedIdentityCredential()
(这将失败)然后VisualStudioCredential()
(这应该成功,因为我使用有权访问的帐户登录到 Visual Studio Key Vault 机密。
然而令我惊讶的是,代码引发了以下异常:
当我在本地运行代码时,异常是有意义的。但是,据我了解,如果出现异常,SDK 将自动尝试链中的下一个凭据提供程序。就我而言,如果通过失败VisualStudioCredential
获取令牌,我希望代码自动尝试。ManagedIdentityCredential
然而,这并没有发生。
2.VisualStudioCredential
接下来,我注释掉ManagedIdentityCredential()
并只是VisualStudioCredential
认为考虑到我使用正确的凭据登录到 Visual Studio,它会起作用。
但是,这也因以下错误而失败:
3. AzureCliCredential
莫名其妙,我换VisualStudioCredential
了AzureCliCredential
又试了。我已经安装了最新版本的 Azure CLI (2.21.0),并az login
在外部终端和 Visual Studio 内的终端中使用命令登录到 Azure CLI。
但是,这也因以下错误而失败:
考虑到安装了 Azure CLI 并且我在那里登录,这没有任何意义。
4. 默认AzureCredential
极度困惑和沮丧,我最终决定使用DefaultAzureCredential
认为这是我最后的手段。但是我没有在 Azure AD 等中创建任何应用程序注册,只是执行了以下代码:
现在在这里,我期待代码失败,但令我惊讶的是,代码有效(我猜是 Azure Identity 的奥秘 :))并且我能够获得秘密。我想知道为什么上面的代码有效以及它选择了哪个令牌凭据(考虑到我都使用相同的凭据登录到 Visual Studio 和 Azure CLI)。
开发环境
- IDE:
Visual Studio version 8.9.4 (build 25)
- 操作系统:
macOS Big Sur (11.2.3) [Apple Silicon]
- 开发工具包:
Azure.Identity (version 1.3.0)
问题
感谢您到目前为止的阅读(结果是一篇很长的帖子)。总而言之,这是我的问题:
- 在前 3 个案例中我做错了什么?
- 为什么
ChainedTokenCredential
执行失败ManagedIdentityCredential
并且没有继续下一个?我误解了 的实施ChainedTokenCredential
吗? - 为什么
VisualStudioCredential
执行失败并not supported platform
出现错误? - 为什么在确定安装并且我已登录时
AzureCliCredential
执行失败并出现错误。Azure CLI not installed
- 最后,没有做任何特别的事情,为什么
DefaultAzureCredential
实施有效?另外,它选择了哪些凭据?
对此的任何见解都将受到高度赞赏。
.net - Azure.Identity 库(例如 DefaultAzureCredential)是否支持令牌缓存?
我还没有找到有关Azure.Identity
库是否缓存令牌的任何详细信息。我想知道它是否正确缓存每个范围的令牌并在到期前更新它,或者我必须自己编写这个功能。
也欢迎任何指向正确文档的指针。
图书馆里有一个SharedTokenCacheCredential
,但我相信它是别的东西。出于性能原因,我正在询问内存缓存 - 每次都不会获得新令牌。
python - 更改密码后 Azure ChainedTokenCredential 失败
更改密码后, AzureChainedTokenCredential
本地开发失败。我已经使用ChainedTokenCredential
几周来ManagedIdentityCredential
在 Azure 中进行身份验证以及DefaultAzureCredential
对我的 Function App 进行本地测试。一切都按执行进行。这是一个在 Azure 中有效但在本地无效的代码示例。
上周我不得不更改我的密码,从那以后我收到以下错误。
我试图解决这个问题的事情:
- 登录和注销 VSCode Azure 扩展
- 登录和退出
az cli
az account clear
- 清除浏览器缓存。
- 重新启动 PC 和 VSCode。
- 清除 VSCode 缓存
C:\Users\<user>\AppData\Roaming\Code\Cache
C:\Users\<user>\AppData\Roaming\Code\CacheData
我正在使用 Azure 扩展“附加到 Python 函数”来运行调试器。我不确定如何DefaultAzureCredential
获得我的证书。我相信它存储在本地,因为在未登录 Azure 扩展的情况下运行调试器时出现相同的错误。我以为DefaultAzureCredential
会使用我的 Azure 扩展登录来进行身份验证,但我不确定。
任何帮助,将不胜感激!
azure-spring-boot - SDK for java 中的服务主体 (SPN) 用法,用于访问 Azure 存储
我是 Azure SDK for Java 的新手。到目前为止,我找不到关于如何:
- 要么:直接使用 SPN 凭据
- 或:使用 SPN 创建 SAS
访问 Azure 存储 (blob)。
BlobServiceClientBuilder
接受:
credential(StorageSharedKeyCredential credential)
- 仅适用于 Azure 存储中的实际密钥(目前不适合我 - 因为我需要使用 SPN)credential(TokenCredential credential)
- 不知道如何使用它;有关系ClientSecretCredential
吗?如果是 - 我如何将它们用于 SPNcredential(AzureSasCredential credential)
- 看起来很有希望,但对于我的 SPN,我找不到任何关于如何首先创建 SAS 的提示。
提前感谢您的支持:)
azure-powershell - 如何在 ADO 的自托管代理池中安装模块 Az.ManagedServiceIdentity
我想在 ADO 的自托管代理池中安装 Az.ManagedServiceIdentity。它是否需要访问权限以及 Az.Connect 和 Az.Account 命令。我想使用以下命令创建用户分配的身份 - New-AzUserAssignedIdentity -ResourceGroupName PSRG -Name ID1 [我指的是这个链接 - https://docs.microsoft.com/en-us/powershell/module/az.managedserviceidentity /new-azuserassignedidentity?view=azps-5.8.0#examples] 但是出现错误,该命令无法识别。此外,此命令也不适用于 Azure 代理池,并且我遇到了同样的错误。安装 Az.ManagedServiceIdentity 模块的依赖项是什么。
azure - AzureAppConfiguration 不适用于 Azure.Identity.TokenCredentials
我尝试使用以下代码将 AzureAppConfiguration 添加到我的 dotnet 核心 Web 应用程序:
这失败并出现以下错误:
Azure.RequestFailedException:服务请求失败。状态:403(禁止)
如果我确实使用连接字符串连接到它AzureAppConfiguration
本身,它确实有效:
我在本地机器上运行它,所以默认凭据返回我的 AzureCLI 凭据。凭着同样的信用,我可以奔跑
并检索所有值。
javascript - Azure Idendity 平台重定向到主页,ensureAuth 失败
我正在尝试为我的(非常简单的)CRUD 应用程序实施身份验证步骤。所以这就是想法:连接到 localhost:8000/ 时,您需要单击登录按钮,这将提示您使用 Microsoft 帐户登录。然后您应该被重定向到 localhost:8000/feed。但它只是将我重定向到 localhost:8000。第二个问题是,我可以看到 MongoDB 存储了一个 Cookie。如果我访问 localhost:8000/auth/logout 它会删除它。所以它有效。但我仍然无法访问 localhost:8000/feed,因为 ensureAuth 不会让我访问。
确保身份验证:
}
认证/登录路径:
认证/注销路线:
进料路线:
特快专场:
如果您需要大量代码,请联系我。我将不胜感激任何形式的支持。
c# - 从 WPF 应用程序 Net Core 3.1 连接到 Azure KeyVault
在我当前的 Net Core 3.1 WPF 项目中,我希望用户能够连接到 Azure Key Vault。我设置了一个密钥保管库,其中设置了一些访问策略或用户。
在文档中,我阅读了很多关于使用SecretClient(new Uri(_keyVaultUrl), new DefaultAzureCredential());
. 我不明白的是环境变量在这里有什么用处,因为它们仅限于设置它们的单台机器。上面的代码在我的代码中返回 Null 对象错误:
有没有一种直接的方法可以让我使用客户端密钥、应用程序 ID,然后使用 Azure 标识库连接到 azure 密钥保管库并进行身份验证?
azure - Microsoft Azure 中角色分配和 appRoleAssignments 之间的区别
Microsoft Azure 中的角色分配和 appRoleAssignments 有什么区别?
https://docs.microsoft.com/en-us/azure/role-based-access-control/role-assignments-list-rest