Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Máy Chủ Windows

Cấu hình xác thực Kerberos trên website IIS

Dưới đây là hướng dẫn từng bước cấu hình xác thực người dùng miền Kerberos SSO (Single Sign-On) minh bạch trên website IIS chạy Windows Server 2012 R2.

Khởi động IIS Manager trên web server, chọn website cần thiết và vào mục Authentication. Như bạn thấy, chỉ có Anonymous Authentication được bật mặc định. Vô hiệu hóa nó và bật Windows Authentication (Trước hết IIS luôn thử xác thực ẩn danh trước).

Cấu hình xác thực Kerberos trên website IIS

Mở danh sách provider cho Windows authentication (Providers). Mặc định có hai provider: Negotiate và NTLM. Negotiate là container sử dụng Kerberos làm phương thức xác thực đầu tiên, và nếu thất bại, NTLM sẽ được dùng. Yêu cầu Negotiate phải đứng đầu danh sách provider.

Cấu hình xác thực Kerberos trên website IIS

Bước tiếp theo là đăng ký entry Service Principal Name (SPN) cho tên website mà người dùng sẽ truy cập. Nếu website IIS chỉ truy cập bằng tên server (https://server-name hoặc https://server-name.adatum.loc), bạn không cần tạo SPN thêm (SPN đã tồn tại trong tài khoản server trong AD). Nếu địa chỉ website khác tên host hoặc bạn xây dựng webfarm với cân bằng tải, bạn phải liên kết SPN thêm với tài khoản server hoặc user.

Giả sử có farm server IIS. Trong trường hợp này, tốt nhất tạo tài khoản AD riêng và gán SPN cho nó. Application Pool đích của website sẽ chạy từ tài khoản này.

Tạo tài khoản domain iis_service. Đảm bảo SPN chưa được gán cho đối tượng này (thuộc tính servicePrincipalName trống).

Cấu hình xác thực Kerberos trên website IIS

Giả sử website phải phản hồi tại https://webportal và https://webportal.adatum.loc. Chúng ta phải chỉ định các địa chỉ này trong thuộc tính SPN của tài khoản dịch vụ.

Setspn /s HTTP/webportal adatum\iis_service
Setspn /s HTTP/webportal.adatum.loc adatum\iis_service

Cấu hình xác thực Kerberos trên website IIS

Như vậy, chúng ta cho phép tài khoản này giải mã ticket Kerberos khi người dùng truy cập các địa chỉ này, và xác thực phiên.

Bạn có thể kiểm tra cài đặt SPN của tài khoản như sau:

setspn /l iis_service

Cấu hình xác thực Kerberos trên website IIS

Mẹo. Kerberos sẽ không hoạt động đúng nếu cùng SPN được dùng bởi nhiều entry domain khác nhau. Dùng lệnh sau để đảm bảo không có SPN trùng lặp trong domain: setspn –x

Bước tiếp theo là cấu hình IIS Application Pool để chạy từ tài khoản vừa tạo.

Chọn Application Pool của website (trong ví dụ là DefaultAppPool).

Cấu hình xác thực Kerberos trên website IIS

Mở Advanced Settings và vào Identity.

Cấu hình xác thực Kerberos trên website IIS

Thay đổi từ ApplicationPoolIdentity sang adatum\iis_service.

Cấu hình xác thực Kerberos trên website IIS

Sau đó vào website trong IIS Manager và chọn Configuration Editor.

Trong menu thả xuống chọn system.webServer > security > authentication > windowsAuthentication

Cấu hình xác thực Kerberos trên website IIS

Thay useAppPoolCredentials thành True.

Như vậy chúng ta cho phép IIS dùng tài khoản domain để giải mã ticket Kerberos từ client.

Reset IIS bằng lệnh:

iisreset

Cấu hình xác thực Kerberos trên website IIS

Cấu hình tương tự phải làm trên tất cả server webfarm.

Hãy test xác thực Kerberos. Mở https://webportal.adatum.loc trên trình duyệt client.

Lưu ý. Trong trường hợp của tôi, không thể xác thực ngay trên IE11. Tôi phải thêm địa chỉ vào danh sách trusted websites và chỉ định Automatic logon with current user name and password trong User Authentication -> Logon trong cài đặt Trusted Zones Sites.

Cấu hình xác thực Kerberos trên website IIS

Bạn có thể xác minh Kerberos được dùng trên website bằng cách giám sát traffic HTTP dùng Fiddler (công cụ đã nhắc trước).

Khởi động Fiddler và mở website mục tiêu trong trình duyệt. Ở phần bên trái cửa sổ, tìm dòng truy cập website. Chuyển tab Inspectors ở phần bên phải. Dòng "Authorization Header (Negotiate) appears to contain a Kerberos ticket" cho thấy Kerberos đã được dùng để xác thực trên website IIS.

Cấu hình xác thực Kerberos trên website IIS