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