Gdy klient potrzebuje nowego tokenu dostępu, automatycznie uruchamia serwer HTTP w celu przetworzenia odpowiedzi serwera autoryzacji.
Ten komponent umożliwia obsługę przepływu między klientem a innymi rolami. Zasadniczo po ustawieniu Active := True otwiera nową przeglądarkę internetową i żąda od użytkownika udzielenia autoryzacji. W przypadku powodzenia serwer autoryzacji wysyła token do aplikacji, który jest przetwarzany, a dzięki niemu klient może połączyć się z serwerem zasobów. Komponent uruchamia prosty serwer HTTP, który obsługuje odpowiedzi serwera autoryzacji, i używa klienta HTTP do żądania tokenów dostępu.
GrantType
Klient obsługuje następujące typy autoryzacji:
auth2Code: Stosowany do uwierzytelniania i autoryzacji w większości typów aplikacji, w tym jednostronicowych, webowych i natywnych. Przepływ umożliwia aplikacjom bezpieczne uzyskiwanie access_token, które można wykorzystać do dostępu do chronionych zasobów, a także tokenów odświeżania do uzyskiwania kolejnych access_token oraz tokenów ID dla zalogowanego użytkownika.

auth2CodePKCE: jest to ten sam przepływ uwierzytelniania co auth2Code z włączonym PKCE. PKCE (Proof Key for Code Exchange) to rozszerzenie zabezpieczeń dla OAuth 2.0, zaprojektowane w celu zwiększenia bezpieczeństwa przepływów autoryzacji dla aplikacji natywnych i jednostronicowych. Ogranicza ryzyko ataków polegających na przechwyceniu, szczególnie w przypadku klientów publicznych, gdzie kod autoryzacji może być narażony na przechwycenie podczas transmisji. Opcja ta jest zazwyczaj stosowana w aplikacjach natywnych i mobilnych.
auth2ClientCredentials: Ten typ przydziału jest powszechnie stosowany w interakcjach serwer-serwer, które muszą działać w tle bez bezpośredniego udziału użytkownika. Aplikacje tego rodzaju są często określane jako demony lub konta usług.

auth2DeviceCode: Przyznanie autoryzacji urządzenia (RFC 8628) dla urządzeń z ograniczonymi możliwościami wprowadzania danych, takich jak telewizory Smart TV, konsole multimedialne i urządzenia IoT pozbawione przeglądarki lub mające ograniczone możliwości wejścia. Urządzenie wyświetla kod użytkownika i adres URI weryfikacyjny; użytkownik odwiedza ten adres na urządzeniu pomocniczym (telefon lub komputer) i wprowadza kod w celu autoryzacji.
LocalServerOptions
Gdy klient potrzebuje nowego tokenu dostępu, automatycznie uruchamiany jest serwer HTTP w celu przetworzenia odpowiedzi z serwera autoryzacji. Ten serwer jest transparentny dla użytkownika i zazwyczaj działa na localhost. Domyślnie używa portu 8080, lecz można go zmienić w razie potrzeby.
AuthorizationServerOptions
Tutaj należy ustawić adresy URL autoryzacji i tokenu dostępu, które zazwyczaj są podane w specyfikacji API. Scope to lista wszystkich zakresów żądanych przez klienta. Przykład:
OAuth2Options
ClientId jest polem obowiązkowym informującym serwer o identyfikacji klienta. Sposób uzyskania ClientId należy sprawdzić w specyfikacji API. To samo dotyczy client secret.
Czasami serwer wymaga nazwy użytkownika i hasła do połączenia za pomocą uwierzytelniania Basic. W takim przypadku należy skonfigurować je w polach Username/Password. Przykład:
HTTPClientOptions
W tym miejscu można dostosować opcje klienta używane podczas połączenia z serwerem HTTP w celu żądania nowego tokenu.
TLSOptions: jeśli TLS jest włączone, tutaj można dostosować niektóre właściwości TLS.
ALPNProtocols: lista protokołów ALPN, które zostaną wysłane do serwera.
RootCertFile: ścieżka do pliku certyfikatu głównego.
CertFile: ścieżka do pliku certyfikatu.
KeyFile: ścieżka do pliku klucza certyfikatu.
Password: jeśli certyfikat jest zabezpieczony hasłem, należy je tutaj podać.
VerifyCertificate: jeśli certyfikat musi być weryfikowany, należy włączyć tę właściwość.
VerifyDepth: właściwość całkowitoliczbowa określająca maksymalną liczbę ogniw dozwolonych podczas weryfikacji certyfikatu X.509.
Version: domyślnie używa TLS 1.0; jeśli serwer wymaga wyższej wersji TLS, można ją tutaj wybrać.
IOHandler: wybierz bibliotekę, której chcesz użyć do połączenia przez TLS.
iohOpenSSL: korzysta z biblioteki OpenSSL i jest domyślną opcją dla komponentów Indy. Wymaga wdrożenia bibliotek OpenSSL dla win32/win64.
iohSChannel: używa kanału Secure Channel — protokołu bezpieczeństwa zaimplementowanego przez Microsoft dla systemu Windows; nie wymaga wdrażania bibliotek openssl. Działa wyłącznie w systemie Windows 32/64 bity.
OpenSSL_Options: umożliwia zdefiniowanie, które API OpenSSL będzie używane.
APIVersion: pozwala określić, które API OpenSSL będzie używane.
oslAPI_1_0: używa API 1.0 OpenSSL; jest to najnowsza wersja obsługiwana przez Indy
oslAPI_1_1: używa interfejsu API 1.1 OpenSSL, wymaga niestandardowej biblioteki Indy i umożliwia korzystanie z bibliotek OpenSSL 1.1.1 (z obsługą TLS 1.3).
oslAPI_3_0: korzysta z API OpenSSL 3.0, wymaga naszej niestandardowej biblioteki Indy i umożliwia używanie bibliotek OpenSSL 3.0.0 (z obsługą TLS 1.3).
LibPath: tutaj można skonfigurować lokalizację bibliotek openSSL
oslpNone: jest to wartość domyślna; biblioteki OpenSSL powinny znajdować się w tym samym folderze co plik binarny lub w znanej ścieżce.
oslpDefaultFolder: automatycznie ustawia ścieżkę openSSL, w której powinny znajdować się biblioteki dla wszystkich osobowości IDE.
oslpCustomFolder: jeśli ta opcja jest wybrana, należy zdefiniować pełną ścieżkę we właściwości LibPathCustom.
LibPathCustom: gdy LibPath = oslpCustomFolder, należy podać pełną ścieżkę do folderu, w którym znajdują się biblioteki openSSL.
UnixSymLinks: włącz lub wyłącz ładowanie dowiązań symbolicznych w systemach Unix (domyślnie włączone, z wyjątkiem OSX64):
oslsSymLinksDefault: domyślnie jest włączone, z wyjątkiem platformy OSX64 (po MacOS Monterey próba załadowania biblioteki bez wersji kończy się błędem).
oslsSymLinksLoadFirst: Załaduj dowiązania symboliczne przed próbą załadowania bibliotek wersji.
oslsSymLinksLoad: Ładuj dowiązania symboliczne po próbie załadowania bibliotek wersji.
oslsSymLinksDontLoad: nie ładuj dowiązań symbolicznych.
SChannel_Options: umożliwia korzystanie z certyfikatu z magazynu certyfikatów systemu Windows.
CertHash: to skrót certyfikatu. Skrót certyfikatu można znaleźć, uruchamiając polecenie dir w programie PowerShell.
CertStoreName: nazwa magazynu, w którym przechowywany jest certyfikat. Należy wybrać jedną z poniższych opcji:
scsnMY (wartość domyślna)
scsnCA
scsnRoot
scsnTrust
CertStorePath: ścieżka magazynu, w którym przechowywany jest certyfikat. Wybierz jedną z poniższych opcji:
scspStoreCurrentUser (domyślne)
scspStoreLocalMachine
LogOptions: jeśli podana jest nazwa pliku, zapisuje dziennik żądań/odpowiedzi HTTP klienta HTTP