我有一个角度2应用程序,一个带有OWIN管道(.NET 4.6)的Web API和一个ADFS 3.0。使用angular 2应用程序的每个用户都需要通过ADFS进行身份验证和授权,如果他已经登录域,他应该自动登录到应用程序(单点登录)
类似的东西:
我阅读了大量有关如何实现这一目标的链接和代码,但我没有将这些内容放在一起。 据我所知,ADFS 3.0仅支持OAuth 2授权代码流,它本身不支持或建议使用JS应用程序。 我不太确定它是什么,但事实是我无法/不应该使用它。
我明白,因此我必须在我的Web服务器上实现一些身份验证服务器,我的Web API就在那里(可能是IdentityServer 3或其他东西"自制")。
这让我觉得我应该使用ADFS作为google或facebook之类的外部登录,这将导致以下工作流程
这是正确的还是完全关闭?
无论如何,我没有将这些碎片放在一起。 我看到很多代码在Web API中创建JWT令牌(但不与ADFS通信)或通过WS-Federation与ADFS通信。 另外ADFS' OAuth 2实现似乎有点特殊,这增加了另一层复杂性。
所以我的问题是:
如何在针对ADFS进行身份验证时向用户提供OAuth令牌?
如果您需要任何其他信息,我很乐意提供
答案 0 :(得分:1)
您需要ADFS 2016,它支持使用Angular.JS的单页应用程序。有关流程和示例代码,请参阅https://technet.microsoft.com/en-us/windows-server-docs/identity/ad-fs/development/single-page-application-with-ad-fs。
您是对的,ADFS 2012R2仅支持授权代码流,该代理流仅适用于公共客户端与Web API通信的本机应用程序。
由于
// Sam(Twitter: @MADADFS )