KeycloakHandlers
Introdução
Módulo de autenticação OAuth2/OpenID Connect para integração Keycloak em aplicações Bokeh+Tornado.
Índice
- Visão Geral
- Configuração
- Keycloak Mixin
- Refresh token
- Get authenticated user
- Oidc Login Handler
- Get
- Logout Handler
- Get Logout Handler
Visão Geral
Implementa fluxo OAuth2 para:
- Autenticação centralizada via Keycloak
- Gestão de tokens JWT (access/refresh/ID)
- Cookies seguros assinados
- Integração nativa com Bokeh Server
Keycloack Mixing
Implementação de OAuth2 a partir dos métodos fornecidos por OAuth2Mixin.
Este mixin depende de configurações específicas dentro do cliente do Keycloak. O cliente
não deve retornar session_state ou iss como parâmetros após a autenticação.
Refresh token
Faz a requisição para atualizar o token de acesso após sua expiração
Parâmetros:
request_handler (RequestHandler): O RequestHandler provido pelo Bokeh.
Retorno
Dict[str, Any]: Objetos Python obtidos a partir da decodificação de uma string JSON.
Get authenticated user
Faz a requisição para obter os tokens de acesso, atualização e identidade da sessão.
Parâmetros:
redirect_uri (str): A próxima url a ser acessada pelo sistema.
Retorno:
Dict[str, Any]: Dicionário contendo os tokens de acesso, atualização e identidade da sessão.
Oidc Login Handler
Classe que define o método get em RequestHandler e usa funcionalidades do KeycloakMixin para definir a lógica de login do BokehTornado junto ao Keycloak.
Herança
RequestHandler (class): Classe base do Tornado para classes que manipulam requisições HTTP. KeycloakMixin (class): Implementação de OAuth2 a partir dos métodos fornecidos por OAuth2Mixin.
Get
Define uma rotina em torno da existência ou não do argumento code na URL. Suaexistência significa um login já realizado, permitindo que os cookies sejam salvos. Sua não existência leva à página de login do realm.
Raises
web.HTTPError: Existindo code, levanta HTTPError se impossível de obter o access token.
Logout Handler
Classe que define o método get em RequestHandler e usa funcionalidades do KeycloakMixin
para definir a lógica de logout do BokehTornado junto ao Keycloak.
Herança
RequestHandler (class): Classe base do Tornado para classes que manipulam requisições HTTP. ** KeycloakMixin (class):** Implementação de OAuth2 a partir dos métodos fornecidos por OAuth2Mixin.
Get Logout Handler
Define uma rotina simples para o logout do usuário. Faz a requsição de logout a partido id_token obtido e limpa todos os cookies.