SSO Chronicles: Bank, Token, dan Little Magic

Hei! Nama saya Artem Ivlev, dan saya terlibat dalam arsitektur identifikasi klien VTB Bank. Tugas kita adalah menjawab pertanyaan siapa yang menggunakan layanan perbankan kita: perbankan seluler atau Internet, asisten suara, atau hanya salah satu dari sekian banyak kantor. Ada banyak alat untuk ini - dan saya ingin memberi tahu Anda tentang pembentukan salah satunya. 





Prolog





Di tahun 2019, ekosistem bank berkembang pesat, dan semakin banyak kami membutuhkan satu titik masuk untuk pelanggan dan penyedia identifikasi. Dan hanya ada direktori akun dan solusi terpisah dari tim yang berbeda untuk otentikasi.





Kami belum memiliki persyaratan tentang bagaimana segala sesuatu harus terlihat. Pada saat yang sama, kami segera mulai berbicara tentang otentikasi individu tidak hanya di bank online, tetapi juga pada sumber daya mitra. Tombol yang sama "Masuk melalui VTB". 





Seperti inilah tampilan pintu masuk melalui VTB





Dari sini diikuti bahwa kami perlu mengambil solusi paling universal dan mulai menggunakannya. Dalam proses penggunaan, kami dapat mencari tahu apa yang sebenarnya kami butuhkan, fungsi apa yang hilang, dll.





Memilih jalan mana yang harus dituju





Setelah mencari di Internet, mengisap kotak ajaib Gartner, mereka mulai mencari solusi open source dengan dukungan di Rusia:





• 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