0

我已經實現了彈簧安全oauth2授權服務器作爲彈簧引導微服務。我試圖讓我們的主(非Java)應用程序使用這個新服務遷移到oauth2。彈簧安全oauth2授權服務器沒有任何UI

我無法理解的一件事是如何進行設置,以便授權服務器從不顯示任何UI。特別是,有沒有辦法讓我們的主應用程序託管/ oauth/authorize UI,但仍然接受代理授權批准?或者該UI是否需要由授權服務器直接提供?

回答

0

用於登錄的用戶界面不需要位於授權服務器上(請參閱https://tools.ietf.org/html/rfc6749#section-4.3資源所有者密碼憑證授予)。這留給客戶端來收集憑證並向授權服務器發出直接令牌請求。

但是,我通常不推薦繞過AS UI,因爲這意味着每個客戶端應用程序都必須實現登錄邏輯,並且您不會在這些客戶端應用程序之間獲得單一登錄。

+0

謝謝,我不是在談論登錄UI我談論的是授權用戶界面。 「授權應用程序訪問您的電子郵件地址」授權流程的一部分。 – brub

+0

我不認爲您可以使用授權代碼授權流程並使用您的應用UI。如果您不想查看授權頁面,則可以自動批准範圍。例如,請參閱https://github.com/sdoxsee/jhipster-with-external-authserver/blob/master/authserver/src/main/java/demo/AuthserverApplication.java#L115。你爲什麼要在你的客戶端應用程序上託管它? – sdoxsee

+0

我試圖創建授權服務作爲微服務,並希望在我們的「主」UI應用程序中託管UI。自動批准可能是一個合適的解決方法。 – brub

0

您可以在用戶界面的應用程序創建一個登錄頁面,登錄將調用類的認證服務器:

curl -X POST -vu client:secret http://localhost:8081/spring-security-oauth-server/oauth/token -H "Accept: application/json" -d "password=password&username=user&grant_type=password&scope=read%20write&client_secret=secret&client_id=client" 

,您會收到將被用於訪問喜歡你的資源服務器端點一個訪問令牌:

curl http://localhost:8081/spring-security-oauth-resource/path/endpoint -H "Authorization: Bearer <Token>" 
+0

謝謝,是的,這是資源所有者密碼授予 - 我正在使用它登錄。我在談論以類似的方式支持授權代碼授權。 – brub