Azure AD是否支持单页应用程序的PKCE授权代码流



我正在考虑使用pkce将我的angular应用程序中的身份验证流从隐式流升级为授权代码流。我正在使用Azure AD作为身份验证提供程序。

我没有在Microsoft文档中找到与spa的pkce流相关的文档。Auth0已经从去年开始支持pkce,想知道Azure广告是否支持它。或者它是否在他们未来的路线图中。

Azure AD在v1.0和v2.0端点上都支持PKCE。

您可以在此处找到v2.0文档以及v1.0文档。

Microsoft最近修复了CORS问题。需要更改-

更改重定向URI类型以启用CORS。您可以通过转到门户中应用程序注册的清单编辑器,找到replyUrlsWithType部分并将重定向URI的类型更改为SPA来完成此操作。这可能会从Web平台"身份验证"选项卡中删除受影响的重定向URI——没关系!我们正在为此设置UI。

来源:https://www.npmjs.com/package/@azure/msal浏览器

是。Azure AD平台在v1.0和v2.0端点上都支持PKCE。但对于SPA,例如Angular,它并没有得到微软的官方支持。对于Angular,只有隐式流的示例。

https://learn.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-angular

其他一些库支持使用AzureAD的PKCE,例如。https://github.com/damienbod/angular-auth-oidc-client.从autor使用PCKE的示例:https://github.com/damienbod/AzureAD-Auth-MyUI-with-MyAPI

但并不是用户视图中的所有功能都如此完美,例如通过切换选项卡、通过刷新某些令牌。最好先查看问题清单,然后再做决定。

以前我发布过不支持PKCE的消息,但现在已经不是这样了。如果有帮助的话,这里有一个PKCE代码示例和博客文章,可以让读者与之进行比较:

  • Azure AD单页应用程序和API代码示例

应该可以重新配置JSON配置文件以使示例正常工作。但是请注意,我使用的是基于标准的认证库,而不是Microsoft特定的库。