我有一个角度为2的应用程序,OWIN管道(.NET 4.6)和ADFS 3.0的Web API。谁使用角2应用程序的每个用户都需要进行身份验证,并通过ADFS授权,如果他在域中已经登录,他应该自动登录到应用程序(单点登录)通过Web API验证针对ADFS的Angular 2
类似的东西:
我读了很多关于如何实现这一点的链接和代码,但是我没有把这些部分放在一起。 据我了解,ADFS 3.0只支持OAuth 2 Authorization Code Flow,它本身不支持或分别通过JS应用程序建议。 我不太确定它是什么,但事实是我不能/不应该使用它。
我明白所以我必须在我的Web服务器(我的Web API可能是IdentityServer 3或“自制的”)上实现一些认证服务器。
这使我认为,我应该使用ADFS作为外部登录像谷歌或Facebook,这将导致以下工作流程
- 用户请求令牌
- 的Web API检查,如果用户已经登录进入域名
- 登录?
- 转发请求到ADFS并验证。
- ADFS将OAuth令牌返回给WebAPI
- 未登录?
- 向用户显示登录掩码
- 向ADFS转发请求并验证。
- ADFS返回OAuth令牌到的WebAPI
- 的Web API返回的OAuth令牌用户
这甚至正确的还是我完全地关闭?
无论如何,我不能把这些碎片放在一起。 我看到很多代码在Web API中创建JWT令牌(但不与ADFS通信)或通过WS-Federation与ADFS通信。另外ADFS的OAuth 2实现似乎有点特别,这增加了另一层复杂性。
所以我的问题是:
我怎样才能提供的OAuth令牌用户进行身份验证时对ADFS?
如果您需要任何额外的信息,我乐意为它
我认为它是 “莫名其妙” 的可能,如果我使用IdentityServer 3或相似,比 “桥梁” 一切或转换WS-联合会一个OAuth 2令牌(在我的Web API中)? – Arikael