Używanie spring-security-oauth2 do zabezpieczenia moich zasobów przed punktem końcowym SSO, który może działać jako serwer autoryzacji. Jestem nieco zdezorientowany, gdy dokumentacja stanowi:Jaki jest właściwy sposób na oddzielenie serwera zasobów i serwera autoryzacji?
Rola dostawcą w OAuth 2.0 jest faktycznie podzielone między usługą autoryzacji i użyteczności zasobów, a jednocześnie te czasem przebywania w tym samym wniosku, ze sprężyną bezpieczeństwa OAuth masz możliwość podzielenia ich na dwie aplikacje, a także posiadanie wielu usług zasobów, które współdzielą usługę autoryzacji.
Ale nie sądzę, że znalazłem przykład tego zdarzenia. W sparklr/tonr serwer autoryzacji i serwer zasobów znajdują się w tej samej aplikacji. Jedyny przykład, który widziałem po przeszukaniu, to this spring-servlet.xml, który wymaga this wykonania niestandardowego ResourceServerTokenServices
do pracy.
Chciałbym uniknąć pisania niestandardowej implementacji ResourceServerTokenServices
, jeśli w ogóle możliwe. Czy istnieje inny sposób na obsługę zewnętrznego serwera autoryzacji na serwerze zasobów? Coś w rodzaju:
<bean class="com.example.ExternalAuthorizationServerTokenServices"
p:remote-url="https://my-oauth-compatible-sso.com"
p:token-endpoint="/oauth/access_token"
p:authorize-endpoint="/oauth/authorize" />
Czy to możliwe?
* EDYCJA: Dodam, że jako obejście (lub może to jest zamierzone rozwiązanie) używam magazynu znaczników jdbc i polegając na fakcie, że oba serwery mają dostęp do tej bazy danych.
Jak wynika patrzy? Zaczynam stawiać czoła temu samemu problemowi i każda rada byłaby bardzo cenna. – beku8
Rezultat jest dokładnie tym, czego szukam. Tak długo jak określasz 'JdbcTokenStore' wskazujący na to samo' DataSource' zarówno dla serwera zasobów, jak i serwera autoryzacji, wydaje się działać dobrze. – Joe
Oddzieliłem serwer uwierzytelniania i serwer zasobów. Przypadki testowe nie są jednak kompletne. Możesz go znaleźć tutaj https://github.com/nareshbafna/oauth2 – anfab