Chroniques SSO: Banque, jetons et un peu de magie

Hey! Je m'appelle Artem Ivlev et je suis engagĂ© dans l'architecture d'identification des clients de VTB Bank. Notre tâche est de rĂ©pondre Ă  la question de savoir qui utilise notre service bancaire: mobile ou Internet banking, assistant vocal, ou tout simplement l'un des nombreux bureaux. Il existe de nombreux outils pour cela - et je veux vous parler de la formation de l'un d'entre eux. 





Prologue





Nous sommes en 2019, l'écosystème de la banque se développe à pas de géant, et nous avons de plus en plus besoin d'un point d'entrée unique pour les clients et d'un fournisseur d'identification. Et il n'y a qu'un répertoire de comptes et des solutions distinctes de différentes équipes pour l'authentification.





Nous n'avions pas encore d'exigences sur la façon dont tout devrait ressembler. Dans le mĂŞme temps, nous avons immĂ©diatement commencĂ© Ă  parler de l'authentification des individus non seulement dans la banque en ligne, mais aussi sur les ressources des partenaires. Le mĂŞme bouton "Entrer via VTB". 





Voici à quoi ressemblera l'entrée via VTB





Il en découle que nous devions prendre la solution la plus universelle et commencer à l'utiliser. En cours d'utilisation, nous pourrions déterminer ce dont nous avons exactement besoin, quelles fonctions manquent, etc.





Choisir la voie Ă  suivre





Après avoir cherché sur Internet, fumé les carrés magiques de Gartner, ils ont commencé à se pencher sur des solutions open source avec un soutien en Russie:





• WSO2 Identity Server





• Keycloak





• OpenAM





WSO2 , . .





WSO2 Identity Server





2019 .





(, ) —





, OAuth 2 ID- JWT, . , JWT — :





1. (HEADER) , , .





2. (PAYLOAD) — — , , .





3. (SIGNATURE) , , .





JSON Web Token (JWT)





— , . Base64.





ID- JWT : , . — . API Gateway, .









, X , , «» . 





— API Gateway. , , Redis TimeToLive.





, , ? - . , , , .





«»





, « ""» (()​ « »). (HttpOnly, SameSite, Secure) UUID. UUID , , CRC32, — JWT. . , , . , « — » . 





,  





. , , , , , -, , (, push, - ).





. , , WSO2 IS, , , API SPA. 





, JSP. -, API .





- , . 





- API/oauth2/token — . 





- grant_type, /oauth2/token, .





. - — . , — grant type. , . 





, ,





, , — - , « » . WSO2 IS . 





. PostgreSQL Redis. . 





:)





, , . — . ( , - ) . 





— , . — .





active-active active-passive, PostgreSQL Redis. - .





— WSO2 IS. . Redis, JWT refresh-. 





? SSO





WSO2 IS, , , , , . 





-. . . «», « » , , . . 





« »





, , , «» . . , , « » (, « », ). — .









, . . ? WSO2 IS? 





, , , , — , . , — .





: SSO, .





: ? , Tarantool Data Grid?








All Articles