Nodefony 10.0.0-beta.5
Framework Node.js fullstack — HTTP & WebSocket, même contexte

Référence d'API — @nodefony/security — oauth

stable

Documentation › Référence d’API › @nodefony/security › oauth

Générée depuis les déclarations de types publiées de @nodefony/security 10.0.0-beta.5 : exactement ce que reçoit une application qui l’installe. Cette page n’existe dans aucun dépôt — pour la corriger, on corrige le TSDoc du code.

@nodefony/security#

import { … } from "@nodefony/security" — 32 symboles.

Classes (3)#

OAuth2Client#

class OAuth2Client

Client d’un serveur d’autorisation donné : construit l’URL d’autorisation puis échange le code contre des jetons.

OAuth2RequestError#

class OAuth2RequestError extends Error

Refus du serveur d’autorisation au point de jeton (RFC 6749 §5.2). Porte le code error normalisé — la seule partie de la réponse sûre à journaliser.

OAuth2Tokens#

class OAuth2Tokens

Jetons rendus par le point de jeton (RFC 6749 §5.1), enveloppés pour qu’un champ attendu mais absent lève une erreur NOMMÉE au lieu de propager un undefined jusqu’au décodage du profil.

Fonctions (14)#

createCodeChallenge#

function createCodeChallenge(codeVerifier: string): string

Calcule le code_challenge de la méthode S256 (RFC 7636 §4.2) : BASE64URL(SHA256(ASCII(code_verifier))).

createDiscoveredOidcProvider#

function createDiscoveredOidcProvider(name: string, ctx: IOAuthProviderContext, options?: IDiscoveredOidcOptions): Promise<IOAuthProvider>

Construit un fournisseur OIDC en demandant ses points d’entrée à l’émetteur (RFC 8414 / OpenID Connect Discovery) — aucune URL n’est écrite en dur.

createGithubProvider#

function createGithubProvider(ctx: IOAuthProviderContext): IOAuthProvider

Fournisseur GitHub (OAuth 2.0 simple, NON-OIDC). Pas de PKCE, pas d’ID token : le profil est lu via l’API REST (/user), et l’email — souvent privé — via /user/emails (scope user:email). GitHub n’émet pas de paramètre iss (issuerPolicy = null) : la défense anti-CSRF repose sur le state.

createOidcProvider#

function createOidcProvider(opts: IOidcProviderOptions): IOAuthProvider

Fabrique un IOAuthProvider générique OIDC — couvre TOUT fournisseur OpenID Connect sans code spécifique : le profil se lit toujours pareil (claims standard sub/email/email_verified/name de l’ID token).

diagnoseOAuthProvider#

function diagnoseOAuthProvider(input: IOAuthDiagnosisInput): Promise<IOAuthDiagnosis>

Diagnostique un fournisseur OAuth sans connexion humaine.

discoverAuthorizationServer#

function discoverAuthorizationServer(rawIssuer: string, options?: IDiscoveryOptions): Promise<IDiscoveredAuthorizationServer>

Interroge un serveur d’autorisation et rend ses points d’entrée.

generateCodeVerifier#

function generateCodeVerifier(): string

Tire un code_verifier PKCE (RFC 7636 §4.1) — 43 caractères de l’alphabet unreserved, porteurs de 256 bits d’entropie.

generateState#

function generateState(): string

Tire un state anti-CSRF (RFC 6749 §10.12, RFC 9700 §4.7) — 256 bits issus du générateur cryptographique du système.

getOAuthProviderFactory#

function getOAuthProviderFactory(name: string): OAuthProviderFactory

Fabrique d’un fournisseur par nom, ou undefined si inconnu.

listOAuthProviders#

function listOAuthProviders(): string[]

Noms enregistrés (validation boot, introspection Studio, tests).

oauthProviderRequiresIssuer#

function oauthProviderRequiresIssuer(name: string): boolean

true si le fournisseur nommé a déclaré exiger un émetteur en configuration.

readLogoutTokenClaims#

function readLogoutTokenClaims(issuer: string, payload: Record<string, unknown>): ILogoutTokenClaims | null

Lit ce qu’un jeton de déconnexion DÉSIGNE, une fois sa signature vérifiée — les points 5 à 7 de la validation (OpenID Connect Back-Channel Logout 1.0 §2.6) : sub ou sid présent, events qui le déclare jeton de déconnexion, AUCUN nonce.

registerOAuthProvider#

function registerOAuthProvider(name: string, factory: OAuthProviderFactory, registration?: IOAuthProviderRegistration): void

Enregistre (ou remplace) la fabrique d’un fournisseur OAuth. Appelée par les builtins au chargement, et par une application pour ses fournisseurs.

requestClientCredentialsToken#

function requestClientCredentialsToken(request: IClientCredentialsRequest): Promise<OAuth2Tokens>

Obtient un jeton d’accès pour un programme, par le flux client_credentials (RFC 6749 §4.4), auprès d’un émetteur découvert (RFC 8414).

Interfaces (11)#

IClientCredentialsRequest#

interface IClientCredentialsRequest

Ce qu’un programme présente pour obtenir un jeton EN SON PROPRE NOM (RFC 6749 §4.4) — un script, un service partenaire, un agent : aucun utilisateur, aucun navigateur.

IDiscoveredAuthorizationServer#

interface IDiscoveredAuthorizationServer

Points d’entrée retenus d’un serveur d’autorisation — le sous-ensemble dont le flux Authorization Code a besoin (RFC 8414 §2).

IDiscoveryOptions#

interface IDiscoveryOptions

Réglages de la découverte — l’injection de fetch est la voie pour éprouver sans TLS.

IOAuth2ClientOptions#

interface IOAuth2ClientOptions

Points d’entrée d’un serveur d’autorisation et identité du client.

IOAuthCheck#

interface IOAuthCheck

Le résultat d’une sonde.

IOAuthDiagnosis#

interface IOAuthDiagnosis

Le diagnostic d’un fournisseur.

IOAuthDiagnosisInput#

interface IOAuthDiagnosisInput

Ce que le diagnostic d’un fournisseur doit savoir.

IOAuthProviderContext#

interface IOAuthProviderContext

Contexte de construction d’un fournisseur (secrets et URL issus de la config).

IOAuthProviderRegistration#

interface IOAuthProviderRegistration

Ce qu’une fabrique EXIGE de la configuration — lu au démarrage, avant que le moindre utilisateur ne clique.

IOidcPkceClient#

interface IOidcPkceClient

Client d’un fournisseur OIDC avec PKCE — surface structurelle que OAuth2Client remplit, et qu’un test peut remplacer par un double sans réseau.

IOidcProviderOptions#

interface IOidcProviderOptions

Paramètres d’un fournisseur OIDC générique.

Types (4)#

OAuthCheckName#

type OAuthCheckName = "discovery" | "authorization" | "token" | "theme"

Les sondes, dans leur ordre. theme n’existe que si l’appelant fournit un IOAuthDiagnosisInput.pageCheck ET que la page d’autorisation s’y prête (Keycloak).

OAuthCheckStatus#

type OAuthCheckStatus = "ok" | "failed" | "inconclusive" | "skipped"

Verdict d’une sonde. inconclusive = le serveur a répondu quelque chose qu’on ne sait pas lire — ni un quitus, ni un manquement ; skipped = une sonde précédente a rendu celle-ci impossible.

OAuthFailureKind#

type OAuthFailureKind = "issuer-mismatch" | "discovery-failed" | "redirect-uri-rejected" | "authorization-refused" | "authorization-unreachable" | "secret-rejected" | "client-rejected" | "token-refused" | "token-unreachable" | "login-theme-mismatch"

La cause d’un échec, lisible par une machine (rapport, console, tests).

OAuthProviderFactory#

type OAuthProviderFactory = (ctx: IOAuthProviderContext) => IOAuthProvider | Promise<IOAuthProvider>

Fabrique d’un fournisseur OAuth pour un nom donné.


← Toutes les références d’API