Điểm:1

Gỡ lỗi đăng nhập Active Directory với MongoDB

lá cờ eg

Tôi đang cố đăng nhập vào MongoDB bằng tên người dùng thư mục hoạt động. Chúng tôi đang sử dụng Percona cho MongoDB nhưng tôi tin rằng điều này thực sự sẽ khá giống với xác thực MongoDB 5.x thông thường.

Chúng tôi đã thử hết biến thể này đến biến thể khác. Đây là nỗ lực gần đây nhất:

bọc lưới:
   tls:
      chế độ: yêu cầuTLS
      allowConnectionsWithoutCertificates: đúng
Bảo vệ:
  ủy quyền: đã bật
  ldap:
    xác thực:
      queryTemplate: "dc=domain,dc=local??sub?(&(objectClass=group)(thành viên:1.2.840.113556.1.4.1941:={USER}))"
    máy chủ: "my-dc.domain.local"
    An ninh vận tải: không có
    trói buộc:
      queryUser: "CN=percona,OU=Accounts,OU=My Site,DC=domain,DC=local"
      queryPassword: "siêu bí mật"
    userToDNMapping: >-
      [
         {
           khớp: "(.+)",
           ldapQuery: "dc=domain,dc=local??sub?(&(objectClass=organizationalPerson)(sAMAccountName={0}))"
         }
      ]
thiết lập tham số:
  cơ chế xác thực: "PLAIN"

Lỗi tôi nhận được là:

{"t":{"$date":"2022-05-27T21:31:24.896+00:00"},"s":"I", "c":"ACCESS", "id":29052, "ctx":"conn349795","msg":"Thông báo máy chủ SASL: ({priority}) {msg}","attr":{"priority":2,"msg":"Xác minh mật khẩu không thành công"}}

{"t":{"$date":"2022-05-27T21:31:24.896+00:00"},"s":"I", "c":"ACCESS", "id":20249, "ctx":"conn349795","msg":"Xác thực thất bại","attr":{"cơ chế":"PLAIN","speculative":false,"principalName":"brad.test","authenticationDatabase": "$external","remote":"10.40.14.16:42930","extraInfo":{},"error":"OperationFailed: bước SASL chưa hoàn thành: (không tìm thấy người dùng)"}}

Bây giờ từ hai lỗi trên, bạn cho rằng mật khẩu đã bị nhập sai nhưng tôi đã kiểm tra bốn lần mật khẩu trong mongod.conf là chính xác. Tôi cũng đã kiểm tra bốn lần tên người dùng và mật khẩu của người dùng mà tôi đang kết nối với mogodb có đúng không.

Cũng có đề cập đến việc không tìm thấy người dùng nhưng nếu tôi lấy tên người dùng của mình và truy vấn trực tiếp thư mục hoạt động bằng cách sử dụng: (objectClass=organizationalPerson)(sAMAccountName=brad.test) thì tôi sẽ lấy lại được tài khoản của mình.

Tương tự như vậy Nếu tôi truy vấn thư mục hoạt động bằng cách sử dụng: (objectClass=group)(member:1.2.840.113556.1.4.1941:=CN=Brad - Test,OU=Foo,OU=Bar,DC=domain,DC=local) tôi nhận được một danh sách các nhóm mà tôi là thành viên.

Tôi nghĩ rằng truy vấn ldap và mẫu truy vấn của tôi là chính xác.

Tôi nên đề cập rằng tôi có các định nghĩa sau trong cơ sở dữ liệu quản trị viên mongo và tài khoản của tôi là thành viên của nhóm đó:

var admin = db.getSiblingDB("admin")
admin.createRole(
   {
     vai trò: "CN=Người dùng MongoDB,OU=Nhóm,OU=Trang web của tôi,DC=miền,DC=cục bộ",
     đặc quyền: [],
     vai trò: [ "userAdminAnyDatabase" ]
   }
)

Nếu tôi kiểm tra nhật ký bảo mật trên máy chủ thư mục hoạt động, tôi sẽ thấy

Máy tính đã cố xác thực thông tin xác thực cho một tài khoản.

Gói xác thực: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
Tài khoản đăng nhập: percona
Nguồn máy trạm: MY-DC
Mã lỗi: 0x0

Mã lỗi 0x0 nghĩa là đã đăng nhập thành công.

Bây giờ tôi không thấy bất kỳ nỗ lực đăng nhập nào cho tài khoản người dùng của mình brad.test - có thể đó là dấu hiệu cho thấy nó không liên hệ với AD để xác thực người dùng của tôi nhưng tôi không chắc tại sao. Đáng buồn thay, có quá nhiều tài liệu cho cả mongo và percona cho Mongo khác nhau tùy thuộc vào việc người dùng của bạn là AD hay LDAP. Tìm một ví dụ làm việc đã được khó khăn.

Tôi cảm thấy như có gì đó nhỏ không ổn nhưng tôi không thấy nó là gì. Bất kỳ ai khác đã thực hiện việc này trước đây và có bất kỳ gợi ý hoặc đề xuất nào không?

Cảm ơn Brad

lá cờ eg
Điều có thể hữu ích nhất là một số cách để nhận thông tin gỡ lỗi bổ sung từ mongo về quy trình xác thực để hiểu điều gì đang diễn ra. Tôi không thấy tùy chọn mongod.conf để điều chỉnh mức độ chi tiết. Và tôi đã thử sử dụng mongosh và tôi không gặp phải bất kỳ lỗi dài dòng nào nữa ở đó.
lá cờ eg
Đây là chuỗi xác thực mà tôi đang kết nối: mongodb://brad.test:[email protected]:27017/?tls=true&authMechanism=PLAIN&authSource=%24external Xác thực thư mục không hoạt động thông thường hoạt động tốt.
lá cờ mx
Tôi không biết nhiều về MongoDB và nhật ký ít mô tả hơn của nó không giúp được gì. Nhưng nếu tôi phải đoán, thông báo lỗi "xác minh mật khẩu không thành công" đến từ tài khoản bạn đã sử dụng cho truy vấn AD ( CN=percona). Lỗi tiếp theo là do tài khoản truy vấn không được xác thực thành công. Vì vậy, hãy kiểm tra kỹ tài khoản percona của bạn thay vì "brad.test". Nếu CN=percona đăng nhập AD thành công, thì MongoDB sẽ kiểm tra xem "brad.test" có phải là thành viên của một nhóm nhất định hay không, điều này không liên quan đến bất kỳ xác thực nào của brad.test

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.