9. Authentifizierung

Szenarien: 3
FFI-Funktionen: ~20
Status: ⏳ Geplant

Diese Kategorie umfasst alle Szenarien zur zertifikatsbasierten Authentifizierung. mTLS Client-Auth, Smart Card Login und SSO-Integration.


Szenarien

ID Szenario Beschreibung Komplexität Status
9.1 mTLS Client-Auth Client-Zertifikat für API-Zugriff ⭐⭐⭐
9.2 Smart Card Login PIV/PKCS#11 basierte Anmeldung ⭐⭐⭐⭐
9.3 SSO-Integration SAML/OIDC mit Zertifikaten ⭐⭐⭐⭐

Authentifizierungs-Architektur

flowchart TB subgraph CLIENT["🖥️ Client"] CERT[Client-Zertifikat] KEY[Private Key] end subgraph AUTH["🔐 Authentifizierung"] TLS[TLS Handshake] VERIFY[Zertifikat prüfen] AUTHZ[Autorisierung] end subgraph ACCESS["✅ Zugriff"] API[API/Service] USER[User Context] end CLIENT --> TLS TLS --> VERIFY VERIFY --> AUTHZ AUTHZ --> ACCESS style VERIFY fill:#e3f2fd style AUTHZ fill:#e8f5e9


Authentifizierungsmethoden

Methode Beschreibung Einsatz
mTLS Mutual TLS mit Client-Zertifikat API-Zugriff, Service-to-Service
Smart Card PIV/PKCS#11 Karte Arbeitsplatz-Login
FIDO2/WebAuthn Hardware-Token Web-Anwendungen
Certificate-based SSO SAML/OIDC mit X.509 Enterprise SSO

mTLS Flow

sequenceDiagram participant C as Client participant S as Server C->>S: ClientHello S->>C: ServerHello + ServerCert S->>C: CertificateRequest C->>S: ClientCert + CertificateVerify Note over S: Zertifikat validieren S->>S: Chain + Revocation prüfen S->>C: Finished C->>S: API Request (authentifiziert)


Branchenspezifische Anforderungen

Branche Methode Besonderheiten
Healthcare Smart Card (eHBA) gematik-Konnektoranbindung
Energie/SCADA mTLS Geräteidentität, IEC 62351
Automotive Zertifikat (V2X) Pseudonymzertifikate
Industrie 4.0 mTLS + OPC UA Maschinen-Identität

Code-Schnellstart

mTLS Client-Authentifizierung

using WvdS.Security.Cryptography.X509Certificates.Extensions.PQ;
 
// Client-Zertifikat und Schlüssel laden
var clientCert = ctx.LoadCertificate("client.crt.pem");
var clientKey = ctx.LoadPrivateKey("client.key.pem", password);
 
// HttpClient mit mTLS konfigurieren
var handler = new HttpClientHandler();
handler.ClientCertificates.Add(
    ctx.CreateX509Certificate2(clientCert, clientKey)
);
 
var httpClient = new HttpClient(handler);
 
// API-Aufruf mit Client-Zertifikat
var response = await httpClient.GetAsync("https://api.example.com/secure/data");

Server-seitige Validierung

// In ASP.NET Core Startup
services.AddAuthentication(CertificateAuthenticationDefaults.AuthenticationScheme)
    .AddCertificate(options =>
    {
        options.AllowedCertificateTypes = CertificateTypes.All;
        options.RevocationMode = X509RevocationMode.Online;
        options.Events = new CertificateAuthenticationEvents
        {
            OnCertificateValidated = context =>
            {
                // Zusätzliche PQ-Validierung
                var cert = context.ClientCertificate;
                var isValid = ctx.ValidateCertificate(cert, trustStore);
 
                if (isValid)
                {
                    // Claims aus Zertifikat extrahieren
                    var claims = new[] {
                        new Claim(ClaimTypes.Name, cert.Subject),
                        new Claim("cert_thumbprint", cert.Thumbprint)
                    };
                    context.Principal = new ClaimsPrincipal(
                        new ClaimsIdentity(claims, context.Scheme.Name)
                    );
                    context.Success();
                }
                return Task.CompletedTask;
            }
        };
    });

Verwandte Kategorien

Kategorie Beziehung
3. Zertifikate ausstellen Client-Zertifikate erstellen
10. TLS/mTLS TLS-Konfiguration
5. Validierung Zertifikat-Validierung

« ← 8. Digitale Signaturen | ↑ Szenarien | 10. TLS/mTLS → »


Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional

Zuletzt geändert: den 29.01.2026 um 15:12