Các phiên bản có hỗ trợ tính năng này: Frontline Standard và Frontline Plus; Business Plus; Enterprise Standard và Enterprise Plus; Education Fundamentals, Education Standard và Education Plus; Enterprise Essentials Plus. So sánh phiên bản của bạn
Trước khi bạn cố gắng kết nối ứng dụng LDAP với dịch vụ Giao thức truy cập thư mục hạng nhẹ (LDAP) bảo mật, bạn có thể tùy chọn thực hiện một bài kiểm tra nhanh về khả năng kết nối bằng các công cụ đơn giản như ldapsearch, ADSI hoặc ldp.exe. Bạn cũng có thể sử dụng các công cụ này để khắc phục sự cố nếu gặp lỗi khi cố gắng kết nối ứng dụng LDAP với dịch vụ.
Các bài kiểm tra được mô tả trong các phần bên dưới giúp bạn hiểu rõ liệu bạn có gặp vấn đề về cấu hình hay không, các thông báo lỗi thường gặp và các đề xuất về cách khắc phục những vấn đề đó.
Bài viết này bao gồm các mục sau:
- Xác minh khả năng kết nối và chạy truy vấn LDAP
Khi chạy truy vấn LDAP, bạn có thể xác nhận rằng mình có thể kết nối với LDAP bảo mật và thực hiện các truy vấn. - Nếu cần, hãy chạy kiểm tra khả năng kết nối cơ bản
Nếu không chạy được truy vấn LDAP, hãy chạy kiểm tra khả năng kết nối cơ bản để kiểm tra quyền truy cập mạng và quy trình xác thực.
Lưu ý: Nếu cần liên hệ với Nhóm hỗ trợ Google Workspace hoặc Dịch vụ hỗ trợ đặc biệt Cloud Identity Premium trong quá trình này, hãy nhớ lưu kết quả của các lệnh. Đảm bảo bạn đã xoá mọi thông tin nhận dạng cá nhân khỏi kết quả trước khi chia sẻ với nhóm hỗ trợ.
Xác minh khả năng kết nối và chạy truy vấn LDAP
Sau khi thiết lập dịch vụ LDAP bảo mật trong Bảng điều khiển dành cho quản trị viên của Google, bạn có thể sử dụng một trong ba công cụ đơn giản này để xác minh khả năng kết nối với LDAP bảo mật: ldapsearch, ADSI hoặc ldp.exe. Để biết thông tin chi tiết và hướng dẫn, hãy xem các phần bên dưới.
ldapsearch
Sử dụng tiện ích ldapsearch từ dòng lệnh để thực hiện truy vấn LDAP cơ bản. Kết quả truy vấn LDAP thành công cho biết rằng ứng dụng LDAP và phiên TLS cơ bản cũng như kết nối TCP đang hoạt động như dự kiến.
Cách kiểm tra khả năng kết nối bằng ldapsearch:
- Tạo cấu hình LDAP và tải chứng chỉ xuống theo hướng dẫn trong bài viết Thêm ứng dụng LDAP.
Lưu ý: Để đơn giản hoá môi trường kiểm thử, hãy đảm bảo có ít nhất một người dùng trong đơn vị tổ chức mà bạn cấp quyền truy cập cho ứng dụng LDAP.
- Thực thi truy vấn LDAP. Ví dụ này truy vấn một người dùng cụ thể (để biết thêm thông tin chi tiết, hãy xem bài viết OpenLDAP ldapsearch).
LDAPTLS_CERT={crt_file} LDAPTLS_KEY={key_file} ldapsearch -H ldaps://ldap.google.com:636 -b dc={domain},dc={domain} '(mail={user_email})'Thay thế các phần giữ chỗ như sau:
- {crt_file} Tên của tệp .crt
- {key_file} Tên tệp của tệp .key
- {domain} Mỗi phần của tên miền, ví dụ: example.com sẽ trở thành "dc=example,dc=com"
- {user_email} Địa chỉ email chính của người dùng trong miền.
Lưu ý về cách sử dụng ldapsearch
- Nếu không có giá trị BindDN nào được cung cấp, thì ldapsearch sẽ sử dụng khoá và chứng chỉ để cấp quyền cho tìm kiếm.
- Nếu giá trị BindDN là tên người dùng LDAP mà bạn đã tạo trong Bảng điều khiển dành cho quản trị viên, thì ldapsearch sẽ sử dụng các quyền của ứng dụng LDAP như được định cấu hình trong Bảng điều khiển dành cho quản trị viên.
ldapsearch -H ldaps://ldap.google.com:636 -b dc={domain},dc={domain} -D {ldap_access_credentials_username} -W '(mail={user_email}) - Nếu giá trị BindDN là địa chỉ email hoặc tên phân biệt LDAP của Người dùng Workspace, thì ldapsearch sẽ sử dụng thông tin xác thực của người dùng đó để tìm kiếm dựa trên các quyền của họ.
ldapsearch -H ldaps://ldap.google.com:636 -b dc={domain},dc={domain} -D {workspace_username@domain} -W '(mail={user_email})'
Sử dụng ldapsearch với stunnel
Nếu quá trình triển khai yêu cầu bạn sử dụng stunnel, hãy làm theo các bước sau:
- Trong Bảng điều khiển dành cho quản trị viên, hãy tạo thông tin xác thực quyền truy cập để tạo tên người dùng và mật khẩu mà ldapsearch cần.
- Sử dụng lệnh sau:
ldapsearch -x -D "{username}" -w {password} -H ldap://{stunnel_host}:{stunnel_port} -b dc={domain},dc={domain} '(mail={user_email})'Thay thế các phần giữ chỗ như sau:
- {username} Tên người dùng từ thông tin xác thực đã tạo trong Bảng điều khiển dành cho quản trị viên
- {password} Mật khẩu từ thông tin xác thực đã tạo trong Bảng điều khiển dành cho quản trị viên
- {stunnel_host} : Địa chỉ IP hoặc tên máy chủ của máy đang chạy stunnel trong mạng của bạn.
- {stunnel_port} : cổng mà stunnel đang chạy, hãy kiểm tra cấu hình stunnel
- {user_email} Địa chỉ email chính của người dùng trong miền
Trường hợp thành công của lệnh ldapsearch
Kết quả thành công của lệnh ldapsearch sẽ liệt kê người dùng có email (như được chỉ định khi tạo ứng dụng LDAP) ở định dạng LDIF.
Ví dụ:
# extended LDIF
#
# LDAPv3
# base <dc=example,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# example.com
dn: dc=example,dc=com
objectClass: top
objectClass: domain
objectClass: dcObject
dc: example
# admin-group, Groups, example.com
dn: cn=admin-group,ou=Groups,dc=example,dc=com
objectClass: top
objectClass: groupOfNames
objectClass: posixGroup
cn: admin-group
displayName: admin-group
description:
gidNumber: 12345
member: uid=admin,ou=Users,dc=example,dc=com
memberUid: admin
googleAdminCreated: FALSE
# example-user, Users, example.com
dn: uid=example-user,ou=Users,dc=example,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
uid: example-user
googleUid: example-user
posixUid: example-user
cn: example-user
cn: FirstName LastName
sn: FirstName
displayName: FirstName LastName
givenName: FirstName
mail: example-user@example.com
uidNumber: 12345
gidNumber: 12345
homeDirectory: /home/example-user
loginShell: /bin/bash
gecos:
Các lỗi có thể xảy ra
- Ứng dụng và/hoặc thư viện OpenLDAP được biên dịch mà không có hỗ trợ SNI
Ứng dụng LDAP (OpenLDAP trong trường hợp này) phải hỗ trợ SNI (Chỉ báo tên máy chủ). Nếu không có SNI, bạn có thể thấy một lỗi tương tự như sau:SASL/EXTERNAL authentication startedldap_sasl_interactive_bind_s: Unknown authentication method (-6)additional info: SASL(-4): no mechanism available:
Đề xuất:- Nếu bạn đang sử dụng MacOS, thì SASL sẽ được bật theo mặc định và có thể bỏ qua bằng tuỳ chọn "-x".
- Thêm tuỳ chọn
-d5vào ldapsearch và kiểm tra kết quả cho dòng sau:TLS certificate verification: depth: 0, err: 18, subject: /OU=No SNI provided; please fix your client.
-
ldapsearch trả về trạng thái 0 (thành công) nhưng không có người dùng nào được xuất
Việc chỉ định tuỳ chọn ldapsearch-x(sử dụng xác thực SASL) với chứng chỉ ứng dụng sẽ xác thực thành công nhưng sẽ không liệt kê người dùng trong miền.
Đề xuất: Xoá tuỳ chọn-xrồi thử lại.
Chỉnh sửa ADSI (Windows)
- Làm theo các bước từ 1 đến 11 trong ldp.exe (Windows) để cài đặt chứng chỉ ứng dụng.
- Chuyển đến Action > Connect to… (Hành động > Kết nối với…)
- Nhập các chế độ cài đặt kết nối sau:
Tên: Nhập tên cho kết nối của bạn, chẳng hạn như Google LDAP.
Điểm kết nối: "Chọn hoặc nhập Tên phân biệt hoặc Bối cảnh đặt tên"
Nhập tên miền của bạn ở định dạng DN (ví dụ: dc=example,dc=com cho example.com).
Máy tính: "Chọn hoặc nhập miền hoặc máy chủ"
ldap.google.com
Sử dụng tính năng mã hoá dựa trên SSL: Đã chọn - Nhấp vào Advanced... (Nâng cao...) rồi nhập các thông tin chi tiết sau:
Specify credentials (Chỉ định thông tin xác thực): Đã chọn
Username (Tên người dùng): Tên người dùng thông tin xác thực quyền truy cập từ Bảng điều khiển dành cho quản trị viên
Password (Mật khẩu): Mật khẩu thông tin xác thực quyền truy cập từ Bảng điều khiển dành cho quản trị viên
Port Number (Số cổng): 636
Protocol (Giao thức): LDAP
Simple bind authentication (Xác thực liên kết đơn giản): Đã chọn - Nhấp vào OK rồi nhấp lại vào OK.
- Nếu kết nối thành công, nội dung thư mục trong DN cơ sở sẽ xuất hiện trong ngăn bên phải.
ldp.exe (Windows)
- Cài đặt OpenSSL.
- Chuyển đổi tệp chứng chỉ và khoá thành một tệp được định dạng PKCS12. Tại dấu nhắc lệnh, hãy nhập như sau:
openssl pkcs12 -inkey ldap-client.key -in ldap-client.crt -export -out ldap-client.p12
Nhập mật khẩu để mã hoá tệp đầu ra. - Chuyển đến Bảng điều khiển.
- Trong hộp tìm kiếm, hãy tìm "certificate" (chứng chỉ) rồi nhấp vào Manage user certificates (Quản lý chứng chỉ người dùng).
- Chuyển đến Action > All Tasks > Import… (Hành động > Tất cả tác vụ > Nhập…)
- Chọn Current User (Người dùng hiện tại) rồi nhấp vào Next (Tiếp theo).
- Nhấp vào Browse… (Duyệt xem…)
- Trong trình đơn thả xuống file type (loại tệp) ở góc dưới bên phải của hộp thoại, hãy chọn Personal Information Exchange (*.pfx;*.p12) (Trao đổi thông tin cá nhân (*.pfx;*.p12)).
- Chọn tệp ldap-client.p12 từ bước 2, nhấp vào Open (Mở) rồi nhấp vào Next (Tiếp theo).
- Nhập mật khẩu từ bước 2 rồi nhấp vào Next (Tiếp theo).
- Chọn kho lưu trữ chứng chỉ Personal (Cá nhân), nhấp vào Next (Tiếp theo) rồi nhấp vào Finish (Hoàn tất).
- Chạy Ldp.exe.
- Chuyển đến Connection > Connect... (Kết nối > Kết nối...)
- Nhập thông tin chi tiết về kết nối sau:
Server (Máy chủ): ldap.google.com
Port (Cổng): 636
Connectionless (Không kết nối): Bỏ chọn
SSL:Đã chọn - Nhấp vào OK.
- Chuyển đến View > Tree (Xem > Cây).
- Nhập DN cơ sở. Đây là tên miền của bạn ở định dạng DN. (ví dụ: dc=example,dc=com cho example.com).
- Nhấp vào OK.
- Nếu kết nối thành công, nội dung thư mục trong DN cơ sở sẽ xuất hiện trong ngăn bên phải.
Nếu cần, hãy chạy kiểm tra khả năng kết nối cơ bản
Nếu bạn không thể nhận được kết quả thành công trong phần Xác minh khả năng kết nối và chạy truy vấn LDAP, hãy làm theo hướng dẫn trong phần này để kiểm tra khả năng kết nối. Nếu ldapsearch không trả về người dùng dự kiến và không cho biết rõ rằng phiên TLS cơ bản đã thành công, hãy sử dụng ứng dụng OpenSSL để xác minh rằng các lớp mạng mà OpenLDAP dựa vào đang hoạt động như dự kiến.
Cách tiến hành kiểm tra khả năng kết nối cơ bản:
Cài đặt tiện ích ứng dụng openssl cho hệ điều hành của bạn.
Hầu hết các bản phân phối GNU/Linux đều sử dụng tên gói "openssl". Xem thông tin chi tiết về các hệ điều hành khác.
Kết nối thủ công với dịch vụ LDAP bảo mật bằng ứng dụng openssl:
openssl s_client -connect ldap.google.com:636Xác nhận rằng quá trình thương lượng SSL đã thành công bằng cách kiểm tra sự hiện diện của dòng sau ở cuối kết quả đầu ra của openssl s_client:
Verify return code: 0 (ok)
Các lỗi có thể xảy ra
Ứng dụng/thư viện OpenSSL không hỗ trợ SNI (Chỉ báo tên máy chủ)
Trong quá trình kiểm tra khả năng kết nối, kết quả đầu ra sau đây có thể được trả về:
Verify return code: 18 (self signed certificate)
Dịch vụ LDAP bảo mật yêu cầu một ứng dụng TLS hỗ trợ và khởi động phiên TLS bằng SNI (Chỉ báo tên máy chủ). Nếu ứng dụng TLS không hỗ trợ SNI, thì máy chủ TLS (ldap.google.com) sẽ trả về một chứng chỉ tự ký không vượt qua các lượt kiểm tra xác thực của Tổ chức phát hành chứng chỉ (CA) để cho biết rằng cần có SNI.
Bạn có thể xác nhận hành vi này bằng cách kiểm tra kết quả đầu ra của ứng dụng OpenSSL cho dòng sau ở gần đầu kết quả đầu ra:
depth=0 OU = "No SNI provided; please fix your client.", CN = invalid2.invalid
Nguyên nhân gây ra lỗi này có thể là do phiên bản OpenSSL không hỗ trợ SNI hoặc một ứng dụng sử dụng thư viện OpenSSL với SNI bị tắt rõ ràng.
Kết nối bị từ chối
Nếu kết quả đầu ra sau đây được trả về (trong đó {timestamp} là dấu thời gian UNIX tính bằng micro giây), thì kết nối TCP đang bị từ chối chủ động trước khi quá trình thương lượng TLS có thể bắt đầu:
{timestamp}:error:0200206F:system library:connect:Connection refused:crypto/bio/b_sock2.c:110:
{timestamp}:error:2008A067:BIO routines:BIO_connect:connect error:crypto/bio/b_sock2.c:111:connect:errno=111
Điều này có thể do những nguyên nhân sau đây:
- Tường lửa ở cấp ứng dụng hoặc cấp hệ thống trên máy cục bộ
- Tường lửa trên cùng một mạng vật lý hoặc mạng ngược dòng
Để điều tra, hãy sử dụng tcptraceroute để xác định máy chủ nào đang từ chối kết nối, ví dụ: tcptraceroute ldap.google.com 636.