由于我计划使用OAuth或OWIN JWT持有者令牌进行身份验证,因此我有以下要求,我不知道要建议的解决方案或授权类型。我希望有一个小的示例代码,特别是有效负载的外观和声明的外观以及我应该在下面具有的授权类型:
- 我有角度 8 UI 要求输入用户名/密码(Azure AD 身份验证(
- 用户登录,然后应该具有将粘贴的URL(在会话中(复制到另一个选项卡或新浏览器的功能。
- 用户在工作时(它是呼叫中心案例管理器,因此长时间使用会话(,令牌在他/她工作时不应过期。我研究了令牌将在我们设定的时间到期,并且无法控制这一点。现在,除非我们有"刷新"令牌,否则我们无法实现这一点,即即使令牌过期,用户也应该有无缝体验来继续任务,因为应该使用刷新令牌(或任何机制(。
如果我使用刷新令牌,则只有授权代码授予类型是可能的,其中用户 ID/密码不安全。如果我选择"隐式"授权类型,则此中没有可用的刷新令牌。
我不确定如何实现上述所有要点。请指导
在隐式授权流的情况下,SPA必须在隐藏的iframe中发送请求以刷新令牌。基于有效的浏览器会话,应用程序请求刷新令牌访问。
对于 Azure AD,您应该使用 microsoft-authentication-library-for-js ,并且此库使用acquireTokenSilent方法提供开箱即用的功能。
我强烈建议您浏览隐式授权流程文档,您将获得很好的理解。隐式授权流
我不确定你能找到完整的例子,但我可以给你一些带有代码样本的链接,所有这些链接都会构成完整的例子。我也看不到任何 Angular 8 库,给定的库适用于 Angular 6,7,但可能同样也可以用于 Angular 8。
对于 Angular,您可能必须使用此库 microsoft-adal-angular 和示例如何使用 microsoft-adal-angular
在给定的链接中,您可以找到如何刷新令牌,因为上面的示例缺少该部分。 刷新令牌代码