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

Référence d'API — nodefony — oauth

stable

Documentation › Référence d’API › nodefony › oauth

Générée depuis les déclarations de types publiées de nodefony 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#

import { … } from "nodefony" — 37 symboles.

Classes (1)#

IssuerMismatchError#

class IssuerMismatchError extends Error

Refus d’un document de métadonnées qui se déclare d’un AUTRE émetteur que celui interrogé (RFC 8414 §3.3, OpenID Connect Discovery §4.3).

Fonctions (16)#

authorizationServerMetadataPath#

function authorizationServerMetadataPath(issuer: string): string

Compose le CHEMIN où PUBLIER ses métadonnées (RFC 8414 §3.1).

authorizeProtectedResource#

function authorizeProtectedResource(authorizationHeader: unknown, policy: IProtectedResourcePolicy, verify: IAccessTokenVerifier): Promise<ProtectedResourceOutcome>

Décide du sort d’une requête d’après l’en-tête Authorization.

buildAuthorizationServerMetadata#

function buildAuthorizationServerMetadata(input: IAuthorizationServerInput): IAuthorizationServerMetadata

Compose le document de métadonnées d’émetteur.

buildBearerChallenge#

function buildBearerChallenge(challenge: IBearerChallenge): string

Compose l’en-tête WWW-Authenticate d’un refus.

buildProtectedResourceMetadata#

function buildProtectedResourceMetadata(input: IProtectedResourceInput): IProtectedResourceMetadata

Compose le document de métadonnées.

canonicalIssuer#

function canonicalIssuer(raw: string): string

Normalise et contrôle un identifiant d’émetteur (RFC 8414 §2).

canonicalResourceUri#

function canonicalResourceUri(raw: string): string

Normalise et contrôle une URI canonique de ressource (RFC 8707 §2).

extractScopes#

function extractScopes(payload: Record<string, unknown>): string[]

Extrait les scopes accordés d’une charge utile de jeton d’accès.

isBackChannelTransportAllowed#

function isBackChannelTransportAllowed(endpoint: URL, discoveryUrl?: string): boolean

Dit si un point d’entrée DE SERVEUR À SERVEUR (jeton, jeu de clés) publié dans un document de métadonnées peut être appelé par son transport.

issuerMetadataUrls#

function issuerMetadataUrls(issuer: string): string[]

Compose, dans l’ORDRE NORMATIF, les URL où chercher les métadonnées.

metadataCandidateUrls#

function metadataCandidateUrls(issuer: string, discoveryUrl?: string): string[]

Les URL où lire les métadonnées d’un émetteur : l’adresse déclarée SEULE quand il y en a une, sinon les points bien connus dans l’ordre normatif.

missingScopes#

function missingScopes(granted: readonly string[], required: readonly string[]): string[]

L’appelant présente-t-il TOUS les scopes exigés ?

parseDiscoveryUrl#

function parseDiscoveryUrl(value: string): URL

Valide une adresse de découverte déclarée (discoveryUrl) — l’endroit où LIRE le document de métadonnées quand il diffère de l’émetteur.

protectedResourceMetadataPath#

function protectedResourceMetadataPath(resource: string): string

Compose le CHEMIN où publier les métadonnées, à partir de l’URI de la ressource (RFC 9728 §3.1).

protectedResourceMetadataUrl#

function protectedResourceMetadataUrl(resource: string): string

Compose l’URL ABSOLUE des métadonnées — celle qui part dans le défi.

validateIssuerMetadata#

function validateIssuerMetadata(document: unknown, expectedIssuer: string, discoveryUrl?: string): IIssuerMetadata

Juge un document de métadonnées reçu.

Constantes (5)#

ACCESS_ACCOUNT_RESOLVER#

const ACCESS_ACCOUNT_RESOLVER = "accessAccountResolver"

Nom sous lequel un IAccessAccountResolver se pose dans le conteneur — même règle que ACCESS_TOKEN_VERIFIER : importé des deux côtés, jamais recopié.

ACCESS_TOKEN_VERIFIER#

const ACCESS_TOKEN_VERIFIER = "accessTokenVerifier"

Nom sous lequel un IAccessTokenVerifier se pose dans le conteneur.

BearerError#

const BearerError: { readonly INVALID_REQUEST: "invalid_request"; readonly INVALID_TOKEN: "invalid_token"; readonly INSUFFICIENT_SCOPE: "insufficient_scope"; }

Codes d’erreur d’un porteur — RFC 6750 §3.1.

JWKS_PATH#

const JWKS_PATH = "/.well-known/jwks.json"

Chemin conventionnel où Nodefony publie son jeu de clés publiques.

ROLES_WITHIN#

const ROLES_WITHIN = "rolesWithin"

Nom sous lequel un IRolesWithin se pose dans le conteneur — importé des deux côtés, jamais recopié.

Interfaces (9)#

IAccessAccount#

interface IAccessAccount

Le compte de l’application qu’un principal désigne, prêt à être posé dans la bulle de requête (RequestContext.run).

IAccessPrincipal#

interface IAccessPrincipal

Ce qu’une vérification de jeton RÉUSSIE établit.

IAuthorizationServerInput#

interface IAuthorizationServerInput

De quoi composer le document — ce que l’application, seule, connaît.

IAuthorizationServerMetadata#

interface IAuthorizationServerMetadata

Le document que Nodefony PUBLIE — RFC 8414 §2, réduit à ce qui est vrai.

IBearerChallenge#

interface IBearerChallenge

De quoi composer un défi WWW-Authenticate.

IIssuerMetadata#

interface IIssuerMetadata

Ce qu’on lit d’un document de métadonnées — deux champs, pas un de plus.

IProtectedResourceInput#

interface IProtectedResourceInput

De quoi composer le document — ce que l’application, seule, connaît.

IProtectedResourceMetadata#

interface IProtectedResourceMetadata

Métadonnées publiées d’une ressource protégée — RFC 9728 §2.

IProtectedResourcePolicy#

interface IProtectedResourcePolicy

Politique appliquée à une requête vers une ressource protégée.

Types (6)#

BearerErrorCode#

type BearerErrorCode = (typeof BearerError)[keyof typeof BearerError]

Un des codes de BearerError.

IAccessAccountResolver#

type IAccessAccountResolver = (principal: IAccessPrincipal) => Promise<IAccessAccount | null>

Ce qui retrouve le compte qu’un principal désigne — implémenté par le module de sécurité, qui porte les comptes, leur liaison et le rattachement des sujets externes.

IAccessTokenVerifier#

type IAccessTokenVerifier = (token: string, audience: string) => Promise<IAccessPrincipal | null>

Ce qui sait valider un jeton — implémenté ailleurs, jamais ici.

IRolesWithin#

type IRolesWithin = (owner: string, target: string) => Promise<RolesWithinVerdict>

La règle qui autorise un compte à en JOUER un autre : les rôles de target, hiérarchie comprise, doivent tous être atteints par ceux de owner — jouer un compte ne monte jamais en droits. Implémentée par le module de sécurité, qui porte les comptes et la hiérarchie des rôles.

ProtectedResourceOutcome#

type ProtectedResourceOutcome = { outcome: "anonymous"; rejected?: true; } | { outcome: "authenticated"; principal: IAccessPrincipal; } | { outcome: "challenge"; status: 400 | 401; wwwAuthenticate: string; } | { outcome: "unverifiable"; why?: string; }

Verdict rendu à la porte — à elle de le traduire en réponse.

RolesWithinVerdict#

type RolesWithinVerdict = { ok: true; } | { ok: false; reason: string; }

Verdict d’un IRolesWithin : l’accord, ou la raison du refus.


← Toutes les références d’API