Übersicht
SSI-Laufzeiten
Einführung
Rollenbasierter SSI-Leitfaden. Gehen Sie die drei Rollen durch, verstehen Sie Datengrenzen und vergleichen Sie Beispiele für Web-, Server- und Mobile-SDKs.
Selbstbestimmte Identität wird verständlich, wenn jede Verantwortung klar zugeordnet ist. Der Aussteller erstellt einen überprüfbaren Nachweis, der Inhaber bewahrt ihn im sicheren mobilen Tresor auf und der Prüfer fordert eine überprüfbare Präsentation (VP) an und prüft sie.
Wichtiger Hinweis
[Aussteller prüft und signiert VC] -> [Inhaber speichert VC mobil] -> [Inhaber stimmt zu und erstellt VP] -> [Prüfer prüft VP]
Kernkonzepte
Aussteller
Prüft Quelldaten, signiert den Nachweis und sendet ein Angebot über DIDComm.
Inhaber
Bewahrt den Nachweis in einem mobilen Tresor auf und entscheidet über die Offenlegung.
Prüfer
Fordert nur benötigte Attribute an und prüft Signaturen, Prüfwert und Nachweisstatus.
DID-Register
Veröffentlicht und löst DID-Dokumente über CertNet, did:web, ION oder ein internes Register auf.
Nachweisgrenzen
Einführung
Identra trennt Verantwortlichkeiten klar: Der Aussteller erstellt VCs, das Telefon des Inhabers ist der einzige Tresor, und der Prüfer fordert und prüft nur VPs.
Wichtigste Regel
Web und Server erhalten niemals ein SDK zum Aufbewahren. Sie können Nutzer-VCs weder importieren, exportieren noch sichern.
Das DID-Register ist nicht auf CertNet festgelegt
CertNet ist der Standardanbieter in der Sandbox. Dasselbe SDK kann DID-Dokumente je nach Bereitstellungsrichtlinie auf CertNet, did:web, ION oder einem internen Register veröffentlichen und auflösen.
Wichtiger Hinweis
Illustratives SDK, nicht für den Produktivbetrieb. Paketnamen und Verträge in diesem Overview sind Beispieldokumentation.
Nachweise ausstellen
Aussteller
SCHRITT 01 von 03 im rollenbasierten SSI-Ablauf.
Wer erstellt einen Nachweis und wo läuft der Code?
Der Aussteller prüft Daten, signiert einen VC und sendet ihn an den Nutzer. Die Integration kann in internem Web, Server oder App laufen.
Daten- und Schlüsselgrenze
Signaturschlüssel der Organisation müssen passend zur Laufzeit geschützt werden, auf dem Server vorzugsweise durch ein HSM.
Referenz
| Laufzeit | SDK-Beispiel | Einsatzfall |
|---|---|---|
| Webclient | @identra/web mit Browser-JavaScript oder TypeScript | Interne Ausstellerwerkzeuge mit kontrollierter Schlüsselrichtlinie |
| Server | @identra/node oder identra-go | Geschützte Signaturdienste mit HSM oder verwaltetem KMS |
| Mobile App | @identra/react-native, Android SDK oder iOS SDK | Verwaltete interne Ausstelleranwendungen |
Ablaufschritte
- Initialisieren: SDK für die aktuelle Laufzeit initialisieren.
- DID erstellen: Aussteller-DID im gewählten DID-Register erstellen oder laden.
- VC signieren: Einen überprüfbaren Nachweis für die DID des Empfängers signieren.
- Angebot senden: Credential Offer über DIDComm senden.
Codebeispiel
1. Laufzeit wählen
2. SDK und Sprache wählen
import { Identra } from '@identra/web';
// Illustratives SDK, nicht für den Produktivbetrieb.
const identra = new Identra({
environment: 'sandbox',
didRegistry: {
defaultProvider: 'certnet',
providers: ['certnet', 'did:web', 'ion', 'internal-ledger']
},
mediatorUrl: 'https://mediator.sandbox.identra.dev'
});
// Läuft für den Aussteller auf Web, Server oder einer internen App.
const issuer = await identra.issuer.create({
did: 'did:identra:university',
keyProtection: 'platform-secure-storage'
});
// Ein DID-Dokument kann in mehreren Registern veröffentlicht werden; CertNet ist nur der Standardanbieter der Sandbox.
await issuer.publishDidDocument({
registries: ['certnet', 'did:web']
});
const credential = await issuer.issue({
// Die DID des Inhabers wird nach dem Verbindungsaufbau oder aus dem Geschäftssystem bezogen.
subjectDid: 'did:identra:holder',
type: 'UniversityDegree',
claims: { degree: 'Information Technology', graduationYear: 2026 }
});
// Der Nachweis liegt nicht im QR; der QR startet nur die DIDComm-Verbindung.
await issuer.didcomm.sendCredentialOffer({ credential, connectionId });Details
Die DID des Inhabers wird nach dem Verbindungsaufbau oder aus dem Geschäftssystem bezogen. Der Nachweis liegt nicht im QR; der QR startet nur die DIDComm-Verbindung.
Nachweise prüfen
Prüfer
SCHRITT 03 von 03 im rollenbasierten SSI-Ablauf.
Wie vertraut der Prüfer einer VP?
Der Prüfer empfängt eine VP, entnimmt Holder- und Issuer-DIDs, löst DID-Dokumente über den passenden Registeranbieter wie CertNet, did:web oder ION auf und prüft anschließend Signaturen, Challenge und Widerrufsstatus.
Daten- und Speichergrenze
Ein Prüfer kann auf Web, Server oder App laufen, darf VCs aber nicht wie ein Holder speichern.
Anleitung
- Anfrage erstellen: Eine Präsentationsanfrage mit replay-sicherer Challenge erstellen.
- QR anzeigen: Einen QR mit DIDComm Invitation anzeigen.
- VP empfangen: VP über die neu aufgebaute Verbindung empfangen.
- Auflösen und prüfen: Holder- und Issuer-DIDs über den Registeranbieter auflösen und prüfen.
Codebeispiel
1. Laufzeit wählen
2. SDK und Sprache wählen
import { Identra } from '@identra/web';
// Illustratives SDK, nicht für den Produktivbetrieb.
const identra = new Identra({
environment: 'sandbox',
didRegistry: {
defaultProvider: 'certnet',
providers: ['certnet', 'did:web', 'ion', 'internal-ledger']
},
mediatorUrl: 'https://mediator.sandbox.identra.dev'
});
// Läuft für den Prüfer auf Web, Server oder App.
const verifier = await identra.verifier.create({
did: 'did:identra:jobs-example'
});
const request = await verifier.createPresentationRequest({
credentialType: 'UniversityDegree',
// Fordern Sie nur notwendige Attribute an, damit der Inhaber weniger Daten offenlegt.
fields: ['degree', 'graduationYear'],
challenge: crypto.randomUUID()
});
const qrDataUrl = await verifier.createQr(request);
const presentation = await verifier.didcomm.waitForPresentation(request.id);
const result = await verifier.verify({
presentation,
// Das SDK löst das DID-Dokument über den passenden Registeranbieter auf.
resolveDid: (did) => identra.didRegistry.resolveDidDocument(did),
checkCredentialStatus: true
});
if (result.verified) grantAccess();War diese Seite hilfreich?
Teilen Sie uns Ihre Meinung mit, damit wir uns verbessern können.