SSO Chronicles: Bank, Tokens und ein bisschen Magie

Hallo! Mein Name ist Artem Ivlev und ich beschäftige mich mit der Architektur der Identifizierung von Kunden der VTB Bank. Unsere Aufgabe ist es, die Frage zu beantworten, wer unseren Bankdienst nutzt: Mobil- oder Internetbanking, Sprachassistent oder nur eines der vielen BĂĽros. DafĂĽr gibt es viele Werkzeuge - und ich möchte Ihnen von der Entstehung eines davon erzählen. 





Prolog





Es ist 2019, das Ökosystem der Bank wächst sprunghaft und wir brauchen immer mehr einen einzigen Einstiegspunkt für Kunden und einen Identifikationsanbieter. Und es gibt nur ein Verzeichnis von Konten und separate Lösungen verschiedener Teams zur Authentifizierung.





Wir hatten noch keine Anforderungen, wie alles aussehen sollte. Gleichzeitig haben wir sofort begonnen, ĂĽber die Authentifizierung von Personen nicht nur in der Online-Bank, sondern auch ĂĽber die Ressourcen von Partnern zu sprechen. Die gleiche Schaltfläche "Enter via VTB". 





So wird der Eingang ĂĽber VTB aussehen





Daraus folgte, dass wir die universellste Lösung nehmen und sie verwenden mussten. Während des Gebrauchs konnten wir herausfinden, was wir genau brauchen, welche Funktionen fehlen usw.





Wählen Sie den Weg





Nachdem sie das Internet durchsucht und Gartners magische Quadrate geraucht hatten, begannen sie, Open-Source-Lösungen mit Unterstützung in Russland zu suchen:





• 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