问题标签 [azure-managed-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 回答
1016 浏览

azure - 如何使用 CLI 将现有用户分配的托管标识添加到 Azure 中的新资源组

下面是场景:我们在资源组“A”中有一个用户分配的托管标识,我们正在创建一个新的资源组“B”,并希望将资源组 A 中的 MSI 添加为 B。

我们如何通过 Azure CLI 实现这一目标?

0 投票
2 回答
1670 浏览

azure - 获取启用 MSI 的 Web 应用程序的访问令牌

我在 Azure 中托管了一个 Web API 项目,作为启用了托管服务标识的 Web 应用程序(所以我不需要应用程序注册,对吗?):

在此处输入图像描述

现在我需要获取一个令牌来访问我的 API,以便我可以在 POSTMAN 中使用它:

这给了我

获取令牌请求返回 http 错误:400 和服务器响应:{"error":"invalid_resource","error_description":"AADSTS50001: 名为 https://mytenant.onmicrosoft.com/d3a219e0-bbbf-496b-a4a4-b9ca485c5a52的应用程序 在名为 xxxxxxxx-xxxx-xxxx-af31-xxxxxxxxxx 的租户中找不到。如果租户管理员未安装应用程序或租户中的任何用户未安装应用程序,则可能会发生这种情况。您可能已发送身份验证请求给错误的租户。

如果我尝试使用对象 id63d571cf-79bf-405d-8304-a31fb64cb953而不是应用程序 id 作为资源 uri 的一部分,我会得到同样的错误。

我究竟做错了什么?

0 投票
4 回答
3379 浏览

singleton - 带有 AdlsClient 的 Azure MSI:访问令牌已过期

我正在使用 Azure 托管服务标识 (MSI) 创建静态(单例)AdlsClient。

然后,我在 Functions 应用程序中使用 AdlsClient 写入 Data Lake 存储。

该应用程序可以正常工作大约一天,但随后停止工作,我看到了这个错误。

显然,MSI 令牌每天都会在没有警告的情况下过期。

不幸的是,MSI 令牌提供程序没有随令牌返回到期日期,因此我无法检查令牌是否仍然有效。

处理这个问题的正确方法是什么?任何帮助表示赞赏。

这是我的代码。

谢谢!

0 投票
3 回答
3261 浏览

triggers - 如何在 Azure Function 中使用 Azure Managed Identity 通过触发器访问 Service Bus?

我在 Azure 中创建了一个 ServiceBus 命名空间,以及一个主题和一个订阅。我还有一个简单的 Azure 版本 1 函数,该函数在 ServiceBus 中触发接收到的主题,如下所示:

当我使用主题的共享访问策略在函数应用程序设置中定义连接字符串时,该函数很好地触发了 ServiceBus 中的主题,如下所示:

现在,我想使用托管服务标识 (MSI) 来访问 ServiceBus,而不是共享访问密钥。根据这个(https://docs.microsoft.com/en-us/azure/active-directory/managed-service-identity/services-support-msi)应该是可能的,除非我误解了一些东西。我还没有设法让它工作。

我尝试的是

  • 在 Azure 门户中为我的函数设置托管服务标识“开启”
  • 为 Azure 门户的 ServiceBus 访问控制部分中的函数赋予所有者角色
  • 像这样设置 MyFunction 的连接字符串:Endpoint=sb://MyNamespace.servicebus.windows.net/

该功能在此设置中未触发,所以我错过了什么或我做错了什么?我将不胜感激任何可以帮助我进一步发展的建议。谢谢。

0 投票
1 回答
824 浏览

azure - 将 Azure Active Directory 权限分配给启用 MSI 的 Azure 功能的权限不足?

我们在同一个目录中有两个 azure 资源。Azure API 管理和 Azure 函数背后的一组 webAPI API。我们希望 azure 函数能够调用 API。我们已在 Azure 函数上启用 MSI,如如何为应用服务和 Azure 函数使用托管标识中所述。我们在 AAD 中为 API 创建了应用注册,创建了要访问的角色权限。在使用应用程序权限使用 Azure AD 托管服务标识调用您的 API之后,我们在尝试将权限/角色分配给 azure 函数时遇到错误:在 powershell 中:

给我们一个权限错误,即使 AAD 管理员(我认为是 AAD DC 管理员的成员)运行它。有没有人遇到过这个?为什么这会引发权限错误?我们已经验证了 3 个不同的人的 id 是正确的。

0 投票
1 回答
126 浏览

azure-managed-identity - 如何将托管标识添加到开发测试实验室 VM?

我想在我使用 DevTest Labs 创建的开发 Windows VM 上开发和测试 MSI。

直接在身份(预览)上进入虚拟机我可以更改设置,但Save一直被禁用。

0 投票
1 回答
1426 浏览

azure-service-fabric - 如何将托管服务标识添加到托管在 Azure VM Scaleset 或 Service Fabric 中的容器?

我想利用 MSI 例如访问托管在 Azure Service Fabric VMSS 中的容器内托管的应用程序(特别是对我而言:Azure Functions 运行时)中的 KeyVault。

我需要做什么才能实现这一目标?

0 投票
1 回答
2258 浏览

c# - C# 中的 Azure 托管服务标识以连接到 Azure SQL Server

我正在运行一个关于如何设置对 Azure SQL 的 MSI 访问的 Microsoft 文档教程。本文: https ://docs.microsoft.com/en-gb/azure/app-service/app-service-web-tutorial-connect-msi

我成功地从我的 Azure Web 配置管理器中获取了连接字符串

我在我的控制器中使用

当我最终拨打电话时,例如:

我收到一个错误 System.Data.Entity.Core.EntityException:“底层提供程序在打开时失败。” “SqlException:用户 'NT AUTHORITY\ANONYMOUS LOGON' 登录失败。”

即使我这样做也会发生这种情况(https://docs.microsoft.com/en-gb/azure/app-service/app-service-managed-service-identity#obtaining-tokens-for-azure-resources

并在我的 SqlConnection 中填充适当的访问令牌。

任何帮助,将不胜感激

0 投票
1 回答
680 浏览

c# - .NetCore API 无法使用 MSI 从 Azure CLI 获取令牌

我有几个 API,我正在将访问 Azure SQL 数据库的方式从简单的凭据更改为利用 Azure Active Directory 的托管服务标识模型。

我对旧的 .Net API 执行此操作没有问题,但我无法让新的 .NetCore API 执行相同的操作。我已经读过.NetCore 尚不支持这一点的可能性,但我不清楚这是否准确/真实。

我运行这段代码:

并得到这个错误:

我不希望这可以通过 MSI 工作,因为我在本地运行它,但它应该通过方法 2 工作


*更新找到这篇相关文章:https ://github.com/Azure/azure-sdk-for-net/issues/3933

0 投票
1 回答
235 浏览

c# - Azure 的 DnsManagementClient 如何与 MSI 配合使用?(AzureServiceTokenProvider)

我正在尝试在 azure 中更新 TXT 记录。我在我的本地 VS2017 调试环境中执行此操作,但 MSI 似乎无论如何“工作”,因为它知道我是谁。但是“GetAsync”调用失败告诉我我没有权限。

我究竟做错了什么?

GetAsync 调用抛出: Microsoft.Rest.Azure.CloudException:'具有对象 id '(我的对象 id)'的客户端'(我的电子邮件地址)'没有执行操作 'Microsoft.Network/dnsZones/TXT/read 的授权' 超出范围 '/subscriptions/(我的订阅 id)/resourceGroups/(我的资源组)/providers/Microsoft.Network/dnsZones/(我的域)/TXT/_acme-challenge'。

知道为什么吗?

我已经让自己的贡献者访问 TXT 记录。我什至以订阅所有者的身份完成了这一切。然而我仍然得到一个例外,告诉我我没有被授权。

我还仔细检查了订阅/对象/域/txt 名称 - 它们是正确的。

帮助 :)

编辑:经过一段时间的“等待期”,电话突然开始成功。所以要测试...我创建了一个新资源,尝试访问它(但失败),给自己访问权限,尝试再次访问它(并再次失败),然后等了一会儿再尝试,它成功了。知道为什么会这样吗?

编辑:(5个月后)。找到了正确的答案,在这里:https ://docs.microsoft.com/en-us/azure/role-based-access-control/troubleshooting#rbac-changes-are-not-being-detected

在角色分配生效之前,最多有 30 分钟的延迟。