Scenariji: 3
FFI funkcije: ~20
Status: ⏳ Planirano
Ova kategorija obuhvaća sve scenarije za autentifikaciju temeljenu na certifikatima. mTLS Client-Auth, Smart Card prijava i SSO integracija.
| ID | Scenarij | Opis | Složenost | Status |
|---|---|---|---|---|
| 9.1 | mTLS Client-Auth | Klijentski certifikat za API pristup | ⭐⭐⭐ | ⏳ |
| 9.2 | Smart Card prijava | PIV/PKCS#11 bazirana prijava | ⭐⭐⭐⭐ | ⏳ |
| 9.3 | SSO integracija | SAML/OIDC s certifikatima | ⭐⭐⭐⭐ | ⏳ |
| Metoda | Opis | Primjena |
|---|---|---|
| mTLS | Uzajamni TLS s klijentskim certifikatom | API pristup, komunikacija između usluga |
| Smart Card | PIV/PKCS#11 kartica | Prijava na radnu stanicu |
| FIDO2/WebAuthn | Hardverski token | Web aplikacije |
| Certificate-based SSO | SAML/OIDC s X.509 | Enterprise SSO |
| Industrija | Metoda | Posebnosti |
|---|---|---|
| Zdravstvo | Smart Card (eHBA) | gematik konektor integracija |
| Energetika/SCADA | mTLS | Identitet uređaja, IEC 62351 |
| Automobilska | Certifikat (V2X) | Pseudonim certifikati |
| Industrija 4.0 | mTLS + OPC UA | Identitet strojeva |
using WvdS.Security.Cryptography.X509Certificates.Extensions.PQ; // Učitavanje klijentskog certifikata i ključa var clientCert = ctx.LoadCertificate("client.crt.pem"); var clientKey = ctx.LoadPrivateKey("client.key.pem", password); // Konfiguracija HttpClient s mTLS var handler = new HttpClientHandler(); handler.ClientCertificates.Add( ctx.CreateX509Certificate2(clientCert, clientKey) ); var httpClient = new HttpClient(handler); // API poziv s klijentskim certifikatom var response = await httpClient.GetAsync("https://api.example.com/secure/data");
// U ASP.NET Core Startup services.AddAuthentication(CertificateAuthenticationDefaults.AuthenticationScheme) .AddCertificate(options => { options.AllowedCertificateTypes = CertificateTypes.All; options.RevocationMode = X509RevocationMode.Online; options.Events = new CertificateAuthenticationEvents { OnCertificateValidated = context => { // Dodatna PQ validacija var cert = context.ClientCertificate; var isValid = ctx.ValidateCertificate(cert, trustStore); if (isValid) { // Ekstrakcija claims iz certifikata 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; } }; });
| Kategorija | Povezanost |
|---|---|
| 3. Izdavanje certifikata | Kreiranje klijentskih certifikata |
| 10. TLS/mTLS | TLS konfiguracija |
| 5. Validacija | Validacija certifikata |
« ← 8. Digitalni potpisi | ↑ Scenariji | 10. TLS/mTLS → »
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional