2017-08-30 61 views
0

我們正在嘗試將授權和身份驗證分爲兩個獨立的服務。兩者都將使用Identity Server 4.我們可能有一天會添加額外的外部身份驗證提供程序。我相信聯合網關是一個術語(http://docs.identityserver.io/en/release/topics/federation_gateway.html?highlight=FederationIdentityServer4 Fedarated網關資源所有者設置

我的研究到目前爲止表明我們能夠將授權設置爲外部提供者並將[LocalLoginEnabled]設置爲false。這對Web應用程序來說工作正常,因爲它沿着傳統的流程​​重定向。我們的要求是讓基於Web和客戶端的應用程序(Windows和Mobile)呼叫我們的解決方案。這需要隱式或資源所有者(密碼)流。

尋找最佳設置方法的指導。我很想寫一個自定義端點API來將身份驗證中繼到身份驗證實例。

問題:

我怎樣才能實現兩個ID4實例(授權+認證)之間的 「密碼流」?

在此先感謝!

回答

0

雖然我原來的答案奏效,但這並不是實現我最終結果的最佳方式。我可以通過擴展IResourceOwnerPasswordValidator來注入我自己的密碼授權處理,而不是創建新的端點。然後我可以爲所有授權擁有一個端點。這個解決方案更「自然」,並與預期的架構保持一致。

的IResourceOwnerValidator接口只實現一個功能...

公共任務ValidateAsync(ResourceOwnerPasswordValidationContext上下文)

一個更優雅的解決方案。

0

經過大量的研究和小小的指導之後,我決定採取一個跳躍,並創建一個僅用於資源所有者/密碼授予類型的新API端點。這個API只是驗證所需的信息是授予類型,祕密,用戶/ pwd等等,然後將它中繼到Authentication實例。這樣做可能會有更多「優雅」的方式,但是這似乎是有效的。

希望這可能有助於某人。