Skip to main content

Keycloak Handlers

Módulo de autenticação OAuth2/OpenID Connect para integração do Keycloak com a aplicação Bokeh+Tornado.

Índice

  1. Visão Geral
  2. Keycloak Mixin
  3. Oidc Login Handler
  4. 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

Keycloak Mixin

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.

Herança (Keycloak Mixin)

OAuth2Mixin (class): Implementação abstrata de OAuth 2.0.

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.

Returns: 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.

Returns: 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 (Oidc Login Handler)

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 (Oidc Login Handler)

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 (Logout Handler)

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.