Ten komponent umożliwia integrację zewnętrznych dostawców OAuth2 (takich jak Azure AD, Google, Facebook).
Ten komponent umożliwia integrację zewnętrznych dostawców OAuth2 (takich jak Azure AD, Google, Facebook...) z komponentem serwera (np. serwerem HTTP), dzięki czemu użytkownik może zalogować się przy użyciu poświadczeń Azure AD, a w przypadku pomyślnego uwierzytelnienia serwer HTTP może udzielić dostępu do chronionych zasobów.
Komponenty serwera mają właściwość Authorization.OAuth.OAuth2Provider, do której można przypisać instancję TsgcHTTP_OAuth2_Server_Provider. Jeśli uwierzytelnianie jest włączone i właściwość OAuh2Provider jest dołączona do komponentu serwera OAuth2 Provider, żądania WebSocket i HTTP wymagają pliku cookie lub tokenu Bearer, aby zostały przetworzone; w przeciwnym razie połączenie zostanie automatycznie zamknięte.
OAuth2Provider := TsgcHTTP_OAuth2_Server_Provider.Create(nil);
Server.Authentication.Enabled := True;
Server.Authentication.OAuth.OAuth2Provider := OAuth2Provider;
Przed uruchomieniem serwera należy skonfigurować dostawców OAuth2, których serwer będzie używał do uwierzytelniania. Do konfiguracji dostawców OAuth2 służy metoda RegisterProvider, która przyjmuje następujące parametry:
Przykład: aby skonfigurować Azure AD, wymagany jest tenant-id, który jest dodawany do adresów URL OAuth2, a także ClientId, ClientSecret, Scope i 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'
);
Aby usunąć istniejącego dostawcę, należy użyć metody UnRegisterProvider.