问题标签 [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.
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?
azure-managed-identity - 使用 MSI 到 EntityFramework 的应用服务
我正在尝试将 MSI 改造为现有应用程序。
原始应用的 DbContext 仅使用在 web.config 中找到同名 ConnectionString 的构造函数。
我已将其修改为使用 DbConnectionFactory 来注入 AccessToken。
它调用的类如下所示:
哪个调用
上面的结果是,当用调试器跟踪它时,它得到
然后永远挂起。
注意:我正在使用个人计算机,未加入组织域 - 但我的个人 MSA已被邀请加入组织域。
诚然,我已经中断了几年的开发,并且挂起可能是由于在 await 周围犯了一个错误(总是隐含地理解这一点很粗糙)......但是在试图弄清楚这一点时,并且文档非常稀少,希望得到有关上述是否是使用 MSI 的预期方法的反馈。
我在想:
- 部署到 Azure 时,我们可以告诉 ARM 创建 Identity —— 开发时,我们如何告诉本地机器使用 MSI?
- 如果在开发机器上,连接字符串是到本地数据库的,并且无论如何我都会创建并添加令牌,它会忽略它还是引发异常。
- 这有点超出了讨论 MSI 的范围,但我以前从未创建过要在 DbContext 中使用的 dbConnection。有谁知道“拥有”连接的 DbContext 的优缺点?我假设在关闭 dbcontext 时拥有并关闭连接会更明智。
基本上......这是全新的,所以希望得到任何关于让它工作的建议——能够在没有秘密的情况下进行部署的概念会很棒,并且真的很想让这个演示工作。
非常感谢!
c# - Azure MSI 是否支持 azure 调度程序?
当前 Azure MSI 是否支持 azure 调度程序?或者 azure MSI 未来是否有计划支持 Azure Scheduler?
如果 Azure MSI 确实支持 azure 调度程序,请提供一些 C# 实现链接,因为我在 Web 上看不到任何此类可用信息。
上面的链接没有提到 azure scheduler 支持。
python - 使用托管服务标识 (MSI) 在 VM 中验证 python 应用程序
我正在尝试使用以下链接中提供的 MSI 示例:
为此,我创建了一个 linux VM,在其上安装了 MSI 扩展并在 python 应用程序中运行上述代码,当我运行该 python 应用程序时,我收到以下错误:
代码:
azure - Azure MSI:用户“”登录失败
我正在尝试使用 MSI 令牌从应用服务连接到数据库,并且正在
当我使用 ARM 部署应用服务时,我生成了一个输出,确保它创建了一个服务主体:
我还检查了 Kudu 的环境变量并具有:
我在 Azure 门户中提供了一个连接字符串,如下所示:
作为越位,MSI(理论上)允许人们从源代码剪切/粘贴到公共论坛而不用担心留下秘密,这不是很酷吗?!只是说......现在......如果我能让它工作!
我已将主体作为所有者添加到数据库中...
但我仍然得到:
我还应该尝试什么?
谢谢你。
@juunas:正在使用以下方式添加令牌:
更新:从实体框架获得一些进展(不完全确定发生了什么变化)
我Persist Security Info = True
根据网上的几个建议添加了,但没有太大变化。
根据@evilSnobu,我终于得到了追踪并捕获了令牌:
WHich 使用 jwt.io 解码给出:
在我未经训练的眼睛看来,哪个很棒(?)。但我仍然得到:
这似乎来自与 EntityFramework 的启动计划检查过程的更深层次的消息联系:
非常感谢任何和所有建议。谢谢!
azure-managed-identity - 是否可以找出运行 MSI 本地端点的端口?
是否可以使用脚本(PS 和 Shell 脚本)从 VM 内部找出运行 MSI 本地端点的端口?
powershell - 无法在启用 MSI 的函数应用中使用 PowerShell 连接到 Azure SQL
最近创建了一个正在运行的函数应用程序。函数应用托管 C# 和 PowerShell 函数,该函数在启用 MSI 的情况下按预期工作
下面是 PowerShell 代码,Github中的完整代码
这两个函数实现相同的逻辑:
- 从提供者处检索 Auth 令牌
- 使用令牌连接到 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 身份验证,但这里不是这种情况。
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?
azure-functions - 使用 MSI 从 Azure 函数将文件写入 Azure Data Lake 时出错
我正在尝试创建一个写入 Azure Data Lake Store 的 Azure 函数。我正在使用托管服务身份来管理身份验证内容。
我在函数应用程序上启用了 MSI。我还启用了 Function 应用程序以访问所需的 Data Lake Store。我正在使用以下代码获取令牌并写入 ADL。我错过了什么吗?
我的代码因以下错误而失败。
ef-code-first - MSI 可以与 EF CodeFirst 一起使用吗?
我已经坚持了很长一段时间,没有运气自己推进它。
我正在尝试使用 MSI 令牌从 Azure 应用服务连接到 EF CodeFirst 托管数据库。
当我使用 ARM 部署应用服务时,我生成了一个输出,确保它创建了一个服务主体:
在 Kudu 中,环境变量显示它正在安装:
我在 Azure 门户中提供了一个连接字符串,如下所示:
我已将主体作为所有者添加到数据库中。
令牌被添加到 DbContext 中,如下所示:
正在使用以下方式添加令牌:
启用跟踪后,令牌为:
使用 jwt.io 解码的结果:
我Persist Security Info = True
根据网上的几个建议添加了,但这并没有检测到。
我得到的错误是:
有没有人使用 CodeFirst、Migrations 和 MSI 连接到数据库?在这一点上,在真正被卡住了几个星期之后,我开始怀疑这是否可能。
感谢您的帮助——即使只是证明它可以工作,对于初学者来说。