19.8. Ansible Playbook を使用して追加のパスワードポリシーオプションを IdM グループに適用する
Ansible Playbook を使用して追加のパスワードポリシーオプションを適用し、特定の IdM グループのパスワードポリシー要件を強化できます。この目的には、maxrepeat
、maxsequence
、dictcheck
、および usercheck
パスワードポリシーオプションを使用できます。この例では、managers グループに次の要件を設定する方法を説明します。
- ユーザーの新しいパスワードに、ユーザーのそれぞれのユーザー名が含まれていない。
- パスワードに含まれる連続する同一の文字が 2 文字以下である。
- パスワードに含まれる単調な文字列が 3 文字以内である。これは、システムが 1234 や abcd などの文字列を含むパスワードを受け入れないことを意味します。
前提条件
次の要件を満たすように Ansible コントロールノードを設定した。
- Ansible バージョン 2.14 以降を使用している。
-
Ansible コントローラーに
ansible-freeipa
パッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル を作成している。
-
secret.yml Ansible vault に
ipaadmin_password
が保存されている。
- IdM にパスワードポリシーが存在することを確認するグループ。
手順
Ansible Playbook ファイル manager_pwpolicy_present.yml を作成して、存在させるパスワードポリシーを定義します。この手順を簡素化するには、次の例をコピーして変更します。
--- - name: Tests hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure presence of usercheck and maxrepeat pwpolicy for group managers ipapwpolicy: ipaadmin_password: "{{ ipaadmin_password }}" name: managers usercheck: True maxrepeat: 2 maxsequence: 3
Playbook を実行します。
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory_/manager_pwpolicy_present.yml
検証
test_user という名前のテストユーザーを追加します。
$ ipa user-add test_user First name: test Last name: user ---------------------------- Added user "test_user" ----------------------------
テストユーザーを マネージャー グループに追加します。
-
IdM Web UI で、
をクリックします。 - managers をクリックします。
-
Add
をクリックします。 - Add users into user group 'managers' ページで、test_user をチェックします。
-
>
矢印をクリックして、ユーザーをProspective
列に移動します。 -
Add
をクリックします。
-
IdM Web UI で、
テストユーザーのパスワードをリセットします。
-
に移動します。 - test_user をクリックします。
-
Actions
メニューで、Reset Password
をクリックします。 - ユーザーの一時パスワードを入力します。
-
コマンドラインで、test_user の Kerberos Ticket-Granting Ticket (TGT) を取得してみてください。
$ kinit test_user
- 一時パスワードを入力します。
パスワードを変更する必要があることがシステムから通知されます。test_user のユーザー名を含むパスワードを入力します。
Password expired. You must change it now. Enter new password: Enter it again: Password change rejected: Password not changed. Unspecified password quality failure while trying to change password. Please try again.
注記Kerberos には、詳細なエラーパスワードポリシーの報告はなく、特定のケースでは、パスワードが拒否された理由を明確に示していません。
入力したパスワードが拒否されたことがシステムから通知されます。連続して 3 文字以上の同一文字を含むパスワードを入力します。
Password change rejected: Password not changed. Unspecified password quality failure while trying to change password. Please try again. Enter new password: Enter it again:
入力したパスワードが拒否されたことがシステムから通知されます。3 文字を超える単調な文字列を含むパスワードを入力します。たとえば、1234 や fedc などの文字列です。
Password change rejected: Password not changed. Unspecified password quality failure while trying to change password. Please try again. Enter new password: Enter it again:
入力したパスワードが拒否されたことがシステムから通知されます。マネージャー パスワードポリシーの基準を満たすパスワードを入力します。
Password change rejected: Password not changed. Unspecified password quality failure while trying to change password. Please try again. Enter new password: Enter it again:
TGT を取得したことを確認します。これは、有効なパスワードを入力した後にのみ可能です。
$ klist Ticket cache: KCM:0:33945 Default principal: test_user@IDM.EXAMPLE.COM Valid starting Expires Service principal 07/07/2021 12:44:44 07/08/2021 12:44:44 krbtgt@IDM.EXAMPLE.COM@IDM.EXAMPLE.COM
関連情報
- IdM での追加のパスワードポリシー
-
/usr/share/doc/ansible-freeipa/README-pwpolicy.md
-
/usr/share/doc/ansible-freeipa/playbooks/pwpolicy