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

时间:2015-10-07 19:38:45

标签: c# asp.net-mvc azure active-directory azure-active-directory

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

  

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

Tennant ID是正确的,但应用程序客户端ID不是我在我的应用程序设置中放置的,它甚至不是我用于此部署的正确客户端ID。我在Azure Active Directory帐户下添加了两个不同的应用程序,并且此客户机ID属于另一个。我不明白网站从哪里抓住这个。在搜索我的解决方案后,我发现它嵌入在Web Deploy中以获取不同的发布配置文件,而不是我发布的配置文件。我在发布时注释掉了此引用并取消选中“启用组织身份验证”,以查看是否会更改任何内容并且它没有。

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

<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验证AppSettings中的正确ClientId位于服务器上的web.config中,但它不是该错误消息中使用的那个。

任何帮助将不胜感激。拜托,谢谢你。

3 个答案:

答案 0 :(得分:2)

感谢brady gaster,我指出通过右键单击项目访问“配置Azure AD身份验证”选项。通过此向导然后发布它可以正确设置身份验证。我不确定这与改变web.config中的应用程序设置有什么不同,但它有效。

Configure Azure AD Authentication

答案 1 :(得分:1)

我是Web Tools Extensions工作人员在Microsoft的PM之一,构建了Azure工具。我在这里有一些关于你的复制品的问题。执行发布体验时,是否指定了要使用的目标客户端ID?我了解您正在针对AAD App#1进行开发,但您希望自己的应用在发布后使​​用AAD App#2。您是否在发布期间提供目标​​AAD应用程序的客户端ID?如果是,则应将您正在开发的客户端ID替换为您要运行的客户端ID。

此外,您使用的是哪个版本的VS,以及您安装了哪个版本的Azure SDK?这将有助于排除故障。它还有助于了解您是否正在使用DreamSpark或CSP Azure订阅,或者您的订阅是您通过免费试用自己设置的订阅,然后是现收现付或MSDN订阅。某些订阅具有各种服务可用性,因此有助于了解您是否愿意共享信息。

如果您更愿意通过电子邮件而不是SO来讨论这个问题,我们也可以为此提供帮助。无论哪种方式,如果需要客户更新VS,或者我们遇到需要在以后版本中解决的问题,我将发布解决方案或行动计划。

感谢您提供相关信息,我们将通过此方式解决问题并让您畅通无阻。

答案 2 :(得分:0)

我的一位客户也有类似的设置。到目前为止,从VS2015内部的“Build”菜单中运行“Clean Solution”已经解决了它。