@kreiseck/id-austria
v0.1.0
Published
ID Austria (OpenID Connect) Login fuer Node — Drittanbieter-Client
Downloads
141
Maintainers
Readme
@kreiseck/id-austria
Login mit ID Austria (OpenID Connect) für Node. Framework-agnostischer
Server-Kern: hält das client_secret, baut die Authorize-URL, tauscht den Code
gegen das id_token, prüft dessen Signatur und liefert ein normalisiertes Profil.
Drittanbieter-Client, nicht mit dem Bund affiliiert.
Von Kreiseck · Lizenz: MIT.
Installation
npm install @kreiseck/id-austriaBenötigt Node ≥ 20.
Schnellstart
const { createIdAustria } = require('@kreiseck/id-austria');
const ida = createIdAustria({
environment: 'test', // 'test' | 'production'
clientId: process.env.IDA_CLIENT_ID, // OIDC Client ID (aus SP-Registrierung)
clientSecret: process.env.IDA_SECRET, // Client Secret (nur serverseitig!)
redirectUri: process.env.IDA_REDIRECT, // exakt wie im USP registriert
});
// 1) Login starten
const { url, state, nonce, codeVerifier } = await ida.buildAuthorizeUrl();
// url → dorthin weiterleiten; state/nonce/codeVerifier kurzlebig speichern
// 2) Rückkehr verarbeiten (expectedState = der gespeicherte state)
const profile = await ida.handleCallback({
code, state, expectedState, nonce, codeVerifier,
});
// profile → { bpk, firstName, lastName, birthdate, qaaLevel, raw }Das Paket ist zustandslos: state/nonce/codeVerifier werden erzeugt und
beim Callback zurückverlangt — wo sie zwischengespeichert werden (Firestore,
signiertes Cookie, …), entscheidet das aufrufende Projekt.
Sicherheit
- Nur Authorization Code Flow, PKCE
S256, Token-Authclient_secret_post. id_token-Signatur gegen das JWKS des Issuers geprüft;issgegen den gepinnten Umgebungs-Issuer,audgegen die Client ID,noncenach der Signaturprüfung.- bPK (
urn:pvpgvat:oidc.bpk) ist der Personen-Schlüssel — niesub. client_secretgehört ausschließlich auf den Server, niemals ins Frontend.
Umgebungen
| environment | Issuer |
|---|---|
| test | https://idp.ref.id-austria.gv.at |
| production | https://idp.id-austria.gv.at |
Endpoints werden über das Discovery-Dokument des Issuers geladen.
Service-Provider-Registrierung
Der Einsatz setzt eine eigene Registrierung und Akkreditierung als Service
Provider bei ID Austria voraus (eigene Client ID / Secret / Redirect-URI je
Anwendung). Schritt-für-Schritt-Anleitung inkl. Zuordnung zur Paket-Konfiguration:
REGISTRIERUNG.md.
Lizenz
MIT © Kreiseck
