取消
显示结果 
搜索替代 
您的意思是: 
cancel
公告

December 2020

December 2020

【原创】如何为多个Web API提供授权方法

276
查看次数
0
有帮助
0
评论

引言:在本文中,我们和您讨论了如何在使用Azure活动目录的同时,为AngularSPA中的多个Web API添加授权的方法。
Azure活动目录(Active DirectoryAzure AD)是一种业界比较流行的企业级身份认证服务。如今,许多组织都在使用该服务,来启用应用程序的单点登录(SSO),并保护其提供的Web API。其中,基于OpenId ConnectOIDC)身份验证的Microsoft Identity Platform 2.0是针对OAuth 2.0授权流程的最新改进版本。
如果您的应用程序使用到了Azure AD的如下功能,那么本文正好向您介绍如何为多个Web API提供授权的方法:

指定user_as_access的范围
2. 注意:由于在先前的调用中,我们的浏览器已经设置好了身份验证的cookie,因此这一步将不再执行用户的身份验证。
3. Azure AD生成另一个具有访问权限的访问令牌,用以调用Web API。该令牌将被用于每一个Web API
4. Azure AD重定向的请求中,我们将基于Angular代码,获取对应的访问令牌。通过调用自定义的API,我们将此令牌的授权标头(Authorization header)设置为Bearer类型的令牌。
5. Web API验证来自Azure AD的令牌,如果验证成功,则返回正常的响应信息;如果失败,则告知有关错误的信息。
刷新访问令牌
通常情况下,访问令牌的有效期是短暂的。我们可以将令牌的过期时间配置为一个小时或更短。那么在令牌到期之前,客户端应用程序应当从Azure AD处请求新的访问令牌。而且,该过程应当在没有用户干预的情况,由后台自动完成。因此,我们可以在客户端应用程序中采用隐藏的iframe方法。
实际上,这对于用于调用那些自定义Web API的访问令牌来说(而不是本示例前面提到的Graph API)显然是必需的。
总结
上文提到的Azure AD充当了基于云端身份认证服务的角色,您完全可以将自己的应用部署到其他的云服务、或本地数据中心中,以实现个性化的身份验证与授权。当然,在开始编写Angular应用程序代码之前,您也可以使用Postman客户端(译者注:一款强大的网页调试和接口测试工具)来测试和验证Azure AD的配置、以及各种Web API
总的说来,通过上述详细的设计方法和实现步骤,我们演示了Angular客户端应用程序如何从不同的Web API处获取OAuth 2类型授权的过程。希望对您有所帮助。

【原标题】AuthorizationApproach for Multiple Web API Providers (作者: Satyen Mishra & Sachin Kulkarni )
原文链接:https://dzone.com/articles/azure-ad-authn-amp-authz-for-your-application

不能显示该小部件。