Uwierzytelnianie klienta TLS za pomocą Internetowych Usług Informacyjnych (IIS)

Compatible Nitrokeys

3A/C/Mini

Passkey

HSM 2

Pro 2

FIDO2

Storage 2

Start

U2F

✓

active

⨯

inactive

⨯

inactive

⨯

inactive

⨯

inactive

⨯

inactive

⨯

inactive

⨯

inactive

W tym przewodniku opisano konfigurację Internetowych usług informacyjnych systemu Windows (IIS) do uwierzytelniania klienta TLS, które mapuje użytkowników na lokalne konta użytkowników.

Pokazuje konfigurację jako przykład z Default Web Site IIS. Konfiguracja może być również używana dla innych witryn, w tym lub z wyłączeniem witryny domyślnej.

Prerequisits

  • Nitrokey 3 with PIV client authentication certificate.

  • Windows Server (serwer WWW)

    • DNS record

    • Certyfikat TLS dla rekordu DNS. Komputery klienckie muszą ufać temu certyfikatowi TLS.

Instalacja

  1. Open the Server Manager.

  2. In the menubar on the top click Manage → Add Roles and Features.

  3. Postępuj zgodnie z instrukcjami kreatora do kroku Server Roles.

  4. Wybierz rolę Web Server (IIS) z listy dostępnych ról.

  5. Postępuj zgodnie z instrukcjami kreatora do kroku Roles Services pod Web Server Role (IIS).

  6. Z listy usług ról wybierz Web Server → Security → IIS Client Certificate Mapping Authentication.

  7. Postępuj zgodnie z instrukcjami kreatora instalacji. Instalacja musi zostać zakończona przed rozpoczęciem konfiguracji.

Konfiguracja

  1. Otwórz Internet Information Services (IIS) Manager (InetMgr.exe).

  2. Wybierz i rozwiń serwer WWW, który chcesz skonfigurować w widoku drzewa Connections po lewej stronie.

  3. W środkowym panelu otwórz Edytor konfiguracji. Otwórz sekcję system.webServer/security/authentication/iisClientCertificateMappingAuthentication i odblokuj ją klikając na Unlock Section w panelu Actions po prawej stronie.

  4. Rozwiń stronę Sites pod serwerem WWW i wybierz witrynę, którą chcesz skonfigurować.

  5. W panelu Actions po prawej stronie kliknij Bindings….

  6. Kliknij Add…, co spowoduje wyświetlenie edytora powiązań. Ustaw typ na https i nazwę hosta zgodnie z rekordem DNS i atrybutem Subject Alternative Name (SAN) certyfikatu TLS. Aktywuj pole wyboru Wyłącz TLS 1.3 przez TCP. W polu SSL certificate wybierz odpowiedni certyfikat. Potwierdź konfigurację klikając na OK.

    Wskazówka

    Aby zrozumieć wymóg wyłączenia TLS 1.3 i uzyskać instrukcje konfiguracji, jak używać go z włączonym TLS 1.3, zapoznaj się z tym Microsoft Support blog post.

  7. W środkowym panelu otwórz Ustawienia SSL. Aktywuj pole wyboru Require SSL i przycisk radiowy pod Client certificates jest ustawiony na Require. Potwierdź konfigurację klikając na Apply w panelu Actions po prawej stronie.

  8. W środkowym panelu otwórz Authentication. Upewnij się, że wszystkie inne metody uwierzytelniania są wyłączone dla witryny. Lista IIS Client Certificate Mapping Authentication nigdy nie będzie widoczna na tej liście. Przejdź z powrotem do katalogu głównego witryny.

    Ważne

    Jeśli włączony jest jakikolwiek inny typ uwierzytelniania, mapowanie certyfikatu klienta nie będzie działać.

  9. W środkowym panelu otwórz Edytor konfiguracji. Otwórz sekcję system.webServer/security/authentication/iisClientCertificateMappingAuthentication z ApplicationHost.config <location path='Default web site'/>. Ustaw klucz enabled na True i upewnij się, że jeden lub oba klucze manyToOneCertificateMappingsEnabled i oneToOneCertificateMappingsEnabled są włączone.

  10. Mapowania użytkownika muszą być zapisane w kluczach manyToOneMappings lub oneToOneMappings. Odpowiedni klucz do użycia zależy od pożądanego mapowania. Informacje na temat mapowania i bardziej szczegółowe objaśnienia konfiguracji można znaleźć na stronie Microsoft Learn.

    Aby zmienić klucz, kliknij przycisk … na końcu pola tekstowego wartości. Spowoduje to otwarcie edytora kolekcji ** . Aby utworzyć nowe mapowanie, kliknij Add w panelu Actions po prawej stronie.

    1. Mapowanie Many to One

      Wypełnij pola zgodnie z poniższą tabelą.

      Key

      Wartość

      enabled

      True

      name

      <name-for-the-collection>

      password

      <user-password>

      permissionMode

      Allow

      userName

      <username>

      Pole name jest używane jako identyfikator kolekcji, a pola userName i password wymagają nazwy użytkownika i hasła lokalnego użytkownika, do którego chcesz mapować. Pole rules musi zawierać opis dozwolonych lub odrzuconych certyfikatów. Aby zmienić klucz reguł, kliknij przycisk … na końcu pola tekstowego wartości. Spowoduje to otwarcie nowego okna edytora kolekcji ** . Aby utworzyć nową regułę, kliknij przycisk Add w panelu Actions po prawej stronie.

      Wypełnij pola zgodnie z poniższą tabelą.

      Key

      Wartość

      certificateField

      Subject

      certificateSubField

      O

      compareCaseSensitive

      True

      matchCriteria

      <criteria-value-of-o-field-in-certificate-subject>

      Zamknij okna Collection Editor.

    2. Mapowanie jeden do jednego

      Wypełnij pola zgodnie z poniższą tabelą.

      Key

      Wartość

      certificate

      <base64-encoded-certificate>

      enabled

      True

      password

      <user-password>

      userName

      <username>

      Certyfikat zakodowany w Base64 dla pola certificate można uzyskać z Nitrokey za pomocą Nitropia i polecenia nitropy nk3 piv --experimental read-certificate --format PEM --key 9A. Pola userName i password wymagają nazwy użytkownika i hasła lokalnego użytkownika, do którego chcesz mapować.

      Zamknij okno Collection Editor.

    Potwierdź konfigurację klikając na Apply w panelu Actions po prawej stronie.

Witryna jest teraz skonfigurowana do uwierzytelniania klienta TLS przy użyciu lokalnego mapowania kont użytkowników.