Các phiên bản 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 cố gắng kết nối ứng dụng LDAP với dịch vụ LDAP bảo mật, bạn có thể muố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ể 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 kiểm thử được mô tả trong các phần bên dưới giúp bạn biết 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à đề 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 bạn 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 thử 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 thử khả năng kết nối cơ bản để kiểm thử quyền truy cập mạng và xác thực.
Lưu ý: Nếu bạn cần liên hệ với Nhóm hỗ trợ Google Workspace hoặc Nhóm hỗ trợ 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 đầu ra 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 3 công cụ đơn giản sau để 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 một 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, phiên TLS cơ bản và kết nối TCP đang hoạt động như dự kiến.
Cách kiểm tra 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 phần Thêm ứng dụng LDAP.
Lưu ý: Để đơn giản hoá môi trường thử nghiệm, hãy đảm bảo có ít nhất một người dùng trong đơn vị tổ chức mà bạn cho phép ứng dụng LDAP truy cập.
- Thực thi một 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, hãy xem phần 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ế 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, ldapsearch sẽ dùng khoá và chứng chỉ để uỷ quyền cho hoạt động 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 máy khách 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 một người dùng Workspace, thì ldapsearch sẽ sử dụng thông tin đăng nhập 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 đăng nhập để truy cập nhằm tạo ra tên người dùng và mật khẩu mà ldapsearch cần.
- Hãy 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ế phần giữ chỗ như sau:
- {username} Tên người dùng trong thông tin đăng nhập được tạo trong Bảng điều khiển dành cho quản trị viên
- {password} Mật khẩu trong thông tin đăng nhập đượ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 của bạn
- {user_email} Địa chỉ email chính của người dùng trong miền
Tình huống thành công của lệnh ldapsearch
Đầu ra 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ó sự 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 dùng MacOS, SASL sẽ được bật theo mặc định và có thể được bỏ qua bằng tuỳ chọn "-x".
- Thêm lựa chọn
-d5vào ldapsearch và kiểm tra đầu ra 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 ra
Việc chỉ định lựa chọn ldapsearch-x(sử dụng phương thức xác thực SASL) bằng 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á lựa chọn-xrồi thử lại.
ADSI Edit (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 khách.
- Chuyển đến Action > Connect to… (Thao tác > 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 một Tên riêng 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 một miền hoặc máy chủ"
ldap.google.com
Sử dụng phương thức mã hoá dựa trên SSL: Đã đánh dấu - Nhấp vào Nâng cao... rồi nhập các thông tin sau:
Chỉ định thông tin đăng nhập: Đã đánh dấu
Tên người dùng: Tên người dùng của thông tin đăng nhập để truy cập trong Bảng điều khiển dành cho quản trị viên
Mật khẩu: Mật khẩu của thông tin đăng nhập để truy cập trong Bảng điều khiển dành cho quản trị viên
Số cổng: 636
Giao thức: LDAP
Xác thực liên kết đơn giản: Đã đánh dấu - 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 ở ngăn bên phải.
ldp.exe (Windows)
- Cài đặt OpenSSL.
- Chuyển đổi chứng chỉ và tệp khoá thành một tệp có định dạng PKCS12. Tại dấu nhắc lệnh, hãy nhập nội dung 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 "chứng chỉ" rồi nhấp vào Quản lý chứng chỉ người dùng.
- Chuyển đến Thao tác > Tất cả các tác vụ > Nhập...
- Chọn Người dùng hiện tại rồi nhấp vào Tiếp theo.
- Nhấp vào Duyệt qua...
- Trong trình đơn thả xuống 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).
- Chọn tệp ldap-client.p12 ở 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 ở bước 2 rồi nhấp vào Tiếp theo.
- Chọn kho chứng chỉ Cá nhân, nhấp vào Tiếp theo, rồi nhấp vào Hoàn tất.
- Chạy Ldp.exe.
- Chuyển đến phần Kết nối > Kết nối...
- Nhập thông tin kết nối sau đây:
Máy chủ: ldap.google.com
Cổng: 636
Không kết nối: Chưa đánh dấu
SSL: Đã đánh dấu - Nhấp vào OK.
- Chuyển đến phần View > Tree (Xem > Cây).
- Nhập tên phân biệt 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 ở ngăn bên phải.
Nếu cần, hãy chạy kiểm thử 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 thử 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 xem dòng sau có xuất hiện ở cuối đầu ra openssl s_client hay không:
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 kết nối, hệ thống có thể trả về đầu ra sau:
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à bắt đầu một 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ác quy trình xác thực CA để cho biết rằng SNI là bắt buộc.
Bạn có thể xác nhận hành vi này bằng cách kiểm tra đầu ra của ứng dụng OpenSSL cho dòng sau đây ở gần đầu đầ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 khi SNI bị tắt một cách rõ ràng.
Kết nối bị từ chối
Nếu hệ thống trả về đầu ra sau đây (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ể là do những nguyên nhân sau:
- 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 thượng nguồn
Để điều tra, hãy dùng tcptraceroute để xác định máy chủ lưu trữ nào đang từ chối kết nối – ví dụ: tcptraceroute ldap.google.com 636.