Angular 4中用于API身份验证的Azure Active Directory JWT

时间:2018-04-13 22:19:39

标签: angular azure jwt azure-active-directory

我目前在azure上设置了2个网络应用程序(应用程序服务)。第一个是角度4网站,第二个是.net核心2.0 restful api。我有用于ui的CORs设置,可以完美地与api通信。唯一的问题是这个API没有任何安全性。

我试图利用azure AD JWT令牌成为API中授权属性的一部分,但问题是API无法验证令牌,因为我没有天蓝色的密钥用于创建JWT令牌开始。我也从/.auth/me获取令牌。有没有人对如何最好地解决这个问题有任何建议?

我是否可以点击azure上的api端点获取当前登录用户的有效JWT令牌?我注意到/.auth/me会在一小时后过期,并且用户被迫访问/.auth/login/aad/callback以刷新令牌。

我很想知道解决此问题的最佳策略,如果它包含adal,msal等。此外,我们非常感谢链接代码。

1 个答案:

答案 0 :(得分:2)

我建议您在angular 4 Web App中使用ADAL for Javascript来退出id_tokenaccess_token,然后使用相关令牌访问.NET Core 2.0 restful API。对于角度应用程序,您仍然可以使用Azure App Service提供的内置身份验证/授权,而无需更改代码。

对于.NET Core 2.0 restful API,您可以使用App Service提供的Authentication and authorization in Azure App Service(Easy Auth),也可以在项目中手动使用Microsoft.AspNetCore.Authentication.JwtBearer包进行JWT身份验证。详细的代码段,您可以关注here

此外,我建议您为前端Web应用程序和Api Web应用程序创建每个AAD应用程序。