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

时间:2020-05-05 19:14:21

标签: angular azure oauth-2.0 azure-active-directory single-page-application

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

我在Microsoft文档中找不到与spa的pkce flow相关的文档。 Auth0从去年开始就开始支持pkce,想知道Azure广告是否支持它。或者,如果这是他们未来的路线图。

4 个答案:

答案 0 :(得分:5)

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

您可以找到v2.0文档here 以及v1.0文档here

答案 1 :(得分:0)

几年来,由于CORS错误,Azure AD令牌终结点不适用于SPA。有关更多详细信息,请参见this link

我上次检查的时间是在一月左右,问题仍然存在。微软最近可能已修复了此问题-非常欢迎!

答案 2 :(得分:0)

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

更改您的重定向URI类型以启用CORS。您可以通过以下方式进行操作:转到门户网站中的应用程序注册清单编辑器,找到replyUrlsWithType部分,然后将重定向URI的类型更改为SPA。这可能会从“ Web平台的身份验证”选项卡中删除受影响的重定向URI-没关系!我们正在为此设置UI。

来源:https://www.npmjs.com/package/@azure/msal-browser

答案 3 :(得分:0)

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

https://docs.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

但并非用户视图中的所有功能都如此完美,例如通过切换标签,通过一些令牌刷新。最好检查问题列表,然后再做决定。