Scenari: 3
Funzioni FFI: ~20
Stato: ⏳ Pianificato
Questa categoria comprende tutti gli scenari per l'autenticazione basata su certificati: mTLS Client-Auth, Smart Card Login e integrazione SSO.
| ID | Scenario | Descrizione | Complessita | Stato |
|---|---|---|---|---|
| 9.1 | mTLS Client-Auth | Certificato client per accesso API | ⭐⭐⭐ | ⏳ |
| 9.2 | Smart Card Login | Autenticazione basata su PIV/PKCS#11 | ⭐⭐⭐⭐ | ⏳ |
| 9.3 | Integrazione SSO | SAML/OIDC con certificati | ⭐⭐⭐⭐ | ⏳ |
| Metodo | Descrizione | Utilizzo |
|---|---|---|
| mTLS | Mutual TLS con certificato client | Accesso API, Service-to-Service |
| Smart Card | Carta PIV/PKCS#11 | Login workstation |
| FIDO2/WebAuthn | Token hardware | Applicazioni web |
| Certificate-based SSO | SAML/OIDC con X.509 | SSO Enterprise |
| Settore | Metodo | Particolarita |
|---|---|---|
| Sanita | Smart Card (eHBA) | Connessione gematik |
| Energia/SCADA | mTLS | Identita dispositivo, IEC 62351 |
| Automotive | Certificato (V2X) | Certificati pseudonimi |
| Industria 4.0 | mTLS + OPC UA | Identita macchina |
using WvdS.Security.Cryptography.X509Certificates.Extensions.PQ; // Caricare certificato e chiave client var clientCert = ctx.LoadCertificate("client.crt.pem"); var clientKey = ctx.LoadPrivateKey("client.key.pem", password); // Configurare HttpClient con mTLS var handler = new HttpClientHandler(); handler.ClientCertificates.Add( ctx.CreateX509Certificate2(clientCert, clientKey) ); var httpClient = new HttpClient(handler); // Chiamata API con certificato client 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 => { // Validazione PQ aggiuntiva var cert = context.ClientCertificate; var isValid = ctx.ValidateCertificate(cert, trustStore); if (isValid) { // Estrarre Claims dal certificato 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; } }; });
| Categoria | Relazione |
|---|---|
| 3. Emissione certificati | Creare certificati client |
| 10. TLS/mTLS | Configurazione TLS |
| 5. Validazione | Validazione certificato |
« ← 8. Firme digitali | ↑ Scenari | 10. TLS/mTLS → »
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional