TsgcHTTP_OAuth2_Server_Provider

Este componente le permite integrar Proveedores OAuth2 Externos (como Azure AD, Google, Facebook).

Introducción

Este componente le permite integrar Proveedores OAuth2 externos (como Azure AD, Google, Facebook...) en su componente de servidor (como un servidor HTTP), de modo que un usuario pueda iniciar sesión con las credenciales de Azure AD y, si la autenticación es correcta, el servidor HTTP pueda proporcionar acceso a recursos protegidos.

 

Los componentes servidor tienen una propiedad denominada Authorization.OAuth.OAuth2Provider donde puede asignar una instancia de TsgcHTTP_OAuth2_Server_Provider; así, si la autenticación está habilitada y la propiedad OAuh2Provider está vinculada al componente servidor proveedor OAuth2, las solicitudes WebSocket y HTTP requieren una Cookie o Bearer Token para ser procesadas; de lo contrario, la conexión se cerrará automáticamente.


    OAuth2Provider := TsgcHTTP_OAuth2_Server_Provider.Create(nil);
    Server.Authentication.Enabled := True;
    Server.Authentication.OAuth.OAuth2Provider := OAuth2Provider;

 

Registrar proveedor OAuth2

Antes de iniciar el servidor, debe configurar los proveedores OAuth2 que el servidor utilizará para autenticar. Use el método RegisterProvider para configurar los proveedores OAuth2; este método tiene los siguientes parámetros:

 

 

Ejemplo: para configurar Azure AD, se requiere un tenant-id que se añade a las URLs de OAuth2, ClientId, ClientSecret, Scope y una 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 eliminar un proveedor existente, use el método UnRegisterProvider.

Referencia

Guías