Xác thực Kerberos không thành công khi thay đổi mật khẩu bắt buộc


7

Tôi đã định cấu hình xác thực PAM để sử dụng Kerberos và có thể xác thực chính xác với hiệu trưởng của mình bằng thông tin xác thực Kerberos của họ.

Tôi gặp rắc rối khi cố gắng tạo hiệu trưởng với mật khẩu đã hết hạn:

kadmin: addprinc +needchange test_principal

Khi tôi thử đăng nhập (từ VT hoặc trình chào đồ họa), sau khi nhập đúng mật khẩu, tôi nhận được thông báo dự kiến ​​rằng mật khẩu đã hết hạn và hệ thống nhắc tôi tạo mật khẩu mới. Sau khi tôi đã làm điều đó, xác thực thất bại với lỗi này trong kdc.log:

krb5kdc[...](info): TGS_REQ (4 etypes {18 17 16 23}) 192.168.0.200: NO PREAUTH: authtime 0, test_principal@MY.REALM for host/server.my.realm@MY.REALM, Generic error (see e-text)

và lỗi sau (không đáng ngạc nhiên) trong /var/log/auth.log:

pam_krb5(gdm3:auth): (user test_principal) credential verfication failed: KDC returned error string: NO PREAUTH

Một số lưu ý

  • Bảng liệt kê các thuộc tính của hiệu trưởng (thông qua getprinctrong kadmin.local) show 0 thất bại trong nỗ lực đăng nhập
  • Nếu tôi tạo tài khoản mà không có +needchangecờ, tôi có thể xác thực chính xác.
  • Nếu tôi thêm các +needchangelá cờ (thông qua modprinctrong kadmin.local) sau khi người dùng đã xác thực thành công một lần, tôi nhận được hành vi dự kiến; cụ thể là, người dùng được nhắc thay đổi mật khẩu và sau đó xác thực của họ thành công.
  • Hiệu trưởng này không có mục tương đương /etc/passwdnhưng được hỗ trợ bởi mục LDAP.
  • Như đã đề xuất ở nơi khác, tôi đã thử tạo hiệu trưởng của mình như thế này:

    kadmin: addprinc -requires_preauth +needchange test_principal
    

    Điều này làm cho không có sự khác biệt.

Trường hợp sử dụng của tôi

Tôi đang di chuyển từ một hệ thống NIS cũ và tôi muốn cung cấp tính liên tục cho người dùng của mình. Tôi muốn cho họ nhập mật khẩu cũ của họ nhưng sau đó buộc phải thay đổi chúng để tuân thủ các quy tắc chính sách mật khẩu chặt chẽ hơn mà tôi dự định thực thi thông qua Kerberos.

Tôi đang chạy MIT Kerberos V trên Debian Wheezy.

Câu trả lời:


2

Tôi tìm thấy câu trả lời và đó là một câu hỏi rất lạ!

Tôi đã sử dụng getprinclệnh bên trong kadminđể có được các thuộc tính của cả hiệu trưởng vấn đề và hiệu trưởng được tạo mà không có +needchangevà đó là xác thực chính xác.

Sự khác biệt là hiệu trưởng xác thực chính xác có REQUIRES_PRE_AUTHthuộc tính được đặt trong khi hiệu trưởng vấn đề không có nó, vì vậy giải pháp là tạo hiệu trưởng theo cách này:

kadmin: addprinc +needchange +requires_preauth test_principal
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.