Este componente permite que você integre Provedores OAuth2 Externos (como Azure AD, Google, Facebook.
Este componente permite que você integre Provedores OAuth2 Externos (como Azure AD, Google, Facebook...) no seu componente servidor (como um servidor HTTP), para que um usuário possa fazer login usando as credenciais do Azure AD e, se a autenticação for bem-sucedida, o servidor HTTP pode fornecer acesso a recursos protegidos.
Os componentes de servidor possuem uma propriedade chamada Authorization.OAuth.OAuth2Provider, onde você pode atribuir uma instância de TsgcHTTP_OAuth2_Server_Provider, então se a Authentication estiver habilitada e a propriedade OAuh2Provider estiver vinculada ao OAuth2 Provider Server Component, os WebSocket e HTTP Requests exigem um Cookie / Bearer Token para serem processados; caso contrário, a conexão será fechada automaticamente.
OAuth2Provider := TsgcHTTP_OAuth2_Server_Provider.Create(nil);
Server.Authentication.Enabled := True;
Server.Authentication.OAuth.OAuth2Provider := OAuth2Provider;
Antes de o servidor ser iniciado, você deve configurar os OAuth2 Providers que o servidor utilizará para autenticar. Utilize o método RegisterProvider para configurar os OAuth2 Providers, este método tem os seguintes parâmetros:
Exemplo: para configurar o Azure AD, é necessário um tenant-id que é adicionado às URLs OAuth2, ClientId, ClientSecret, Scope e uma CallbackURL.
RegisterProvider(
'azure',
'90945b8d-f6b7-4b97-b2bd-21c3c90b5f3x',
'PN67Q~5m06c-~X_GMyMf9zMntmm5l2dt~3jVq',
'https://login.microsoftonline.com/a0ca2055-5dd1-467f-bf13-291f6fd715c6/oauth2/v2.0/authorize',
'https://login.microsoftonline.com/a0ca2055-5dd1-467f-bf13-291f6fd715c6/oauth2/v2.0/token',
'user.read',
'/login',
'https://localhost/callback'
);
Para excluir um Provider existente, use o método UnRegisterProvider.