
Tổng quan về xác thực Windows tích hợp
Xác thực Windows tích hợp (IWA) là một cơ chế tự động cung cấp thông tin xác thực người dùng cho IIS khi cả IIS và người dùng đều đăng nhập vào cùng một miền. Khi bạn tạo một trang web bằng C# của ASP.NET, bạn có thể xác định xem người dùng đã được xác thực hay chưa và truy xuất thông tin về những người dùng đã được xác thực.
Điều này cho phép người dùng truy cập các ứng dụng web được lưu trữ (hoặc tích hợp với) IIS mà không cần thực hiện thêm các bước đăng nhập, đồng thời cho phép tích hợp SSO với các máy chủ ứng dụng khác.
*Nếu người dùng không tham gia cùng một miền hoặc chưa được xác thực, trang IIS sẽ hiển thị biểu tượng đăng nhập, và nếu quá trình xác thực không thành công, lỗi HTTP 401.1 – Không được phép truy cập sẽ xảy ra.

Quy trình SSO (Đăng nhập một lần)
Gói Chat&Messenger Ultimate cài đặt tại chỗ cho phép đăng nhập một lần (SSO) thông qua xác thực Windows tích hợp. Quy trình SSO như sau:
- Trước tiên, máy khách truy cập trang xác thực Windows tích hợp /cam-iissso.
- Trang /cam-iissso sử dụng ASP.NET để xác định xem người dùng đã được xác thực hay chưa, sau đó kết nối với CAMServer.
- CAMServer thực hiện tìm kiếm LDAP để xác minh người dùng là người dùng AD hợp lệ, tạo URL để truy cập CAMServer cùng với ssoToken (một giá trị ngẫu nhiên duy nhất có độ dài từ 30 byte trở lên), và sau đó yêu cầu chuyển hướng.
- Truy cập CAMServer và xác thực bằng ssoToken. Sau khi xác thực thành công, một ID phiên để truy cập API sẽ được cấp.

Các yêu cầu để triển khai SSO
Kết nối Windows Server với miền
Vui lòng kết nối máy chủ Windows Server đang chạy CAMServer/IIS với miền Active Directory.
Để kiểm tra xem máy chủ Windows hiện tại đang tham gia vào những miền nào, hãy vào "Trình quản lý máy chủ", nhấp vào "Máy chủ cục bộ" trong menu bên trái, nhấp vào "Tên máy tính" và tham khảo trường miền.
Ngoài ra, IIS nên được đặt trên cùng một máy chủ với CAMServer và chạy trên cổng 80. Nếu bạn đặt một LoadBalancer phía trước CAMServer, CAMServer sẽ chạy trên cổng 8080, do đó IIS cũng có thể sử dụng cổng 443.
Cài đặt IIS
Cài đặt IIS từ các vai trò máy chủ. Khi cài đặt IIS, hãy chọn các tùy chọn sau trong phần lựa chọn dịch vụ vai trò.
- Xác thực Windows
- Bộ lọc ISAPI
- Tiện ích mở rộng ISAPI

Cài đặt gói lưu trữ ASP.NET Core.
Gói lưu trữ ASP.NET Core Vui lòng cài đặt. Sau khi cài đặt, khởi động lại IIS và kiểm tra xem AspNetCoreModuleV2 có tồn tại trong các ánh xạ trình xử lý hay không.



Thêm ứng dụng (cam-iissso)
Vui lòng thêm ứng dụng cam-iissso vào Trang web mặc định của bạn.
- Biệt danh: cam-iissso
- Đường đi vật lý: \sys\cam-iissso-net8.0
Ngoài ra, hãy cấp cho nhóm IIS_IUSRS quyền truy cập chỉ đọc (đọc và thực thi, liệt kê nội dung thư mục, đọc) đối với thư mục cam-iissso-net8.0.


Bật xác thực Windows
Nhấp chuột phải vào "Xác thực Windows" và chọn "Bật".

Cài đặt Tùy chọn Internet
Thêm một trang web do IIS cung cấp vào vùng intranet.
Chọn Tùy chọn Internet, nhấp vào tab Bảo mật, rồi chọn Mạng nội bộ cục bộ. Nhấp vào nút Trang web, chọn Nâng cao, và thêm URL của trang web.
Xác minh đăng nhập tự động.
Nhấp vào "Tùy chỉnh cấp độ", sau đó trong phần "Xác thực người dùng" → "Đăng nhập", hãy đảm bảo rằng tùy chọn "Tự động đăng nhập vào vùng mạng nội bộ" được chọn.


Cài đặt LDAP
Nếu bạn muốn thực hiện đăng nhập một lần (single sign-on) bằng IIS,Cài đặt LDAP(Cần có LDAPUrl, LDAPBaseDN và người dùng AD thực hiện xác thực proxy.)

Đăng ký truy cập và SPN bằng FQDN (Tên miền đủ điều kiện).
Việc truy cập trang Xác thực Tích hợp Windows của IIS bằng tên máy chủ (tên NetBIOS) không yêu cầu đăng ký, nhưng việc đăng ký SPN là cần thiết khi truy cập bằng FQDN (Tên miền đủ điều kiện, ví dụ: sso.example.com).
Tên chính của dịch vụ (SPN) là tên được sử dụng trong xác thực Kerberos để xác định duy nhất một dịch vụ cụ thể trên Active Directory. Khi truy cập một dịch vụ bằng Tên miền đủ điều kiện (FQDN) của nó, việc đăng ký SPN cho phép máy khách yêu cầu chính xác vé Kerberos cho dịch vụ mà nó đang truy cập.
Ví dụ https://sso.example.com Khi truy cập một dịch vụ, máy khách (trình duyệt) yêu cầu một vé xác thực từ Active Directory với nội dung: "Tôi muốn kết nối với dịch vụ có tên HTTP/sso.example.com." Active Directory kiểm tra xem SPN được liên kết với tài khoản nào và cấp vé dịch vụ tương ứng. Nếu SPN không được đăng ký chính xác, quá trình xác thực Kerberos sẽ thất bại, dẫn đến việc hiển thị hộp thoại xác thực.
Việc đăng ký SPN được thực hiện cho tài khoản máy tính lưu trữ IIS. Ví dụ:quảng cáo Đối với IIS đang chạy dưới tên máy chủ [hostname], hãy đăng ký SPN như sau:
setspn -S HTTP/sso.example.com ad$
Sau khi đăng ký, bạn có thể kiểm tra bằng lệnh sau:
setspn -L ad$
Kết quả này HTTP/sso.example.com Nếu thông báo này hiển thị, việc đăng ký SPN của bạn đã thành công.
Không khả dụng trong môi trường kết nối proxy HTTP.
Vui lòng lưu ý rằng SSO không khả dụng trong môi trường kết nối proxy HTTP.
Cấu hình môi trường LoadBalancer + SSL
Nếu bạn đang sử dụng Xác thực Windows tích hợp IIS trong môi trường LoadBalancer + SSL, vui lòng tham khảo bài đăng trên blog sau.


