【问题标题】:Azure Active Directory AuthenticationAzure Active Directory 身份验证
【发布时间】:2023-06-16 23:05:01
【问题描述】:

我目前正在开发一个项目,该项目具有使用 Azure Active Directory 进行身份验证的 Web API 后端,并且我正在从 Android 移动应用程序使用该后端服务。长话短说,我在 Azure AD 中注册了一个客户端应用程序并授予它对 Web API 服务的所有权限。

我无法从 Android 应用程序获取访问令牌,这表明我能够使用 Azure AD 登录。问题是每当我尝试使用访问令牌调用服务调用时都会收到授权错误。

当我在 Postman 上测试服务时,我可以在本地成功地访问服务,但是在发布到 Azure 后,当我尝试调用服务调用时出现授权错误。我担心它在本地可以正常工作,而在 Azure 上却不行。

对此有什么可能的解决方案?

【问题讨论】:

  • 您是否启用了应用服务身份验证/授权功能?并请检查发布后是否有任何配置更改。
  • 您说:“我无法从 Android 应用程序获取访问令牌...”。您的意思是“从 Android 应用程序我可以获取访问令牌...”?
  • 是的,配置发生了变化,但我最终设法解决了,谢谢。

标签: android azure asp.net-web-api azure-active-directory adal


【解决方案1】:

我终于设法解决了,是的 Web 配置文件在发布后更改了一些键。由于我的服务在本地工作,因此我去了 azure(应用程序服务 > 我的 Web API 服务 > 应用程序设置)输入本地 Web 配置文件中的内容,并将它们添加到应用程序设置的 azure 上。

我真的不明白为什么 azure 在发布后会覆盖密钥。所以我了解到,我总是必须将 azure 上的 Web 配置文件与本地配置文件进行比较,并且还要将我的 Web API 服务的所有重要密钥添加到 azure Web API 服务中的应用程序设置中,这样他们就不会发布时更改。

很遗憾 ? 我没有足够的代表来附上我在 azure 上所做的屏幕截图的图像,以帮助遇到同样问题的其他人。

【讨论】: