问题标签 [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 投票
1 回答
237 浏览

azure-resource-manager - 使用 ARM 设置使用 MSI 的应用服务访问

密钥保管库文档中列出了两个属性:

  • objectId string 是 保管库的 Azure Active Directory 租户中的用户、服务主体或安全组的对象 ID。对于访问策略列表,对象 ID 必须是唯一的。
  • applicationId string 否 代表委托人发出请求的客户端的应用程序 ID - 全局唯一标识符

问题:

  • 我应该为 MSI principalId 使用 objectId 吗?
  • 是使用 MSI 时 applicationId redudant 的概念。MSDN 上有太多文档,我很难弄清楚要采用哪种方法,以及在使用 MSI 时 applicationId/secrets 的概念是否是多余的。
  • 是否需要租户 ID?
0 投票
1 回答
1110 浏览

azure-managed-identity - 使用 MSI 到 EntityFramework 的应用服务

我正在尝试将 MSI 改造为现有应用程序。

原始应用的 DbContext 仅使用在 web.config 中找到同名 ConnectionString 的构造函数。

我已将其修改为使用 DbConnectionFactory 来注入 AccessToken。

它调用的类如下所示:

哪个调用

上面的结果是,当用调试器跟踪它时,它得到

然后永远挂起。

注意:我正在使用个人计算机,未加入组织域 - 但我的个人 MSA被邀请加入组织域。

诚然,我已经中断了几年的开发,并且挂起可能是由于在 await 周围犯了一个错误(总是隐含地理解这一点很粗糙)......但是在试图弄清楚这一点时,并且文档非常稀少,希望得到有关上述是否是使用 MSI 的预期方法的反馈。

我在想:

  • 部署到 Azure 时,我们可以告诉 ARM 创建 Identity —— 开发时,我们如何告诉本地机器使用 MSI?
  • 如果在开发机器上,连接字符串是到本地数据库的,并且无论如何我都会创建并添加令牌,它会忽略它还是引发异常。
  • 这有点超出了讨论 MSI 的范围,但我以前从未创建过要在 DbContext 中使用的 dbConnection。有谁知道“拥有”连接的 DbContext 的优缺点?我假设在关闭 dbcontext 时拥有并关闭连接会更明智。

基本上......这是全新的,所以希望得到任何关于让它工作的建议——能够在没有秘密的情况下进行部署的概念会很棒,并且真的很想让这个演示工作。

非常感谢!

0 投票
1 回答
73 浏览

c# - Azure MSI 是否支持 azure 调度程序?

当前 Azure MSI 是否支持 azure 调度程序?或者 azure MSI 未来是否有计划支持 Azure Scheduler?

如果 Azure MSI 确实支持 azure 调度程序,请提供一些 C# 实现链接,因为我在 Web 上看不到任何此类可用信息。

Azure 资源的托管服务标识 (MSI)

上面的链接没有提到 azure scheduler 支持。

0 投票
2 回答
1804 浏览

python - 使用托管服务标识 (MSI) 在 VM 中验证 python 应用程序

我正在尝试使用以下链接中提供的 MSI 示例:

https://docs.microsoft.com/en-us/python/azure/python-sdk-azure-authenticate?view=azure-python#mgmt-auth-msi

为此,我创建了一个 linux VM,在其上安装了 MSI 扩展并在 python 应用程序中运行上述代码,当我运行该 python 应用程序时,我收到以下错误:

代码:

0 投票
1 回答
4180 浏览

azure - Azure MSI:用户“”登录失败

我正在尝试使用 MSI 令牌从应用服务连接到数据库,并且正在

当我使用 ARM 部署应用服务时,我生成了一个输出,确保它创建了一个服务主体:

我还检查了 Kudu 的环境变量并具有:

我在 Azure 门户中提供了一个连接字符串,如下所示:

作为越位,MSI(理论上)允许人们从源代码剪切/粘贴到公共论坛而不用担心留下秘密,这不是很酷吗?!只是说......现在......如果我能让它工作!

我已将主体作为所有者添加到数据库中...

但我仍然得到:

我还应该尝试什么?

谢谢你。

@juunas:正在使用以下方式添加令牌:

更新:从实体框架获得一些进展(不完全确定发生了什么变化)

Persist Security Info = True根据网上的几个建议添加了,但没有太大变化。

根据@evilSnobu,我终于得到了追踪并捕获了令牌:

WHich 使用 jwt.io 解码给出:

在我未经训练的眼睛看来,哪个很棒(?)。但我仍然得到:

这似乎来自与 EntityFramework 的启动计划检查过程的更深层次的消息联系:

非常感谢任何和所有建议。谢谢!

0 投票
1 回答
368 浏览

azure-managed-identity - 是否可以找出运行 MSI 本地端点的端口?

是否可以使用脚本(PS 和 Shell 脚本)从 VM 内部找出运行 MSI 本地端点的端口?

0 投票
3 回答
2332 浏览

powershell - 无法在启用 MSI 的函数应用中使用 PowerShell 连接到 Azure SQL

最近创建了一个正在运行的函数应用程序。函数应用托管 C# 和 PowerShell 函数,该函数在启用 MSI 的情况下按预期工作

下面是 PowerShell 代码,Github中的完整代码

这两个函数实现相同的逻辑:

  1. 从提供者处检索 Auth 令牌
  2. 使用令牌连接到 Azure SQL 服务器

但是,当使用 PowerShell 函数时,第一步有效,但在第二步尝试建立连接时,出现以下错误:

执行函数时出现异常:Functions.dm_pdw_exec_sessions。Microsoft.Azure.WebJobs.Script:PowerShell 脚本错误。System.Management.Automation:使用“0”参数调用“Open”的异常:“用户'NT AUTHORITY\ANONYMOUS LOGON'登录失败。”。.Net SqlClient 数据提供者:用户“NT AUTHORITY\ANONYMOUS LOGON”登录失败

我在过去看到过没有为 Azure SQL 服务器(用户不在主服务器中)正确启用 AAD 身份验证,但这里不是这种情况。

0 投票
2 回答
5223 浏览

azure - 使用 MSI 从本地 Service Fabric 群集访问 Key Vault

我想通过托管服务标识 (MSI) 从我的 Service Fabric 应用程序访问 Key Vault。我已在 Azure 门户中的虚拟机规模集上启用 MSI,并授予它访问我的 Key Vault 资源的权限。这就像云中的魅力一样。但是,我的本地开发环境存在问题。

据我了解,我可以授予自己对 Key Vault 的访问权限并az login在 Azure CLI 中运行。唉,这在本地 Service Fabric 群集中运行应用程序时不起作用。我认为这是因为本地集群在 NETWORK SERVICE 帐户下运行。

如何使用 MSI 从本地群集访问 Key Vault?

0 投票
2 回答
2054 浏览

azure-functions - 使用 MSI 从 Azure 函数将文件写入 Azure Data Lake 时出错

我正在尝试创建一个写入 Azure Data Lake Store 的 Azure 函数。我正在使用托管服务身份来管理身份验证内容。

我在函数应用程序上启用了 MSI。我还启用了 Function 应用程序以访问所需的 Data Lake Store。我正在使用以下代码获取令牌并写入 ADL。我错过了什么吗?

我的代码因以下错误而失败。

0 投票
2 回答
543 浏览

ef-code-first - MSI 可以与 EF CodeFirst 一起使用吗?

我已经坚持了很长一段时间,没有运气自己推进它。

我正在尝试使用 MSI 令牌从 Azure 应用服务连接到 EF CodeFirst 托管数据库。

当我使用 ARM 部署应用服务时,我生成了一个输出,确保它创建了一个服务主体:

在 Kudu 中,环境变量显示它正在安装:

我在 Azure 门户中提供了一个连接字符串,如下所示:

我已将主体作为所有者添加到数据库中。

令牌被添加到 DbContext 中,如下所示:

正在使用以下方式添加令牌:

启用跟踪后,令牌为:

使用 jwt.io 解码的结果:

Persist Security Info = True根据网上的几个建议添加了,但这并没有检测到。

我得到的错误是:

有没有人使用 CodeFirst、Migrations 和 MSI 连接到数据库?在这一点上,在真正被卡住了几个星期之后,我开始怀疑这是否可能。

感谢您的帮助——即使只是证明它可以工作,对于初学者来说。