2017-06-05 39 views
1

上登錄/註冊查看我試圖做的是以下幾點:使用與OpenIdDict隱流,而無需認證服務器

與一個DOTNET核心WEP API連通的SPA。 我想使用社交登錄。

我想使用(服務器端)授權碼流。

我傾向於OpenIdDict來處理JWT令牌認證。

我設置了OpenIdDict的示例項目,特別是ImplicitFlow,我得到了這個工作。 但是,此示例使用重定向到授權服務器的實際登錄過程。

是否有可能讓SPA屁股服務這些頁面?

看來,這已經做過,請參閱:https://github.com/Kukks/openiddict-custom-grants-example

但我不能讓概念證明了這一點建立了。

我想知道的是,Kukks概念證明是否仍然是實現這一目標的方式,以及我是否通過這種方式來做正確的事情。或者我在這裏打開一罐蠕蟲,是否應該從授權服務器加載一個頁面停止抱怨?

回答

1

是否有可能讓SPA屁股服務這些頁面?

號隨着交互流(如代碼或隱含的),授權服務器被認爲是負責認證部,這是爲了保證授權服務器和客戶端應用程序之間的隔離的唯一途徑,這是不能「查看」用戶憑證。試圖解決這個問題幾乎會打敗這些流程的全部目的。

我想知道的是,Kukks概念證明是否仍然是實現這一目標的方式,以及我是否通過這種方式來做正確的事情。

如果您有自己的客戶端應用程序,如果你的用戶重定向到您的授權服務器(使用e.g隱流)是不能接受你,那麼,你可以考慮使用斷言流程。

在這種情況下,JS應用程序將負責處理社交登錄部分(這意味着它將直接註冊到外部社交提供者,在典型的隱式流程中,它將是授權服務器)。

或者我打開一罐蠕蟲在這裏,我應該我應該只是從授權服務器加載一個頁面停止抱怨?

如果您決定實施此流程,則在實施外部代碼/令牌驗證例程時必須非常小心,以避免我們稱之爲「混淆副攻擊」。

您提到的演示不幸容易受到攻擊,正如此票中提到的:https://github.com/openiddict/openiddict-samples/issues/13#issuecomment-250903091

+1

謝謝你的回答。在我的情況下,我*擁有客戶端應用程序,所以斷言流程是一個選項。 希望在SPA內部擁有完整的用戶界面的想法源於如果您構建與Web API進行通信的SPA,在服務器端擁有認證用戶界面時感覺不對。擁有一個Web API和一個獨立的SPA的想法的一部分是在SPA內部有UI,在服務器端沒有UI。 儘管你做了很多有效的分數。特別是關於隔離,而不是試圖解決它的觀點,是正確的。 – gijswijs