Cuando un cliente necesita un nuevo token de acceso, inicia automáticamente un servidor HTTP para procesar la respuesta del servidor de autorización.
Este componente le permite gestionar el flujo entre el cliente y los demás roles; básicamente, cuando establece Active := True, abre un nuevo navegador web y solicita que el usuario otorgue autorización. Si tiene éxito, el servidor de autorización envía un token a la aplicación, que es procesado, y con este token el cliente puede conectarse al servidor de recursos. Este componente inicia un servidor HTTP simple que gestiona las respuestas del servidor de autorización y utiliza un cliente HTTP para solicitar tokens de acceso.
GrantType
El cliente admite los siguientes tipos de Autorización:
auth2Code: Se utiliza para realizar la autenticación y autorización en la mayoría de los tipos de aplicaciones, incluidas las aplicaciones de página única, las aplicaciones web y las aplicaciones instaladas de forma nativa. El flujo permite a las aplicaciones adquirir de forma segura access_tokens que pueden usarse para acceder a recursos protegidos, así como tokens de actualización para obtener access_tokens adicionales y tokens ID para el usuario que ha iniciado sesión.

auth2CodePKCE: es el mismo flujo de autenticación que auth2Code con PKCE habilitado. PKCE (Proof Key for Code Exchange) es una extensión de seguridad para OAuth 2.0, diseñada para mejorar la seguridad de los flujos de autorización en aplicaciones nativas y de página única. Mitiga el riesgo de ataques de interceptación, especialmente en clientes públicos donde el código de autorización puede quedar expuesto a interceptaciones en tránsito. Generalmente, esta opción se utiliza en aplicaciones nativas y móviles.
auth2ClientCredentials: Este tipo de concesión se usa habitualmente para interacciones servidor a servidor que deben ejecutarse en segundo plano, sin interacción inmediata con un usuario. Este tipo de aplicaciones se denominan a menudo demonios o cuentas de servicio.

auth2DeviceCode: Concesión de autorización de dispositivo (RFC 8628) para dispositivos con capacidad de entrada limitada, como televisores inteligentes, consolas multimedia y dispositivos IoT que no tienen navegador o tienen capacidades de entrada restringidas. El dispositivo muestra un código de usuario y un URI de verificación; el usuario visita el URI en un dispositivo secundario (teléfono u ordenador) e introduce el código para autorizar.
LocalServerOptions
Cuando un cliente necesita un nuevo token de acceso, inicia automáticamente un servidor HTTP para procesar la respuesta del servidor de autorización. Este servidor es transparente para el usuario y normalmente funciona en localhost. Por defecto utiliza el puerto 8080, pero puede cambiarlo si es necesario.
AuthorizationServerOptions
Aquí debe establecer la URL para el token de autorización y acceso, que generalmente se proporcionan en la especificación de la API. Scope es una lista de todos los ámbitos solicitados por el cliente. Ejemplo:
OAuth2Options
ClientId es un campo obligatorio que informa al servidor de la identificación del cliente. Consulte su especificación de API para saber cómo obtener un ClientId. Lo mismo aplica para el client secret.
A veces, el servidor requiere un usuario y contraseña para conectarse mediante Autenticación Básica; en ese caso, puede configurarlos en los campos Username/Password. Ejemplo:
HTTPClientOptions
Aquí puede personalizar las Opciones del Cliente cuando se conecta al Servidor HTTP para solicitar un nuevo token.
TLSOptions: si TLS está habilitado, aquí puede personalizar algunas propiedades de TLS.
ALPNProtocols: lista de los protocolos ALPN que se enviarán al servidor.
RootCertFile: ruta al archivo de certificado raíz.
CertFile: ruta al archivo de certificado.
KeyFile: ruta al archivo de clave del certificado.
Password: si el certificado está protegido con contraseña, configúrela aquí.
VerifyCertificate: si se debe verificar el certificado, habilite esta propiedad.
VerifyDepth: es una propiedad Integer que representa el número máximo de enlaces permitidos al realizar la verificación del certificado X.509.
Version: por defecto utiliza TLS 1.0; si el servidor requiere una versión TLS superior, puede seleccionarse aquí.
IOHandler: seleccione la biblioteca que utilizará para conectarse mediante TLS.
iohOpenSSL: utiliza la biblioteca OpenSSL y es la opción predeterminada para los componentes Indy. Requiere desplegar las bibliotecas OpenSSL para win32/win64.
iohSChannel: utiliza Secure Channel, que es un protocolo de seguridad implementado por Microsoft para Windows, no requiere desplegar bibliotecas OpenSSL. Solo funciona en Windows 32/64 bits.
OpenSSL_Options: permite definir qué API de OpenSSL se utilizará.
APIVersion: permite definir qué API de OpenSSL se utilizará.
oslAPI_1_0: utiliza API 1.0 de OpenSSL, la última versión compatible con Indy
oslAPI_1_1: utiliza la API 1.1 de OpenSSL, requiere nuestra biblioteca Indy personalizada y permite usar las bibliotecas OpenSSL 1.1.1 (con soporte para TLS 1.3).
oslAPI_3_0: usa la API 3.0 de OpenSSL, requiere nuestra biblioteca Indy personalizada y permite usar las bibliotecas OpenSSL 3.0.0 (con soporte TLS 1.3).
LibPath: aquí puede configurar dónde se encuentran las bibliotecas openSSL
oslpNone: es el valor predeterminado; las bibliotecas openSSL deben estar en la misma carpeta donde se encuentra el binario o en una ruta conocida.
oslpDefaultFolder: establece automáticamente la ruta de openSSL donde deben ubicarse las bibliotecas para todas las personalidades del IDE.
oslpCustomFolder: si esta es la opción seleccionada, defina la ruta completa en la propiedad LibPathCustom.
LibPathCustom: cuando LibPath = oslpCustomFolder, defina aquí la ruta completa donde se encuentran las bibliotecas openSSL.
UnixSymLinks: habilita o deshabilita la carga de SymLinks en sistemas Unix (por defecto está habilitado, excepto en OSX64):
oslsSymLinksDefault: están habilitados por defecto excepto en OSX64 (tras MacOS Monterey, falla al intentar cargar la biblioteca sin versión.).
oslsSymLinksLoadFirst: Cargar los SymLinks antes de intentar cargar las bibliotecas de versión.
oslsSymLinksLoad: Cargar SymLinks después de intentar cargar las bibliotecas de versión.
oslsSymLinksDontLoad: no carga los SymLinks.
SChannel_Options: permite usar un certificado del almacén de certificados de Windows.
CertHash: es el Hash del certificado. Puede encontrar el Hash del certificado ejecutando un comando dir en powershell.
CertStoreName: el nombre del almacén donde se guarda el certificado. Seleccione una de las siguientes opciones:
scsnMY (el predeterminado)
scsnCA
scsnRoot
scsnTrust
CertStorePath: la ruta del almacén donde se guarda el certificado. Seleccione una de las siguientes:
scspStoreCurrentUser (el valor predeterminado)
scspStoreLocalMachine
LogOptions: si se especifica un nombre de archivo, guardará un log de las solicitudes/respuestas HTTP del cliente HTTP