Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

11.5. 管理者以外のユーザーによるユーザーエントリーの管理許可

デフォルトでは admin ユーザーのみがユーザーライフサイクルの管理やユーザーアカウントの有効化/無効化が可能です。管理者以外の別ユーザがこの操作をできるようにするには、新規ロールを作成して、このロールに適切なパーミッションを追加し、管理者以外のユーザーにこのロールを割り当てます。
デフォルトでは、IdM にはユーザーアカウントの管理に関する以下の権限が含まれます。
Modify Users and Reset passwords
この権限には、さまざまなユーザー属性を変更するパーミッションが含まれます。
User Administrators
この権限は、active ユーザーの追加、active 以外のユーザーのアクティベート、ユーザーの削除、ユーザー属性やその他のパーミッションの変更が含まれます。
Stage User Provisioning
この権限には、stage ユーザーを追加するパーミッションが含まれます。
Stage User Administrator
以下の権限には、stage ユーザーの追加、ライフサイクルの状態の間におけるユーザーの移動などライフサイクルでの操作を実行するパーミッションが含まれます。ただし、active の状態にユーザーを移動するパーミッションは含まれません。
ロール、パーミッション、権限の定義に関する情報は「ロールベースのアクセス制御の定義」を参照してください。

異なるユーザーに対するさまざまなユーザー管理操作の実行許可

ユーザーアカウントの管理に関するさまざまな権限を各種ユーザーに追加することができます。たとえば、以下のように従業員のアカウントエントリーとアクティベーションの権限を区別することができます。
  • stage user administrator ユーザーを 1 つ設定する。このユーザーは、IdM に 今後入社する従業員を stage ユーザーとして追加できるが、アクティベートはできません。
  • security administrator として別のユーザーを 1 つ設定する。このユーザーは、就業日初日に従業員の認証情報を確認後に、stage ユーザーをアクティベートすることができます。
ユーザーが特定のユーザー管理の操作を実行できるようにするには、必要な権限を指定した新規ロールを作成し、そのロールを対象のユーザーに割り当てます。

例11.1 管理者以外のユーザーによる stage ユーザーの追加許可

以下の例では、新規の stage ユーザーの追加のみが可能で、他の stage ユーザー管理操作を実行できないユーザーを作成する方法を説明します。
  1. ロールベースのアクセス制御を管理可能な admin ユーザーまたは別のユーザーとしてログインします。
    $ kinit admin
  2. 新規カスタムロールを作成して、stage ユーザーの追加を管理します。
    1. 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
    2. 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
      ----------------------------
  3. 管理者以外のユーザーに stage ユーザーを追加する権限を割り当てます。
    1. 管理者以外のユーザーが存在しない場合には、新規ユーザーを作成します。以下の例では stage_user_admin という名前のユーザーです。
      $ ipa user-add stage_user_admin --password
      First name: first_name
      Last name: last_name
      Password:
      Enter password again to verify:
      ...
    2. stage_user_admin ユーザーに System Provisioning ロールを割り当てます。
      $ 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
      -------------------------
    3. 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
      ----------------------------
  4. stage_user_admin ユーザーとして新しい stage ユーザーが追加されているかをテストします。
    1. stage_user_admin としてログインします。以前の手順で新規ユーザーとして 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:
    2. 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
    3. 新規 stage ユーザーを追加します。
      $ ipa stageuser-add stage_user
      First name: first_name
      Last name: last_name
      ipa: ERROR: stage_user: stage user not found

      注記

      stage ユーザーの追加後に IdM からエラーが報告されるのは想定内です。stage_user_admin は、stage ユーザーの追加のみが可能で、stage ユーザーの情報の表示はできません。そのため、新たに追加された stage_user の設定サマリーを表示する代わりに、IdM はエラーを表示します。
stage_user_admin ユーザーは、stage ユーザーの情報を表示できません。そのため、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
...