11.5. 管理者以外のユーザーによるユーザーエントリー管理の許可
デフォルトでは、
admin
ユーザーしかユーザーのライフサイクルを管理したり、ユーザーアカウントを無効化または有効化したりすることができません。別の非管理者ユーザーがこれを実行できるようにするには、新規ロールを作成し、このロールに関連するパーミッションを追加し、管理者以外のユーザーをロールに割り当てます。
デフォルトでは、IdM には、ユーザーアカウントの管理に関する以下の権限が含まれます。
- ユーザーの変更およびパスワードのリセット
- この権限には、さまざまなユーザー属性を変更するパーミッションが含まれます。
- ユーザー管理者
- この権限には、アクティブなユーザーの追加、アクティブではないユーザーのアクティブ化、ユーザーの削除、ユーザー属性の変更を行うためのパーミッション、およびその他のパーミッションが含まれます。
- ステージユーザーのプロビジョニング
- この権限には、ステージユーザーを追加するパーミッションが含まれます。
- ステージユーザー管理者
- この権限には、ステージユーザーの追加や、ライフサイクル状態間でのユーザーの移動など、多くのライフサイクル操作を実行するパーミッションが含まれます。ただし、ユーザーを active 状態に移動するパーミッションは含まれません。
ロール、パーミッション、および権限の定義に関する情報は、「ロールベースのアクセス制御の定義」 を参照してください。
異なるユーザーが異なるユーザー管理操作を実行することの許可
ユーザーアカウントの管理に関連する異なる権限を異なるユーザーに追加できます。たとえば、従業員のアカウントのエントリーとアクティベーションの権限を分けることができます。
- あるユーザーを、今後の従業員をステージユーザーとして IdM に追加できるがアクティブ化できないステージユーザー管理者として設定します。
- 別のユーザーを、入社初日に従業員認証情報が検証された後にステージユーザーをアクティブ化できるセキュリティー管理者 として設定します。
ユーザーが特定のユーザー管理操作を実行できるようにするには、必要な権限で新規ロールを作成し、ユーザーをそのロールに割り当てます。
例11.1 管理者以外のユーザーによるステージユーザー追加の許可
この例は、新規ステージユーザーの追加のみが許可され、他のステージユーザー管理操作を実行できないユーザーを作成する方法を示しています。
admin
ユーザーまたはロールベースのアクセス制御を管理できる他のユーザーとしてログインします。$ kinit admin
- ステージユーザーの追加を管理する新しいカスタムロールを作成します。
System Provisioning
ロールを作成します。$ ipa role-add --desc "Responsible for provisioning stage users" "System Provisioning" -------------------------------- Added role "System Provisioning" -------------------------------- Role name: System Provisioning Description: Responsible for provisioning stage users
Stage User Provisioning
の権限をロールに追加します。この権限により、stage ユーザーを追加することができます。$ ipa role-add-privilege "System Provisioning" --privileges="Stage User Provisioning" Role name: System Provisioning Description: Responsible for provisioning stage users Privileges: Stage User Provisioning ---------------------------- Number of privileges added 1 ----------------------------
- 管理者以外のユーザーに、stage ユーザーを追加する権限を付与します。
- 管理者以外のユーザーが存在しない場合は、新規ユーザーを作成します。この例では、user の名前は
stage_user_admin
です。$ ipa user-add stage_user_admin --password First name: first_name Last name: last_name Password: Enter password again to verify: ...
stage_user_admin
ユーザーをシステムプロビジョニングロール
に割り当てます。$ ipa role-add-member "System Provisioning" --users=stage_user_admin Role name: System Provisioning Description: Responsible for provisioning stage users Member users: stage_user_admin Privileges: Stage User Provisioning ------------------------- Number of members added 1 -------------------------
System Provisioning
ロールが正しく設定されていることを確認するには、ipa role-show コマンドを使用してロール設定を表示します。$ ipa role-show "System Provisioning" -------------- 1 role matched -------------- Role name: System provisioning Description: Responsible for provisioning stage users Member users: stage_user_admin Privileges: Stage User Provisioning ---------------------------- Number of entries returned 1 ----------------------------
stage_user_admin
ユーザーとして新しい stage ユーザーが追加されているかをテストします。stage_user_admin
としてログインします。前の手順の 1 つで新しいユーザーとしてstage_user_admin
を作成した場合は、IdM はadmin
が設定した初期パスワードを変更するよう要求します。$ kinit stage_user_admin Password for stage_user_admin@EXAMPLE.COM: Password expired. You must change it now. Enter new password: Enter it again:
admin
の Kerberos チケットがstage_user_admin
の Kerberos チケットに置き換えられているようにするには、klist
ユーティリティーを使用できます。$ klist Ticket cache: KEYRING:persistent:0:krb_ccache_xIlCQDW Default principal: stage_user_admin@EXAMPLE.COM Valid starting Expires Service principal 02/25/2016 11:42:20 02/26/2016 11:42:20 krbtgt/EXAMPLE.COM
- 新規ステージユーザーを追加します。
$ ipa stageuser-add stage_user First name: first_name Last name: last_name ipa: ERROR: stage_user: stage user not found
注記ステージユーザーの追加後に IdM が報告するエラーは想定されたものです。stage_user_admin
はステージユーザーの追加のみ許可され、それらのユーザーについての情報を表示できません。したがって、新たに追加したstage_user
設定の概要を表示する代わりに、IdM によりエラーが表示されます。
stage_user_admin
ユーザーは、ステージユーザーについての情報を表示できません。したがって、stage_user_admin
としてログインしている状態で新規 stage_user
ユーザーに関する情報を表示しようとすると、失敗します。
$ ipa stageuser-show stage_user ipa: ERROR: stage_user: stage user not found
stage_user
に関する情報を表示するには、admin
としてログインできます。
$ kinit admin Password for admin@EXAMPLE.COM: $ ipa stageuser-show stage_user User login: stage_user First name: Stage Last name: User ...