我有一個角度爲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