Làm cách nào để tránh danh tính người dùng YubiKey mã hóa cứng vào ngăn xếp PAM?


1

Các Yubico PAM module dường như đòi hỏi thay đổi đối với ngăn xếp PAM cho mỗi người dùng sẽ được xác thực bằng YubiKey. Cụ thể, dường như mỗi danh tính khách hàng của người dùng phải được thêm vào tệp cấu hình PAM đúng trước khi người dùng có thể được xác thực.

Trong khi nó làm cho tinh thần để thêm phím ủy quyền cho một cơ sở dữ liệu xác thực như /etc/yubikey_mappingshay ~/.yubico/authorized_yubikeys, nó có vẻ như một thói quen xấu để phải chỉnh sửa PAM chồng tự cho mỗi người dùng cá nhân. Tôi chắc chắn muốn tránh phải mã hóa danh tính người dùng mã cứng vào ngăn xếp PAM theo cách này.

Vì vậy, có thể tránh mã hóa cứng tham số id cho chính mô-đun pam_yubico.so không? Nếu không, có bất kỳ mô-đun PAM nào khác có thể tận dụng xác thực YubiKey mà không cần mã hóa ngăn xếp không?


Tôi đã đọc tài liệu này và dường như với tôi rằng id=tham số này chỉ dành cho truy cập API Yubico, không phải để xác thực thực tế, vì vậy sẽ rất hợp lý khi đặt nó trên toàn hệ thống.
grawity

Câu trả lời:


4

Câu hỏi này không nhận được câu trả lời nào ở đây trên SuperUser. Tuy nhiên, câu trả lời sau đây đã nhận được trên các diễn đàn hỗ trợ của Yubico:

The id parameter to the PAM module indicates the API key ID, not the
user ID. This ID is returned with the key you get from the "Get API Key"
form if you're using the public service, or it's in the "clients" table
for your internal validation server, along with the API key.

To clarify, when documentation talks about a "client", that's a piece
of software requesting authentication services from the API -- a user
submits an OTP to the client, which submits it to the server in a request
signed with the API key.

2

Bạn có thể sử dụng LDAP cho việc này và ánh xạ người dùng đến ID công khai của nó bằng cách sử dụng một thuộc tính yubikey cụ thể hoặc bằng cách sử dụng một thuộc tính hiện có. Mô-đun PAM Yubico có thể kiểm tra thuộc tính này và nếu xác minh ánh xạ là OK và OTP chính xác đã được gửi thì mô-đun trả về OK. Một ví dụ:

# Fetch LDAP password + OTP, verify OTP and move on ('required' control value).
# LDAP password is stripped and passed on.
auth required pam_yubico.so id=1234 ldap_uri=ldaps://fqdn.of.ldap.server:port [ldapdn=ou=People,DC=example,DC=com] user_attr=uid yubi_attr=yubikeyid

Thay vì yubi_attrbạn có thể sử dụng một thuộc tính khác.

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.