我发布这个问题是出于教育的原因。我还没有在Stack Overflow中找到它。我会在之后立即发布答案。
场景:
1.您使用Visual Studio时,有多个帐户(在VS的“帐户设置”面板中):
1.拥有您的VS许可证但未绑定到身份验证系统的帐户(具体为:Azure AD),您的项目在运行时所依赖的。
1.没有您的VS许可证的帐户,但以某种方式绑定到您的项目在运行时所依赖的Azure AD**。
1.(可能)提供其他服务的另一个帐户,例如您与github的连接。在企业环境中,该帐户可能与Azure AD帐户绑定。
1.您可以在Visual Studio中本地启动项目。
1.尽管在本地运行,但它是一个将通过使用正确的Azure AD身份验证连接到Azure中托管的一个或多个服务的项目。
1.您的项目似乎有正确的设置(连接字符串,secrets,tokens...)。身份验证应该有效!
1.但在服务示例化时(启动或查询调用等),一个或多个连接失败,并显示一条隐晦的错误消息:
未授权(401);(...)原因:(请求被Auth your-resource-in-azure阻止:提供的AAD令牌是由此数据库帐户不信任的颁发机构[aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee]颁发的。请确保令牌是由AAD租户[00000000-1111-2222-3333- 4444444444444]颁发的。
故障排除:
- 您仔细检查身份验证设置是否正确,
- 在Azure AD中(在Azure门户中),您可以检查用户是否属于正确的AD组,
- 您检查了是否不需要为用户进行PIM(甚至可能是临时的)以进行连接,
- 您仔细检查VS用于各种操作的浏览器是否存在相关问题。
(提醒:您可以在VS中配置至少3种不同的浏览器用途:
- IDE中使用的浏览器,用于在按住Ctrl键并单击超链接时打开超链接,
1.启动Web项目的浏览器:单击下拉菜单“播放”按钮,你使用启动项目,并单击“浏览...”
1.存储VS帐户身份验证的浏览器:工具--〉选项--〉环境--〉帐户--〉“嵌入式Web浏览器”与“系统Web浏览器”)
- 以下是关于如何修复浏览器相关问题的详细说明:https://blog.jongallant.com/2021/08/visual-studio-re-enter-credentials/
- 工具-〉选项-〉帐户
- 在“添加并重新验证帐户使用:”下拉列表中,选择“系统Web浏览器”
- 注销,然后重新登录。
- 重新启动Visual Studio
- 检查错误消息中的Guid后,您会注意到应作为正确权限的租户不是管理Azure AD的公司的租户;而是你另一个账户的租户只提供VS许可证。
如何查看租户指南:https://learn.microsoft.com/en-us/azure/active-directory/fundamentals/active-directory-how-to-find-tenant
根本问题很清楚:您不知道如何同时告诉VS使用许可证的正确帐户和包含Azure AD的租户的正确帐户。
1条答案
按热度按时间oogrdqng1#
您需要在“账户设置”面板中使用与租户绑定的账户作为“主”账户。
提供license的账号是否为主账号无关紧要,可以是下面的副账号之一。
这种重新安排既不会阻止VS找到许可证,也不会阻止VS连接到其他辅助服务,如github(它可能提供您宝贵的github copilot许可证)。
分步:
这张图片总结了什么有效,什么无效(它与上面的解释是多余的):