0

由于我计划使用 OAuth 或 OWIN JWT Bearer 令牌进行身份验证,因此我有以下要求,我不知道要建议的解决方案或授权类型。我会很感激一个小的示例代码,特别是有效负载的外观和声明的外观以及我应该在下面拥有的授权类型:

  1. 我有 angular 8 UI,它要求输入用户名/密码(Azure AD Authenticated)
  2. 用户登录,然后应该可以将 URL(在会话中)复制粘贴到另一个选项卡或新浏览器。
  3. 工作时的用户(它是呼叫中心案例经理,因此长时间使用会话),令牌在他/她工作时不应过期。我研究了令牌将按我们设置的时间到期,并且无法控制。现在,除非我们有“刷新”令牌,否则我们无法实现这一点,即即使令牌过期,用户也应该有无缝的体验来继续任务,因为应该使用刷新令牌(或任何机制)。

如果我使用刷新令牌,那么只有在用户 ID/密码不安全的情况下,授权代码授予类型是可能的。如果我选择“隐式”授权类型,则此处没有可用的刷新令牌。

我不确定如何实现上述所有要点。请指导

4

1 回答 1

0

在隐式授权流的情况下,SPA 必须在隐藏的 iframe 中发送请求以刷新令牌。基于有效的浏览器会话,应用程序请求刷新令牌访问。

对于 Azure AD,您应该使用microsoft-authentication-library-for-js ,并且该库使用acquireTokenSilent方法开箱即用地提供此功能。

我强烈建议您阅读隐式赠款流程文档,您将获得很好的理解。隐式授权流程

我不确定您能否找到完整的示例,但我可以为您提供一些带有代码示例的链接,所有这些链接都将构成完整的示例。我也看不到任何 Angular 8 库,给定的库是用于 Angular 6,7 但可能同样可用于 Angular 8。

对于 Angular,您可能必须使用这个库microsoft-adal-angularExample How to use microsoft-adal-angular

在给定的链接中,您可以找到如何刷新令牌,因为上面的示例缺少该部分。刷新令牌代码

于 2019-08-14T22:05:21.860 回答