Este componente fornece a implementação do protocolo OAuth2 nos componentes do lado do servidor.
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.
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.
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.
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:
Use Apps.RemoveApp para excluir um App existente.
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
Remove um Token já emitido.
A propriedade OAuth2Options permite configurar os endpoints do servidor e recursos opcionais.
Revogação de token conforme a RFC 7009. Quando habilitado, os clientes podem revogar access ou refresh tokens emitidos anteriormente.
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.
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.