41.2. IdM ステージユーザーアカウントの自動アクティブ化の設定
ステージユーザーをアクティブ化するスクリプトを作成できます。システムは、指定した間隔でスクリプトを自動的に実行します。これにより、新しいユーザーアカウントが作成後すぐに自動的にアクティブ化され、使用できるようになります。
ここでは、外部プロビジョニングシステムの所有者がすでにユーザーを検証しており、スクリプトによってユーザーを IdM に追加する前に、IdM 側で追加の検証を行う必要がないことを前提としています。
アクティブ化のプロセスは、いずれかの IdM サーバーで有効にするだけで十分です。
前提条件
- provisionator アカウントおよび activator アカウントが IdM に存在している。詳細は ステージユーザーアカウントの自動アクティブ化用 IdM アカウントの準備 を参照してください。
- この手順を実行する IdM サーバーで root 権限がある。
- IdM 管理者としてログインしている。
- 外部プロビジョニングシステムを信頼している。
手順
アクティブ化用アカウントのキータブファイルを生成します。
ipa-getkeytab -s server.idm.example.com -p "activator" -k /etc/krb5.ipa-activation.keytab
# ipa-getkeytab -s server.idm.example.com -p "activator" -k /etc/krb5.ipa-activation.keytab
Copy to Clipboard Copied! 複数の IdM サーバーでアクティブ化プロセスを有効にする場合は、1 つのサーバーでのみキータブファイルを生成します。その後、そのキータブファイルを他のサーバーにコピーします。
すべてのユーザーをアクティブ化するために、次の内容のスクリプト
/usr/local/sbin/ipa-activate-all
を作成します。#!/bin/bash kinit -k -i activator ipa stageuser-find --all --raw | grep " uid:" | cut -d ":" -f 2 | while read uid; do ipa stageuser-activate ${uid}; done
#!/bin/bash kinit -k -i activator ipa stageuser-find --all --raw | grep " uid:" | cut -d ":" -f 2 | while read uid; do ipa stageuser-activate ${uid}; done
Copy to Clipboard Copied! ipa-activate-all
スクリプトのパーミッションおよび所有権を編集して、実行可能なファイルに変更します。chmod 755 /usr/local/sbin/ipa-activate-all chown root:root /usr/local/sbin/ipa-activate-all
# chmod 755 /usr/local/sbin/ipa-activate-all # chown root:root /usr/local/sbin/ipa-activate-all
Copy to Clipboard Copied! systemd ユニットファイル
/etc/systemd/system/ipa-activate-all.service
を作成して、以下の内容を追加します。[Unit] Description=Scan IdM every minute for any stage users that must be activated [Service] Environment=KRB5_CLIENT_KTNAME=/etc/krb5.ipa-activation.keytab Environment=KRB5CCNAME=FILE:/tmp/krb5cc_ipa-activate-all ExecStart=/usr/local/sbin/ipa-activate-all
[Unit] Description=Scan IdM every minute for any stage users that must be activated [Service] Environment=KRB5_CLIENT_KTNAME=/etc/krb5.ipa-activation.keytab Environment=KRB5CCNAME=FILE:/tmp/krb5cc_ipa-activate-all ExecStart=/usr/local/sbin/ipa-activate-all
Copy to Clipboard Copied! systemd タイマー
/etc/systemd/system/ipa-activate-all.timer
を作成して、以下の内容を追加します。[Unit] Description=Scan IdM every minute for any stage users that must be activated [Timer] OnBootSec=15min OnUnitActiveSec=1min [Install] WantedBy=multi-user.target
[Unit] Description=Scan IdM every minute for any stage users that must be activated [Timer] OnBootSec=15min OnUnitActiveSec=1min [Install] WantedBy=multi-user.target
Copy to Clipboard Copied! 新しい設定を再読み込みします。
systemctl daemon-reload
# systemctl daemon-reload
Copy to Clipboard Copied! ipa-activate-all.timer
を有効にします。systemctl enable ipa-activate-all.timer
# systemctl enable ipa-activate-all.timer
Copy to Clipboard Copied! ipa-activate-all.timer
を起動します。systemctl start ipa-activate-all.timer
# systemctl start ipa-activate-all.timer
Copy to Clipboard Copied! オプション:
ipa-activate-all.timer
デーモンが実行されていることを確認します。systemctl status ipa-activate-all.timer
# systemctl status ipa-activate-all.timer ● ipa-activate-all.timer - Scan IdM every minute for any stage users that must be activated Loaded: loaded (/etc/systemd/system/ipa-activate-all.timer; enabled; vendor preset: disabled) Active: active (waiting) since Wed 2020-06-10 16:34:55 CEST; 15s ago Trigger: Wed 2020-06-10 16:35:55 CEST; 44s left Jun 10 16:34:55 server.idm.example.com systemd[1]: Started Scan IdM every minute for any stage users that must be activated.
Copy to Clipboard Copied!