ADFS (Dịch vụ Liên kết Active Directory) là gì?


77

Vì vậy, tôi đã được thông báo rằng ứng dụng PHP của chúng tôi có thể cần hỗ trợ xác thực bằng ADFS.

  1. Đối với một người không phải là Microsoft, ADFS là gì?

  2. Nó khác với những thứ như LDAP như thế nào?

  3. Làm thế nào nó hoạt động? Loại thông tin nào sẽ được bao gồm trong yêu cầu thông thường đến máy chủ ADFS? Được thiết kế cho cả xác thực và ủy quyền?

  4. Các máy chủ ADFS thường có thể truy cập từ internet (trong khi các bộ điều khiển miền AD của công ty sẽ không)?

Tôi đã thử đọc một số tài liệu Technet, nhưng nó chứa đầy Microsoft-speak không hữu ích lắm.

Wikipedia là tốt hơn (xem bên dưới), nhưng có lẽ một số cộng đồng ServerFault có thể điền vào một số khoảng trống.

Dịch vụ Liên kết Active Directory (ADFS) là một thành phần phần mềm do Microsoft phát triển có thể được cài đặt trên hệ điều hành Windows Server để cung cấp cho người dùng quyền truy cập đăng nhập một lần vào các hệ thống và ứng dụng nằm trong ranh giới tổ chức. Nó sử dụng mô hình ủy quyền kiểm soát truy cập dựa trên khiếu nại để duy trì bảo mật ứng dụng và triển khai danh tính liên kết.

Xác thực dựa trên yêu cầu là quá trình xác thực người dùng dựa trên tập hợp các khiếu nại về danh tính của nó có trong mã thông báo đáng tin cậy.

Trong ADFS, liên kết danh tính được thiết lập giữa hai tổ chức bằng cách thiết lập niềm tin giữa hai lĩnh vực bảo mật. Máy chủ liên kết ở một bên (phía Tài khoản) xác thực người dùng thông qua các phương tiện tiêu chuẩn trong Dịch vụ miền Active Directory và sau đó phát hành mã thông báo chứa một loạt khiếu nại về người dùng, bao gồm cả danh tính của người dùng. Mặt khác, phía Tài nguyên, một máy chủ liên kết khác xác thực mã thông báo và phát hành một mã thông báo khác cho các máy chủ cục bộ để chấp nhận danh tính được yêu cầu. Điều này cho phép hệ thống cung cấp quyền truy cập có kiểm soát vào tài nguyên hoặc dịch vụ của mình cho người dùng thuộc một lĩnh vực bảo mật khác mà không yêu cầu người dùng xác thực trực tiếp với hệ thống và không có hai hệ thống chia sẻ cơ sở dữ liệu nhận dạng hoặc mật khẩu người dùng.

Trong thực tế phương pháp này thường được người dùng cảm nhận như sau:

  1. Người dùng đăng nhập vào PC cục bộ của họ (như họ thường làm khi bắt đầu làm việc vào buổi sáng)
  2. Người dùng cần lấy thông tin trên trang web extranet của đối tác - ví dụ: để có được giá cả hoặc chi tiết sản phẩm
  3. Người dùng điều hướng đến trang web extranet của công ty đối tác - ví dụ: http://example.com
  4. Trang web đối tác hiện không yêu cầu nhập bất kỳ mật khẩu nào - thay vào đó, thông tin đăng nhập của người dùng được chuyển đến trang web extranet của đối tác bằng AD FS
  5. Người dùng hiện đã đăng nhập vào trang web đối tác và có thể tương tác với trang web 'đăng nhập'

Từ https://en.wikipedia.org/wiki/Active_Directory_Fedenses_Service


Tôi thấy những bài viết nàyvideo này hữu ích trong việc cung cấp một cái nhìn tổng quan.
Simon East

Reaces cung cấp một câu trả lời tuyệt vời. Thông tin bổ sung duy nhất tôi muốn thêm là có thể trả tiền để hiểu giao thức Liên kết WSNgôn ngữ đánh dấu xác nhận bảo mật (SAML) là các tiêu chuẩn mà ADFS thực hiện. Dưới đây là một vài video tôi thấy hữu ích trong việc hiểu các khái niệm (khá phức tạp) này. Thật không may, chúng chứa rất nhiều tài liệu mà tôi không thể đưa nó vào đây. ! [Hình thu nhỏ video Hiểu SAML và Đăng nhập một lần 101 trên YouTube] ( youtube.com/watch?v=gUmMcecHN9s ) [! [Hình thu nhỏ video] (http
Simon East

Tôi cũng gặp khó khăn khi hiểu ADFS. Tôi cần một lời giải thích ngay từ đầu (tôi không phải là người AD). Video này được bao gồm trong loạt được đề cập trong các ý kiến ​​ở đây, rất hữu ích cho tôi. Đây là nơi mà bất kỳ người mới, không có kinh nghiệm nào với ADFS nên bắt đầu và sau đó tiếp tục với phần còn lại của video trong chuỗi. Tôi hy vọng nó sẽ giúp. youtube.com/ Quảng cáo
Mauricio Zaragoza

1
Xin lỗi mọi người, một người điều hành đã xóa câu trả lời của tôi bằng các video hữu ích và đưa ra nhận xét ở trên nhưng giờ đã bị hỏng. Bực bội.
Simon East

Câu trả lời:


97

Đối với một người không phải là Microsoft, ADFS là gì?

ADFS là giải pháp của Microsoft cho Xác thực đăng nhập một lần và dựa trên web.

Nó được sử dụng chủ yếu để cung cấp một bộ thông tin xác thực có thể truy cập vào nhiều trang web không nhất thiết phải được lưu trữ trong cùng một tên miền.

Nó khác với những thứ như LDAP như thế nào?

LDAP:

  • Giao tiếp bằng TCP / UDP trên cổng 389 (hoặc cổng 636 cho LDAPS)
  • Chứa các lệnh để tìm kiếm / truy xuất / thêm / xóa / sửa đổi người dùng, hồ sơ và các mục nhập thư mục khác
  • Có thể không được thực hiện trực tiếp bởi một trình duyệt web, tuy nhiên xác thực HTTP có thể được dịch sang LDAP sử dụng những thứ như Apache mod_authnz_ldap.
  • Khi được sử dụng để xác thực trang web của bên thứ ba, yêu cầu tên người dùng và mật khẩu được cung cấp cho bên thứ ba, điều này không lý tưởng để bảo mật.
  • Là một tiêu chuẩn mở và có nhiều triển khai Linux.

QUẢNG CÁO:

  • Được thiết kế tốt hơn cho web khi nó giao tiếp qua HTTPS tiêu chuẩn
  • Theo một quy trình an toàn tương tự (nhưng không chính xác) với OAuth nơi tên người dùng / mật khẩu ban đầu được cung cấp trực tiếp cho máy chủ ADFS của tổ chức (hoặc proxy, nhưng không phải bên thứ ba), nếu hợp lệ, sẽ trả về một mã thông báo duy nhất có thể được sử dụng để truy cập trang web của bên thứ ba.
  • Mặc dù nó sử dụng một số tiêu chuẩn mở (HTTPS, SAML, v.v.), nó là dành riêng cho Microsoft và yêu cầu Dịch vụ thông tin Internet (IIS) chỉ chạy trên Máy chủ Windows.

Xem thêm câu trả lời về chủ đề này.

Làm thế nào nó hoạt động? Loại thông tin nào sẽ được bao gồm trong yêu cầu thông thường đến máy chủ ADFS? Được thiết kế cho cả xác thực và ủy quyền?

Nó hoạt động bằng cách có một trang web (trang A) lưu trữ các máy chủ proxy ADFS / ADFS, có quyền truy cập vào thông tin đăng nhập (thường bằng cách giao tiếp với Bộ điều khiển miền Active Directory). Sau đó, nó được trao niềm tin giữa các trang web khác (trang web B & C) yêu cầu xác thực thông qua ADFS.

Khi người dùng cố gắng truy cập trang web B trong trình duyệt của họ, trang web sẽ chuyển hướng người dùng đến trang web proxy ADFS (trang A) yêu cầu tên người dùng và mật khẩu của họ, xác thực chúng, trả về một bộ cookie để ghi nhớ chúng và chuyển hướng chúng quay lại trang B, cùng với mã thông báo truy cập.

Nếu người dùng sau đó cố gắng truy cập trang web C, họ cũng sẽ được chuyển hướng đến trang A để xác thực từ trang web proxy ADFS. Nếu đúng cookie tồn tại, người dùng sẽ không được yêu cầu nhập lại mật khẩu của họ, nhưng được chuyển hướng ngay lập tức trở lại trang C bằng mã thông báo.

ADFS có thể được cấu hình với các khiếu nại (hoặc quyền) cụ thể cho người dùng, cho mục đích ủy quyền. Vì vậy, nó có thể phục vụ cả hai vai trò. (Lưu ý sự khác biệt giữa xác thực và ủy quyền .)

Một số người không muốn sử dụng nó để ủy quyền mà thay vào đó giữ quyền quản lý quyền trong trang web của bên thứ ba. Nhược điểm rõ ràng là cả hai trang A & B cần theo dõi tài khoản người dùng, trong khi trong trường hợp ADFS xử lý cả hai, chỉ có ADFS cần phải biết về người dùng.

Các máy chủ ADFS thường có thể truy cập từ internet (trong khi các bộ điều khiển miền AD của công ty sẽ không)?

Vâng, gần như luôn luôn. ADFS dựa trên khái niệm rằng nó sẽ chủ yếu được sử dụng để xác thực trang web. Và được xây dựng xung quanh IIS.

Trang web proxy ADFS là trang web thường có thể truy cập từ internet. Tuy nhiên, bản thân ADFS thì không. ADFS nói chung là một máy chủ riêng biệt từ ADFS-proxy.

  • Máy chủ ADFS
    liên kết đến thông tin đăng nhập và có cấu hình khiếu nại cũng như tin cậy. Nói chung không thể truy cập công khai.
  • ADFS Proxy Server
    Server lưu trữ phiên bản IIS có các trang đăng nhập cho các trang web yêu cầu xác thực. Giao tiếp trở lại ADFS khi yêu cầu xác thực. Nói chung có thể truy cập công khai.

11
Để làm rõ: ADFS Proxy Server phải chạy trên IIS (Windows). Tuy nhiên, các trang web khách (B & C) có thể chạy bất kỳ hệ điều hành và máy chủ web nào, bao gồm cả Linux.
Olli

Rất hữu ích, chỉ cần tạo một tài khoản cho ngón tay cái này.
Juan

Mở rộng câu trả lời của @Reaces, ADFS 4.0 trên Windows Server 2016 hỗ trợ đầy đủ OAuth / OpenId Connect.
Mohammad Reza Sadreddini

@MohammadRezaSadreddini Hãy chỉnh sửa câu trả lời để mở rộng trên đó.
Tái lập
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.