首页 > 解决方案 > 如何使用 Azure AD 对应用程序进行身份验证

问题描述

我正在尝试设置应用程序以使用 Azure AD 验证身份并获取令牌以允许访问安全 API。前端应用程序是用 Angular 编写的,并允许匿名访问。我可以使用什么来访问 AAD 身份验证并返回访问令牌?

这将是一个 6+ 的角度 UI,它使用 Azure AD 与安全的 .Net api 进行通信以进行身份​​验证。我做了几天的研究,一切都指向用户登录以使用登录页面进行身份验证。我需要它通过应用程序并打开登录页面。我尝试了几个使用身份验证/授权的示例,但没有成功,因为应用程序需要授权用户与 api 对话。我已经看到人们在哪里使用 Microsoft graph,但它再次是基于用户的,并且他们被重定向到 azure 登录。我正在寻找一种解决方案,允许我在 azure ad 中设置一个帐户并在启动时对应用程序进行身份验证以获取访问令牌以允许与我的安全 api 进行通信。如果我在研究和测试尝试中遗漏了某些东西,请告诉我。

标签: authenticationazure-active-directory

解决方案


问题是 Angular 应用程序就是我们所说的公共客户端。它无法隐藏秘密,因此无法证明其身份。因此,公共客户端只能使用基于用户的身份验证流程。

另一方面,机密客户端可以在您控制的服务器上运行时保存机密。例如,后端 Web 应用程序或 API 将是机密客户端。那些可以使用客户端凭据流来获取访问令牌并以自己的身份调用 API,而无需用户参与。

你的问题有一点基本问题。您的 API 需要身份验证,但您希望匿名用户可以使用功能。所以你想绕过身份验证。

如果您真的想绕过 API 的部分身份验证,您可以让这些端点匿名可用而无需令牌。


推荐阅读