我正在尝试设置一个应用程序以使用Azure AD验证身份并获取令牌以允许访问安全api。前端应用程序是用角度编写的,并允许匿名访问。我可以使用什么来访问AAD身份验证并返回访问令牌?
这是一个有角度的6+ UI,正在使用Azure AD进行身份验证以与安全的.Net api通信。我做了几天的研究,所有内容都指向使用登录页面登录进行身份验证的用户。我需要它通过应用程序并打开登录页面。我尝试了几个使用身份验证/授权的示例,但该示例不起作用,因为该应用需要授权用户与api对话。我已经看到人们在使用Microsoft图形的地方了,但是再次基于用户的图形又将他们重定向到了Azure登录。我正在寻找一种解决方案,该解决方案将允许我在azure广告中设置帐户并在开始时对应用进行身份验证,以获取访问令牌以允许与我的安全api通信。如果我错过了研究和测试尝试中的某些内容,请告诉我。这是我的第一次Azure AD身份验证尝试,感觉好像缺少用于应用程序授权的内容。
答案 0 :(得分:2)
问题在于Angular应用就是我们所谓的公共客户端。 它无法保存秘密,因此无法证明其身份。 因此,公共客户端只能使用基于用户的身份验证流。
另一方面,机密客户端在您控制的服务器上运行时可以保留秘密。 因此,例如,后端Web应用程序或API将是一个机密客户端。 那些用户可以使用客户端凭据流来获取访问令牌并以自身身份调用API,而无需用户参与。
您的问题中有一个基本问题。 您的API需要身份验证,但您希望匿名用户可以使用该功能。 因此,您想绕过身份验证。
如果您真的想绕过API的某些部分的身份验证,则可以使这些端点匿名使用而无需令牌。