当前位置: 首页 > 知识库问答 >
问题:

Azure Active Directory使用了错误的应用程序客户端ID

淳于健
2023-03-14

我开发了一个Azure Webhtml" target="_blank">应用程序,该应用程序在我的订阅上使用Azure Active Directory进行身份验证,但我现在正尝试从我的测试AAD目录切换到我想在另一个订阅上使用的实际AAD。我收到以下错误:

AADSTS50020:应用程序'025ef17e-9767-4f4e-a1b1-6218491d94ed'不支持来自外部身份提供者'https://sts.windows.net/a26def89-f7e6-4496-b4cb-7ffee9ddbabf/'的用户帐户'MyUser'。该帐户需要作为租户中的外部用户添加。请注销并使用Azure Active Directory用户帐户再次登录。

tennant ID是正确的,但应用程序客户端ID不是我在应用程序设置中设置的,它甚至不是我用于此部署的正确客户端ID。我在Azure Active Directory帐户下添加了两个不同的应用程序,此客户端ID属于另一个。我不明白该网站从何处获取这些信息。搜索我的解决方案后,我发现它嵌入到Web部署中,用于不同的发布配置文件,而不是我一直发布的配置文件。我注释掉了这个引用,并取消了“发布时启用组织身份验证”的复选框,以查看这是否会改变任何事情,但事实并非如此。

我使用的是Visual Studio 2015在创建新的MVC应用程序时创建的标准AAD代码,并检查是否使用提供以下应用程序设置的工作或学校帐户:

<add key="ida:ClientId" value="6b0dde38-55e6-4801-ba14-58708ecb5c06" />
<add key="ida:AADInstance" value="https://login.microsoftonline.com/" />
<add key="ida:Domain" value="new.domain.imtryingtouse" />
<add key="ida:TenantId" value="a26def89-f7e6-4496-b4cb-7ffee9ddbabf" />
<add key="ida:PostLogoutRedirectUri" value="mysite.azurewebsites.net" />

我已经通过FTP验证了应用程序中的正确客户端ID位于服务器上的web.config中,但它不是该错误消息中使用的客户端ID。

任何帮助将不胜感激。请和谢谢你。

共有3个答案

袁骏祥
2023-03-14

我对我的一个客户也有类似的设置。到目前为止,从VS2015内部的“构建”菜单中运行“清洁解决方案”已经为我解决了这个问题。

陆敏学
2023-03-14

我是微软 Web 工具扩展团队的 PM 之一,负责构建 Azure 工具。我在这里有几个关于你的重现的问题。执行发布体验时,是否指定了要使用的目标客户端 ID?我知道你正在针对 AAD 应用 #1 进行开发,但你希望你的应用在发布后使用 AAD 应用 #2。是否在发布期间提供目标 AAD 应用的客户端 ID?如果是,它应该将你正在针对的客户端 ID 的客户端 ID 替换为要针对的客户端 ID。

此外,你使用的是哪个版本的 VS,以及你已安装哪个版本的 Azure SDK?这将有助于解决此问题。了解你使用的是 DreamSpark 还是 CSP Azure 订阅,或者你的订阅是否是你通过免费试用版自行设置的订阅,然后是即用即付订阅还是 MSDN 订阅,这也会有所帮助。某些订阅具有各种服务可用性,因此了解您是否愿意共享信息会很有帮助。

如果您更喜欢通过电子邮件而不是在SO上讨论这个问题,我们也可以提供便利。无论哪种方式,如果这需要客户更新VS,或者如果我们有需要在以后的版本中解决的问题,我都会发布解决方案或执行方案。

感谢您提供的信息,我们将解决这个问题,并让您解除封锁。

邹野
2023-03-14

多亏了brady gaster,我被指向了右键单击项目访问的配置Azure AD身份验证选项。通过浏览此向导然后发布,它能够正确设置身份验证。我不确定这与更改web.config中的应用程序设置有什么不同,但它有效。

 类似资料:
  • 我需要一个用于java spring应用程序的graphQL客户端,以与另一个基于graphQL API的微服务通信。我知道Apollo Android,但它似乎没有用maven实现(也许你知道maven的一些链接或示例等)。有什么想法和建议吗?提前感谢!

  • 我需要编写一个基于桌面的客户端应用程序,它在进行基于SAML的SSO身份验证后对SharePoint服务器进行一些Web服务方法调用。 我发现SAML SSO主要用于处理所有细节的浏览器。根据这个问题,SAML 2.0中似乎有一种技术称为ECP,专门用于启用非基于浏览器的客户端。 然而,SharePoint 2010/2013等一些应用程序仅支持SAML 1.1;在这种情况下可以使用什么?

  • 我想创建一个服务,可以拒绝\撤销对用户的移动邮件应用程序的访问。 具体来说,我想暂时撤销使用office365在线交换邮件对移动邮件客户端应用程序(如Nine)的访问,该应用程序被认证为Azure Active Directory应用程序。 到目前为止,我想出了如何执行类似或部分操作: > 我可以使用此链接手动撤消azure AD应用:https://account.activedirectory

  • 我尝试使用npm中名为eureka-js-client的依赖项,但它总是报告404。我查看了netflix云文档,看到来自Node.js的日志,并看到该服务试图通过URL注册: 虽然eureka服务器位于该端口,但当我试图通过邮递员ping URL时,我总是得到404。我也尝试,但也得到了404。当我通过浏览器转到时,我仍然会得到标准的eureka仪表板,并且所有Spring Boot(eurek

  • 问题内容: 我对React还是很陌生,我正在开发一个应用程序,它将获取网页的实际屏幕截图,并且该应用程序可以在所截取的屏幕截图之上绘制并添加涂鸦。最初,我使用html2canvas和domToImage拍摄客户端屏幕快照,但它无法完全呈现网页中显示的图像。 Reddit用户/ pamblam0建议我调查Google的Puppeteer。它的工作方式是启动无头铬浏览器,该浏览器转到我在本地主机上的r