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.