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?