Szenarien: 3
FFI-Funktionen: ~20
Status: ⏳ Geplant
Diese Kategorie umfasst alle Szenarien zur zertifikatsbasierten Authentifizierung. mTLS Client-Auth, Smart Card Login und SSO-Integration.
| 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 | ⭐⭐⭐⭐ | ⏳ |
| 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 |
| 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 |
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");
// 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; } }; });
| 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