问题标签 [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.

0 投票
2 回答
638 浏览

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

莫名其妙,我换VisualStudioCredentialAzureCliCredential又试了。我已经安装了最新版本的 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)

问题

感谢您到目前为止的阅读(结果是一篇很长的帖子)。总而言之,这是我的问题:

  1. 在前 3 个案例中我做错了什么?
  2. 为什么ChainedTokenCredential执行失败ManagedIdentityCredential并且没有继续下一个?我误解了 的实施ChainedTokenCredential吗?
  3. 为什么VisualStudioCredential执行失败并not supported platform出现错误?
  4. 为什么在确定安装并且我已登录时AzureCliCredential执行失败并出现错误。Azure CLI not installed
  5. 最后,没有做任何特别的事情,为什么DefaultAzureCredential实施有效?另外,它选择了哪些凭据?

对此的任何见解都将受到高度赞赏。

0 投票
1 回答
681 浏览

.net - Azure.Identity 库(例如 DefaultAzureCredential)是否支持令牌缓存?

我还没有找到有关Azure.Identity库是否缓存令牌的任何详细信息。我想知道它是否正确缓存每个范围的令牌并在到期前更新它,或者我必须自己编写这个功能。

也欢迎任何指向正确文档的指针。

图书馆里有一个SharedTokenCacheCredential,但我相信它是别的东西。出于性能原因,我正在询问内存缓存 - 每次都不会获得新令牌。

0 投票
1 回答
52 浏览

azure - [AuthBot]向 azure bot Web 应用添加身份验证

我正在尝试向我的机器人添加一些身份验证,我按照本文链接进行操作,并使用 AuthBot 示例对其进行测试

1-创建天蓝色身份提供者

2-在 Azure Active Directory 2 提供程序的 azure bot 应用程序服务中创建连接

3-运行机器人并测试它

它运行良好,当我第一次尝试使用它时,它会将我重定向到此页面

我想允许用户请求访问批准,我点击了这个文档链接 ,但没有任何改变,机器人 stile 将我重定向到这个页面。有什么遗漏吗?

0 投票
2 回答
1035 浏览

python - 更改密码后 Azure ChainedTokenCredential 失败

更改密码后, AzureChainedTokenCredential本地开发失败。我已经使用ChainedTokenCredential几周来ManagedIdentityCredential在 Azure 中进行身份验证以及DefaultAzureCredential对我的 Function App 进行本地测试。一切都按执行进行。这是一个在 Azure 中有效但在本地无效的代码示例。

上周我不得不更改我的密码,从那以后我收到以下错误。

我试图解决这个问题的事情:

  1. 登录和注销 VSCode Azure 扩展
  2. 登录和退出az cli
  3. az account clear
  4. 清除浏览器缓存。
  5. 重新启动 PC 和 VSCode。
  6. 清除 VSCode 缓存
    • C:\Users\<user>\AppData\Roaming\Code\Cache
    • C:\Users\<user>\AppData\Roaming\Code\CacheData

我正在使用 Azure 扩展“附加到 Python 函数”来运行调试器。我不确定如何DefaultAzureCredential获得我的证书。我相信它存储在本地,因为在未登录 Azure 扩展的情况下运行调试器时出现相同的错误。我以为DefaultAzureCredential会使用我的 Azure 扩展登录来进行身份验证,但我不确定。

任何帮助,将不胜感激!

0 投票
0 回答
146 浏览

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吗?如果是 - 我如何将它们用于 SPN
  • credential(AzureSasCredential credential)- 看起来很有希望,但对于我的 SPN,我找不到任何关于如何首先创建 SAS 的提示。

提前感谢您的支持:)

0 投票
2 回答
291 浏览

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 模块的依赖项是什么。

0 投票
1 回答
184 浏览

azure - AzureAppConfiguration 不适用于 Azure.Identity.TokenCredentials

我尝试使用以下代码将 AzureAppConfiguration 添加到我的 dotnet 核心 Web 应用程序:

这失败并出现以下错误:

Azure.RequestFailedException:服务请求失败。状态:403(禁止)

如果我确实使用连接字符串连接到它AzureAppConfiguration本身,它确实有效:

我在本地机器上运行它,所以默认凭据返回我的 AzureCLI 凭据。凭着同样的信用,我可以奔跑

并检索所有值。

0 投票
0 回答
17 浏览

javascript - Azure Idendity 平台重定向到主页,ensureAuth 失败

我正在尝试为我的(非常简单的)CRUD 应用程序实施身份验证步骤。所以这就是想法:连接到 localhost:8000/ 时,您需要单击登录按钮,这将提示您使用 Microsoft 帐户登录。然后您应该被重定向到 localhost:8000/feed。但它只是将我重定向到 localhost:8000。第二个问题是,我可以看到 MongoDB 存储了一个 Cookie。如果我访问 localhost:8000/auth/logout 它会删除它。所以它有效。但我仍然无法访问 localhost:8000/feed,因为 ensureAuth 不会让我访问。

确保身份验证:

}

认证/登录路径:

认证/注销路线:

进料路线:

特快专场:

如果您需要大量代码,请联系我。我将不胜感激任何形式的支持。

0 投票
1 回答
406 浏览

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 密钥保管库并进行身份验证?

0 投票
1 回答
299 浏览

azure - Microsoft Azure 中角色分配和 appRoleAssignments 之间的区别

Microsoft Azure 中的角色分配和 appRoleAssignments 有什么区别?

https://docs.microsoft.com/en-us/azure/role-based-access-control/role-assignments-list-rest

https://docs.microsoft.com/en-us/graph/api/serviceprincipal-list-approleassignments?view=graph-rest-1.0&tabs=http