SSO Chronicles: Bank, Tokens, and a Little Magic

Ei! Meu nome Ă© Artem Ivlev, e atuo na arquitetura de identificação de clientes do Banco VTB. A nossa tarefa Ă© responder Ă  questĂŁo de quem utiliza o nosso serviço bancário: mobile ou Internet banking, voice assistant ou apenas um dos muitos escritĂłrios. Existem muitas ferramentas para isso - e quero falar sobre a formação de uma delas. 





PrĂłlogo





Estamos em 2019, o ecossistema do banco está crescendo aos trancos e barrancos, e cada vez mais precisamos de um único ponto de entrada para clientes e um provedor de identificação. E há apenas um diretório de contas e soluções separadas de diferentes equipes para autenticação.





Ainda nĂŁo tĂ­nhamos requisitos para a aparĂŞncia de tudo. Ao mesmo tempo, começamos imediatamente a falar sobre a autenticação de pessoas nĂŁo sĂł no banco online, mas tambĂ©m sobre os recursos de parceiros. O mesmo botĂŁo "Entrar por VTB". 





É assim que a entrada através de VTB será semelhante





A partir disso, precisamos pegar a solução mais universal e começar a usá-la. No processo de uso, podemos descobrir o que exatamente precisamos, quais funções estão faltando, etc.





Escolhendo qual caminho seguir





Depois de pesquisar na Internet, fumar os quadrados mágicos do Gartner, eles começaram a procurar soluções de código aberto com suporte na Rússia:





• 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