首页 文章

通过Web API对ADFS验证Angular 2

提问于
浏览
0

我有一个角度2应用程序,一个带有OWIN管道(.NET 4.6)的Web API和一个ADFS 3.0 . 使用angular 2应用程序的每个用户都需要通过ADFS进行身份验证和授权,如果他已经登录域,他应该自动登录到应用程序(单点登录)

像这样的东西:

enter image description here

我阅读了大量有关如何实现这一目标的链接和代码,但我没有将这些内容放在一起 . 据我所知,ADFS 3.0仅支持OAuth 2授权代码流,它本身不支持或建议使用JS应用程序 . 我不太确定它是什么,但事实是我不能/不应该使用它 .

我明白,因此我必须在我的Web服务器上实现一些身份验证服务器,我的Web API就在那里(可能是IdentityServer 3或“自制”的东西) .

这让我认为我应该使用ADFS作为外部登录,如google或facebook,这将导致以下工作流程

  • 用户请求令牌

  • Web API检查用户是否已登录到域

  • 已登录?

  • 转发请求到ADFS并验证 .

  • ADFS将OAuth令牌返回给WebAPI

  • 尚未登录?

  • 向用户显示登录掩码

  • 转发请求到ADFS并验证 .

  • ADFS将OAuth令牌返回给WebAPI

  • Web API将OAuth令牌返回给用户

这是正确的还是我完全关闭?

无论如何,我没有把碎片放在一起 . 我看到很多代码在Web API中创建JWT令牌(但不与ADFS通信)或通过WS-Federation与ADFS通信 . 此外,ADFS的OAuth 2实现似乎有点特殊,这增加了另一层复杂性 .

所以我的问题是:

How can I provide OAuth tokens to the user while authenticating against ADFS

如果您需要任何其他信息,我很乐意提供

1 回答

相关问题