TsgcHTTP_OAuth2_Server

Este componente fornece a implementação do protocolo OAuth2 nos componentes do lado do servidor.

Introdução

Este componente fornece a implementação do protocolo OAuth2 nos componentes do lado do servidor.

Os componentes de servidor têm uma propriedade chamada Authorization.OAuth.OAuth2 onde você pode atribuir uma instância de TsgcHTTP_OAuth2_Server, de modo que, se a Authentication estiver habilitada e a propriedade OAuth2 estiver anexada ao componente OAuth2 Server, as WebSocket e HTTP Requests exigirão um Bearer Token para serem processadas; caso contrário, a conexão será fechada automaticamente.


    OAuth2 := TsgcHTTP_OAuth2_Server.Create(nil);
    Server.Authentication.Enabled := True;
    Server.Authentication.OAuth.OAuth2 := OAuth2;

O servidor suporta os seguintes tipos de autorização:

O tipo de Authorization pode ser personalizado ao registrar o App; por padrão, todos os tipos de autorização são suportados.

EndPoints

Por padrão, o componente é configurado com os seguintes endpoints para tratar requisições de Authorization e Token

Authorization: /sgc/oauth2/auth

Token: /sgc/oauth2/token

Revocation: /sgc/oauth2/revoke

Introspection: /sgc/oauth2/introspect

Device Authorization: /sgc/oauth2/device

Device Verification: /sgc/oauth2/device/verify

Portanto, se o servidor estiver escutando na porta 443 e o domínio for www.esegece.com, os EndPoints serão:

Authorization: https://www.esegece.com/sgc/oauth2/auth

Token: https://www.esegece.com/sgc/oauth2/token

Revocation: https://www.esegece.com/sgc/oauth2/revoke

Introspection: https://www.esegece.com/sgc/oauth2/introspect

Device Authorization: https://www.esegece.com/sgc/oauth2/device

Device Verification: https://www.esegece.com/sgc/oauth2/device/verify

Os endpoints podem ser configurados na propriedade OAuth2Options.

Por padrão, o PKCE (é uma extensão do fluxo Authorization Code para evitar ataques de CSRF e de injeção de código de autorização) está habilitado.

Configuração

Antes de poder iniciar o processo de OAuth2, você deve registrar quais Apps estarão disponíveis, isso é feito utilizando a propriedade Apps do componente servidor OAuth2.

Registrar app

Use Apps.AddApp para adicionar um novo Application ao servidor OAuth2, você deve definir os seguintes parâmetros:

Opcionalmente, você pode definir os seguintes parâmetros:

Excluir App

Use Apps.RemoveApp para excluir um App existente.

AddToken

Se o servidor tiver sido reiniciado enquanto havia alguns tokens emitidos, você pode recuperar esses tokens utilizando o método AddToken antes de iniciar o OAuth2 Server e após registrar os Apps

RemoveToken

Remove um Token já emitido.

OAuth2Options

A propriedade OAuth2Options permite configurar os endpoints do servidor e recursos opcionais.

Revogação

Revogação de token conforme a RFC 7009. Quando habilitado, os clientes podem revogar access ou refresh tokens emitidos anteriormente.

Introspection

Introspecção de token conforme a RFC 7662. Quando habilitada, os servidores de recursos podem consultar o servidor de autorização para determinar o estado ativo e os metadados de um token.

DeviceAuthorization

Device Authorization Grant conforme a RFC 8628. Quando habilitado, dispositivos com entrada limitada podem solicitar autorização fazendo o usuário autorizar em um dispositivo secundário.

 

Referência

Guides