Klientinloggning med Active Directory¶
Compatible Nitrokeys |
|||||||
---|---|---|---|---|---|---|---|
✓ active |
⨯ inactive |
⨯ inactive |
⨯ inactive |
⨯ inactive |
⨯ inactive |
⨯ inactive |
⨯ inactive |
This document explains how to use the PIV smart card of a Nitrokey 3 for logon with Active Directory. It is available as of firmware version 1.8 and higher.
I framtiden kan denna manuella tillhandahållande automatiseras med hjälp av en Windows MiniDriver.
Förutsättningar¶
Installationen kräver administrativ åtkomst till de maskiner som kör Active Directory Directory Services (ADDS) och Active Directory Certificate Services (ADCS). På klientmaskinen krävs endast åtkomst till respektive användarkonto som används för inloggning.
- Windows server (supported versions are Windows Server 2016, 2019, 2022, 2025 in Standard and Enterprise editions)
ADDS-rollen installerad och konfigurerad.
- ADCS-rollen installerad och Enterprise-CA med rotcertifikat konfigurerat.
Varje domänkontrollant (DC) måste ha ett Domain Controller, Domain Controller Authentication, och Kerberos Authentication certifikat utfärdat.
Om du har klienter som lämnar företagets nätverk ska du se till att de publicerade fullständiga och deltacertifikatåterkallningslistorna (CRL) kan hämtas från externa nätverk.
- Windows-klient (versioner som stöds är Windows 10, 11 i utgåvorna Professional och Enterprise)
Klienten måste vara en domänmedlem i Active Directory-domänen (AD).
Nitrokey 3 with PIV smart card.
Konfigurera inloggning med smartkort för användning med Active Directory (AD)¶
Inloggningen med smartkort kräver en certifikatmall i domänens certifikatutfärdare (CA). Denna mall definierar värdena och begränsningarna för användarcertifikaten. Den används för att signera certifikatbegäran (CSR) under provisioneringen av Nitrokey.
För att signera en certifikatbegäran för inloggning med smartkort krävs att en certifikatmall skapas i certifikatutfärdaren.
Skriv
certtmpl.msc
på kommandoraden, i PowerShell eller i Run och tryck på Enter.I detaljfönstret väljer du mallen Smartcard Logon.
Klicka på Åtgärder → Alla uppgifter → Duplicera mall i menyraden.
Gör inställningarna nedan på mallen, enligt den flik som nämns.
- Kompatibilitet
Inaktivera Visa resulterande ändringar
Sätt Certificate Authority och Certificate recipient till de äldsta klienterna i domänen som ska använda smartcard-inloggning.
Viktigt
Om du vill använda EC-nycklar (Elliptic Curve) får dina klienter inte vara äldre än Windows Server 2008 och Windows Vista.
- Allmänt
Ställ in en Mall för visningsnamn.
Ange Giltighetsperiod och Förnyelseperiod.
- Hantering av förfrågningar
Ange ett syfte med Signatur och inloggning med smartkort.
- Kryptografi
Ange en leverantörskategori för Key Storage Provider.
Ange algoritmens namn och minsta nyckelstorlek.
Viktigt
Microsoft recommends to use the RSA algorithm with a key length of
2048
Bit. If you choose to use Elliptic Curve (EC) keys you need to make additional changes on your client computers.
- Ämnets namn
Set Leverans på begäran.
Bekräfta skapandet av mallen med OK.
Efter att en certifikatmall har skapats måste mallen utfärdas för att kunna användas av klienterna.
From the Command Line, PowerShell, or Run, type
certmgr.msc
and press Enter.Expandera certifikatutfärdaren (CA) i navigeringsfönstret och navigera till Certifikatmallar.
I menyraden klickar du på Åtgärd → Ny → Certifikatmall för att utfärda.
Välj den certifikatmall som du vill utfärda och bekräfta med OK.
Provisionera Nitrokey 3 för inloggning med smartkort med Active Directory¶
The smartcard logon requires to provision a Nitrokey for a user in Active Directory. The provisioning contains the private key and Certificate Singing Request (CSR) generation. The certificate is then written to the Nitrokey.
Varning
Innan du följer stegen nedan ska du kontrollera att det Active Directory-användarkonto som du vill använda för inloggning med smartkort finns. Om tiden för skapande av certifikatet är tidigare än tiden för skapande av användarkontot kommer inloggningen att misslyckas.
Generera en privat nyckel och skriv CSR till filen med kommandot nedan.
nitropy nk3 piv --experimental generate-key --key 9A --algo <algorithm> --subject-name <subject-name> --subject-alt-name-upn <subject-alternative-name> --path <file>
The value of
<algorithm>
is the used algorithm with its key length, e.g.rsa2048
. The value of<subject-name>
corresponds to the value of thedistinguishedName
attribute of the Active Directory user account. In most cases it is only necessary to include the common name part of the distinguished name, e.g.CN=John Doe
. The value of<subject-alternative-name>
corresponds to the value of theuserPrincipalName
attribute of the Active Directory user account.Signera CSR:en med domänens certifikatutfärdare (CA) med kommandot nedan.
certreq -attrib CertificateTemplate:<template-name> -submit <file>
Värdet av
<template-name>
är namnet på certifikatmallen för inloggning med smartkort. Värdet av<file>
är filen för begäran om certifikatsjungning.Skriv det signerade certifikatet till Nitrokey med kommandot nedan.
nitropy nk3 piv --experimental write-certificate --key 9A --format PEM --path <file>
Värdet på
<file>
är certifikatfilen.Mappa certifikatet med Active Directory-användarkontot. Skapa certifikatmappningarna med kommandot nedan.
nitropy nk3 piv --experimental get-windows-auth-mapping
Choose one of the offered certificate mappings.
Tips
Microsoft rekommenderar att du använder mappningen
X509IssuerSerialNumber
.Skriv den valda mappningen till attributet
altSecurityIdentities
i Active Directory-användarobjektet. Du kan använda programmet Active Directory - användare och datorer eller PowerShell för den här åtgärden.From the Command Line, PowerShell, or Run, type
dsa.msc
and press Enter.In the menu bar click View → Advanced Features.
Välj respektive användarobjekt.
In the menu bar click Action → Properties.
Öppna fliken Attributredigerare.
Välj attributet
altSecurityIdentities
.Click on Edit.
Insert the certificate mapping in the text field and click Add.
Tillämpa ändringen genom att klicka på OK.
Öppna PowerShell.
Lägg till värdet med
Set-ADUser -Identity "<sAMAccountName>" -Add @{altSecurityIdentities="<certificate-mapping>"}
, ersätt<sAMAccountName>
med värdet för användarens inloggningsnamn och<certificate-mapping>
med den valda certficate-mappningen från ovan.
Viktigt
Om certifikatmappningen inte är korrekt inställd kommer du att få felmeddelandet
Logon screen message: Your credentials could not be verified.
när du försöker logga in. Dessutom visas nedanstående händelsemeddelande i Windows systemhändelselogg.Source
Kerberos-Key-Distribution-Center
Message
The Key Distribution Center (KDC) encountered a user certificate that was valid but could not be mapped to a user in a secure way (such as via explicit mapping, key trust mapping, or a SID). Such certificates should either be replaced or mapped directly to the user via explicit mapping. See https://go.microsoft.com/fwlink/?linkid=2189925 to learn more.
Återkalla inloggning med smartkort för användning med Active Directory (AD)¶
De utfärdade inloggningscertifikaten för användare listas i Active Directory Certificate Services (ADCS). Från ADCS kan certifikaten återkallas, vilket lägger till dem i den konfigurerade listan över återkallade certifikat (CRL). Detta krävs om Nitrokey tappas bort eller går sönder.
Viktigt
Det är starkt rekommenderat att aldrig lämna oanvända användarcertifikat utan att återkalla dem.
Observera
Det är möjligt att tillfälligt återkalla ett certifikat med anledningen Certificate Hold. Denna spärr kan återkallas och är därför inte permanent.
Skriv
certsrv.msc
på kommandoraden, i PowerShell eller i Run och tryck på Enter.Expandera certifikatutfärdaren (CA) i navigeringsfönstret och navigera till Utfärdade certifikat.
I detaljfönstret väljer du det användarcertifikat som du vill återkalla.
Klicka på Åtgärd → Alla uppgifter → Återkalla certifikat i menyraden.
Ange skälet till återkallandet, datum och tid och bekräfta med Ja.
I navigeringsfönstret navigerar du till Återkallade certifikat.
Klicka på Åtgärd → Alla uppgifter → Publicera i menyraden.
Välj den spärrlista som du vill publicera och bekräfta med OK.
Observera
Vid varje inloggningsförsök med smartkort kontrollerar Windows om certifikatet som presenteras av smartkortet finns med på en lista över återkallade certifikat (CRL). Om certifikatet finns med på en CRL nekas inloggning. Varje CRL innehåller en giltighetstid som gör att den upphör att gälla. Windows cachar den hämtade CRL:n och uppdaterar den om CRL:n är på väg att löpa ut. Därför är en återkallelse inte omedelbar utan beror på när den CRL som klienten har löper ut.
Importera ett användarcertifikat från ett smartkort till den personliga certifikatlagringen¶
Det användarcertifikat som finns lagrat på Nitrokey kan importeras till användarens personliga certifikatarkiv. I vissa situationer är detta en nödvändig procedur.
Kontrollera att du är inloggad på det användarkonto som certifikatet motsvarar.
Skriv
certsrv.msc
på kommandoraden, i PowerShell eller i Run och tryck på Enter.I navigeringsfönstret expanderar du nyckelarkivet Personal och navigerar till Certifikat.
Klicka på Åtgärd → Alla uppgifter → Importera i menyraden.
Följ importguiden och lämna in filen med användarcertifikatet när så begärs.
När importen har slutförts kontrollerar du detaljfönstret för det importerade certifikatet. Om Nitrokey är ansluten bör egenskaperna för certifikatet visa meddelandet Du har en privat nyckel som motsvarar detta certifikat. vilket indikerar att den privata nyckeln på Nitrokey kunde identifieras.
Kontrollera att du är inloggad på det användarkonto som certifikatet motsvarar.
Öppna PowerShell.
Import the certificate with
Import-Certificate -CertStoreLocation Cert:\CurrentUser\My -FilePath <path>
, replacing<file>
with the certificate file path.After the import completed check for the certificate with
Get-ChildItem Cert:\CurrentUser\My
.