我正在构建一个使用@azure/msal-angular
版本2.3.2包对组织中的用户使用微软帐户进行身份验证的角SPA。但是,登录到运行在http://localhost:4200/下的同一个web应用程序时,使用Azure托管的web应用程序并不能正常工作。使用本地主机版本登录时,会重定向到类似于
https://login.microsoftonline.com/.../oauth2/v2.0/authorize?client_id= ...
在使用web应用程序登录时,将我重定向到
https://login.microsoftonline.com/.../oauth2/authorize?response_type=code+id_token ...
尝试登录web应用程序会导致诸如AADSTS9002325: Proof Key for Code Exchange is required for cross-origin authorization code redemption.
之类的错误,我假设为了使授权工作,我需要web应用程序使用正确的端点,即包含/oauth2/v2.0的端点。然而,Azure没有给我选择用于登录用户的端点的选项,我也不明白为什么端点在本地使用,而不是在生产中使用。
有我遗漏的设置吗?如何使web应用程序使用正确的端点登录用户?
发布于 2022-07-30 13:34:05
我假设您将SPA部署到Azure应用程序服务中,对吗?
如果是的话,你能检查一下你是否在应用服务上启用了简单的Auth吗?您可以在App的“身份验证”选项卡上看到它:
事实是,这是在本地工作和使用旧的微软在线端点在您部署的应用程序似乎指向这一点,但你可以用这种方式对它进行检查。
如果启用了MSAL,并且已经直接在代码上使用MSAL保护应用程序,那么应该禁用此选项--基本上是在另一层(您自己实现的MSAL)之上添加了一个身份验证层( are内置的Easy ),这可能会导致一些奇怪的情况。
https://stackoverflow.com/questions/73167489
复制相似问题