Alleen een client
Log je gebruikers in bij de identityprovider van iemand anders, Google, Microsoft, Auth0, Okta, Keycloak, AWS Cognito, je eigen bedrijfs-SSO, dan heb je niets anders nodig dan TsgcHTTP_OAuth2_Client. Die component zit gecompileerd in de Standard-editie en in elke editie daarboven. Hij is ook los verkrijgbaar in het zelfstandige package sgcAuth, met de runtime die hij nodig heeft erbij.
Dit is het gebruikelijke geval, en het is alles wat deze pagina tot hier behandelt.
Wanneer je ook een server nodig hebt
Je hebt de serverhelft alleen nodig als je eigen toepassing de autorisatieserver is: jij geeft de client ids uit, jij host de inlogpagina, jij maakt de access tokens aan die je API vervolgens vertrouwt en trekt ze weer in. Dat is TsgcHTTP_OAuth2_Server, gekoppeld aan een TsgcWebSocketHTTPServer, en dat is een Enterprise-component.
Hij controleert PKCE standaard. OAuth2Options.PKCE staat direct op True, dus een client die een challenge stuurt moet een bijpassende verifier leveren, en een client die dat niet doet wordt geweigerd. Registreer clienttoepassingen met Apps.AddApp, authenticeer gebruikers in OnOAuth2Authentication, en herstel tokens na een herstart met AddToken.
Dezelfde Enterprise-laag bevat TsgcHTTP_JWT_Server om JWT bearer tokens op je endpoints te valideren en TsgcWSAPIServer_WebAuthn voor passkeys. De bijbehorende clients, TsgcHTTP_OAuth2_Client en TsgcHTTP_JWT_Client, zitten in Standard en hoger. Client en server zitten in verschillende editielagen, en dat is het waard om te controleren voordat je je planning op een van beide baseert.