8.3. AD での IdM クライアントの IdM ユーザーへの sudo アクセス許可
Identity Management (IdM) システム管理者は、IdM ユーザーグループを使用して、アクセス許可、ホストベースのアクセス制御、sudo
ルール、および IdM ユーザーに対するその他の制御を設定できます。IdM ユーザーグループは、IdM ドメインリソースへのアクセスを許可および制限します。
Active Directory (AD) ユーザー と AD グループ の両方を IdM ユーザーグループに追加できます。これを実行するには、以下を行います。
- AD ユーザーまたはグループを 非 POSIX 外部 IdM グループに追加します。
- 非 POSIX 外部 IdM グループを IdM POSIX グループに追加します。
その後、POSIX グループの権限を管理することで、AD ユーザーの権限を管理できます。例えば、特定のコマンドの sudo
アクセスを、特定の IdM ホストの IdM POSIX ユーザーグループに付与できます。
AD ユーザーグループを、IdM 外部グループにメンバーとして追加することもできます。これにより、1 つの AD レルムにユーザーおよびグループの管理を維持することで、Windows ユーザーのポリシーの定義が容易になります。
IdM の SUDO ルールに AD ユーザーの ID オーバーライドを使用 しない でください。AD ユーザーの ID オーバーライドは、AD ユーザー自体ではなく、AD ユーザーの POSIX 属性のみを表します。
ID オーバーライドをグループメンバーとして追加できます。ただし、この機能は IdM API で IdM リソースを管理するためにのみ使用できます。グループメンバーとして ID オーバーライドを追加する可能性は POSIX 環境に拡張されていないため、sudo
またはホストベースのアクセス制御 (HBAC) ルールのメンバーシップには使用できません。
この手順では、ad_users_reboot sudo
ルールを作成して、administrator@ad-domain.com AD ユーザーに、idmclient IdM ホストで /usr/sbin/reboot
コマンドを実行するパーミッションを付与します。これは通常、root
ユーザー用に予約されています。administrator@ad-domain.com は ad_users_external 非 POSIX グループのメンバーであり、これは ad_users POSIX グループのメンバーでもあります。
前提条件
-
IdM
admin
Kerberos の チケット許可チケット (TGT) を取得しました。 - IdM ドメインと ad-domain.com AD ドメインの間にフォレスト間の信頼が存在します。
-
idmclient ホストにローカル 管理者 アカウントが存在しません。管理者 ユーザーがローカルの
/etc/passwd
ファイルにリストされていません。
手順
administrator@ad-domain メンバーを持つ ad_users_external グループを含む ad_users グループを作成します。
- オプション: IdM レルムで AD ユーザーを管理するために使用する、AD ドメイン内の対応するグループを作成または選択します。複数の AD グループを使用して、それらを IdM 側の異なるグループに追加できます。
ad_users_external グループを作成し、
--external
オプションを追加して、IdM ドメイン外のメンバーが含まれていることを示します。[root@ipaserver ~]# ipa group-add --desc='AD users external map' ad_users_external --external ------------------------------- Added group "ad_users_external" ------------------------------- Group name: ad_users_external Description: AD users external map
注記ここで指定する外部グループが、Active Directory セキュリティーグループ ドキュメントで定義されているように、
global
またはuniversal
グループスコープを持つ AD セキュリティーグループであることを確認してください。たとえば、グループスコープがdomain local
であるため、Domain users または Domain admins AD セキュリティーグループは使用できません。ad_users グループを作成します。
[root@ipaserver ~]# ipa group-add --desc='AD users' ad_users ---------------------- Added group "ad_users" ---------------------- Group name: ad_users Description: AD users GID: 129600004
administrator@ad-domain.com AD ユーザーを外部メンバーとして ad_users_external に追加します。
[root@ipaserver ~]# ipa group-add-member ad_users_external --external "administrator@ad-domain.com" [member user]: [member group]: Group name: ad_users_external Description: AD users external map External member: S-1-5-21-3655990580-1375374850-1633065477-513 ------------------------- Number of members added 1 -------------------------
AD ユーザーは、
DOMAIN\user_name
またはuser_name@DOMAIN
などの完全修飾名で識別される必要があります。次に、AD ID がユーザーの AD SID にマップされます。同じことが AD グループの追加にも当てはまります。ad_users_external を ad_users にメンバーとして追加します。
[root@ipaserver ~]# ipa group-add-member ad_users --groups ad_users_external Group name: ad_users Description: AD users GID: 129600004 Member groups: ad_users_external ------------------------- Number of members added 1 -------------------------
ad_users のメンバーに、idmclient ホストで
/usr/sbin/reboot
を実行する権限を付与します。sudo
コマンドの IdM データベースに/usr/sbin/reboot
コマンドを追加します。[root@idmclient ~]# ipa sudocmd-add /usr/sbin/reboot ------------------------------------- Added Sudo Command "/usr/sbin/reboot" ------------------------------------- Sudo Command: /usr/sbin/reboot
ad_users_reboot という名前の
sudo
ルールを作成します。[root@idmclient ~]# ipa sudorule-add ad_users_reboot --------------------------------- Added Sudo Rule "ad_users_reboot" --------------------------------- Rule name: ad_users_reboot Enabled: True
/usr/sbin/reboot
コマンドを ad_users_reboot ルールに追加します。[root@idmclient ~]# ipa sudorule-add-allow-command ad_users_reboot --sudocmds '/usr/sbin/reboot' Rule name: ad_users_reboot Enabled: True Sudo Allow Commands: /usr/sbin/reboot ------------------------- Number of members added 1 -------------------------
ad_users_reboot ルールを IdM idmclient ホストに適用します。
[root@idmclient ~]# ipa sudorule-add-host ad_users_reboot --hosts idmclient.idm.example.com Rule name: ad_users_reboot Enabled: True Hosts: idmclient.idm.example.com Sudo Allow Commands: /usr/sbin/reboot ------------------------- Number of members added 1 -------------------------
ad_users
グループを ad_users_reboot ルールに追加します。[root@idmclient ~]# ipa sudorule-add-user ad_users_reboot --groups ad_users Rule name: ad_users_reboot Enabled: TRUE User Groups: ad_users Hosts: idmclient.idm.example.com Sudo Allow Commands: /usr/sbin/reboot ------------------------- Number of members added 1 -------------------------
サーバーからクライアントへの変更の伝播には数分かかる場合があります。
検証
ad_users
グループの間接メンバーである administrator@ad-domain.com で idmclient ホストにログインします。$ ssh administrator@ad-domain.com@ipaclient Password:
オプション:
administrator@ad-domain.com
が実行できるsudo
コマンドを表示します。[administrator@ad-domain.com@idmclient ~]$ sudo -l Matching Defaults entries for administrator@ad-domain.com on idmclient: !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY KRB5CCNAME", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin User administrator@ad-domain.com may run the following commands on idmclient: (root) /usr/sbin/reboot
sudo
を使用してマシンを再起動します。プロンプトが表示されたら、administrator@ad-domain.com
のパスワードを入力します。[administrator@ad-domain.com@idmclient ~]$ sudo /usr/sbin/reboot [sudo] password for administrator@ad-domain.com: