Chciałbym wiedzieć, czy ktoś ma przykład, aby zobaczyć, jak zaimplementować technikę "Token Exchange" w Spring Cloud Security (z OAuth2).Jak wdrożyć OAuth2 "Token Exchange" z Spring Cloud Security
Obecnie zaimplementowałem technikę "Przekaźnik Tokenowy" w środowisku Microservices, używając ZuulProxy do "przekazywania" tokenu OAuth2 i wdrażania SSO. Jest to świetne, ale sugeruje, że każda mikroserwis używa tego samego identyfikatora klienta (który jest określony w konfiguracji ZuulProxy, ponieważ ZuulProxy przekazuje token tylko z typem dotacji autoryzacji i podanym ID klienta). Jednak w przypadku połączeń wewnątrz micro-usługodawców chciałbym "wymienić" token. Oznacza to w niektórych przypadkach token, że przekaźniki ZuulProxy nie są tym, których potrzebuję do uwierzytelnienia/autoryzacji Microservice A jako klienta Microservice B.
Dokumentacja referencyjna Spring Cloud mówi obecnie: "W oparciu o Spring Boot and Spring Security OAuth2 możemy szybko tworzyć systemy, które implementują typowe wzorce, takie jak logowanie jednokrotne, przekaźnik tokena i wymiana znacznika token . " (http://cloud.spring.io/spring-cloud-security/spring-cloud-security.html)
myślę, że z „Reklamowe Exchange” w dokumentacji odniesienia oznacza, że wdrożenie tego rozszerzenia OAuth2, opisane w tej specyfikacji, która jest w zasadzie to, czego potrzebuję: https://tools.ietf.org/html/draft-ietf-oauth-token-exchange-03
Jak powiedziałem Rozumiem, jak używać SSO i Token Relay, ale nie jestem w stanie zobaczyć dalszych wyjaśnień na temat wdrażania "wymiany tokenów" w dokumentacji referencyjnej. Nie mogłem też znaleźć przykładu wdrożenia.
Czy ktoś wie, gdzie mogę znaleźć dalsze informacje lub przykład?
Dziękuję bardzo!
Uzgodnione. Ponowne użycie client_id we wszystkich mikroserwisach wydaje się błędne. Najgorsze (moim zdaniem) jest to, że uniemożliwia korzystanie z mikroserwisów innym klientom. Powiedzmy, że masz innego klienta sso z własnym client_id ... nie możesz użyć żadnej z istniejących mikroserwisów?Mam nadzieję, że zostanie to rozwiązane. Wygląda na to, że doszło do jakiejś pracy wymiany tokena, ale nie jest ona kompletna/scalona, ale https://github.com/spring-projects/spring-security-oauth/pull/957 – sdoxsee
Na pierwszy rzut oka zgodzę się z Tobą. Ale z punktu widzenia klientów widzą oni Twoją bramę API jako osobliwość. Z ich perspektywy jest tylko jeden interfejs API. Fakt, że masz za sobą wiele usług, to szczegół implementacji, a niekoniecznie taki, który chcesz reklamować klientom. Co się stanie, że zdecydujesz się podzielić usługę na dwie usługi? Czy musisz zmusić wszystkich do ponownego wystawienia tokenów, które otrzymają nowe identyfikatory zasobów? –