Skip to main content

KeycloakHandlers

Introdução

Módulo de autenticação OAuth2/OpenID Connect para integração Keycloak em aplicações Bokeh+Tornado.

Índice

  1. Visão Geral
  2. Configuração
  3. Keycloak Mixin
  4. Refresh token
  5. Get authenticated user
  6. Oidc Login Handler
  7. Get
  8. Logout Handler
  9. 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.