Предположим, у вас есть следующие сервисы Auht, Service-A, Service-B и поток от openid
https://openid.net/specs/openid-connect-core-1_0.html
+--------+ +--------+
| | | |
| |---------(1) AuthN Request-------->| |
| | | |
| | +--------+ | |
| | | | | |
| | | End- |<--(2) AuthN & AuthZ-->| |
| | | User | | |
| RP | | | | OP |
| | +--------+ | |
| | | |
| |<--------(3) AuthN Response--------| |
| | | |
| |---------(4) UserInfo Request----->| |
| | | |
| |<--------(5) UserInfo Response-----| |
| | | |
+--------+ +--------+
Spring framework имеет сборку в поддержке входа по протоколу oauth и openIdLogin (https://github.com/spring-projects/spring-security/tree/5.0.0.RELEASE/samples/boot/oauth2login), но все они основаны на сеансах. Однако я хочу передать токены пользователю, поэтому пользователь может вызывать другие службы через access_token. Как правильно это делать?
Если я так реализую, это неправильно
User --> MyAuth
------------->Google MyAuth server redirects to sso
UI<--------------------------Google callback to fronten (ui/login/cb?code=codefromcode)
UI --->MyAuth ------------> Google
(using code obtain tokens)
<--------------Google sends tokens
UI <---MyAuth
(tokens send to browser)