Red Hat Training

A Red Hat training course is available for RHEL 8

112.4. スマートカードで認証されたユーザーが再認証を求められることなく sudo を実行できるように Web コンソールを設定する

RHEL Web コンソールでユーザーアカウントにログインした後、Identity Management (IdM) システム管理者として、スーパーユーザー権限でコマンドを実行することが必要になる場合があります。制約付き委任 機能を使用すると、再度認証を求められることなく、システムで sudo を実行できます。

この手順では、制約付き委任を使用するように Web コンソールを設定する方法を説明します。以下の例では、Web コンソールセッションは myhost.idm.example.com ホストで実行されます。

前提条件

  • IdM admin Ticket-Granting Ticket (TGT) を取得している
  • Web コンソールサービスが IdM に存在する
  • myhost.idm.example.com ホストは IdM に存在します。
  • IdM サーバーのドメイン管理者への admin sudo アクセスを有効 にしている。
  • Web コンソールは、ユーザーセッションに S4U2Proxy Kerberos チケットを作成している。これを確認するために、IdM ユーザーで Web コンソールにログインし、Terminal ページを開き、以下を入力します。

    $ klist
    Ticket cache: FILE:/run/user/1894000001/cockpit-session-3692.ccache
    Default principal: user@IDM.EXAMPLE.COM
    
    Valid starting     Expires            Service principal
    07/30/21 09:19:06 07/31/21 09:19:06 HTTP/myhost.idm.example.com@IDM.EXAMPLE.COM
    07/30/21 09:19:06  07/31/21 09:19:06  krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM
            for client HTTP/myhost.idm.example.com@IDM.EXAMPLE.COM

手順

  1. 委任ルールでアクセス可能な対象ホストのリストを作成します。

    1. サービス委任ターゲットを作成します。

      $ ipa servicedelegationtarget-add cockpit-target
    2. 委任対象に対象ホストを追加します。

      $ ipa servicedelegationtarget-add-member cockpit-target \ --principals=host/myhost.idm.example.com@IDM.EXAMPLE.COM
  2. サービス委任ルールを作成し、HTTP サービスの Kerberos プリンシパルを追加することで、cockpit セッションが対象ホストのリストにアクセスできるようにします。

    1. サービス委任ルールを作成します。

      $ ipa servicedelegationrule-add cockpit-delegation
    2. Web コンソールサービスを委任ルールに追加します。

      $ ipa servicedelegationrule-add-member cockpit-delegation \ --principals=HTTP/myhost.idm.example.com@IDM.EXAMPLE.COM
    3. 委任対象を委任ルールに追加します。

      $ ipa servicedelegationrule-add-target cockpit-delegation \ --servicedelegationtargets=cockpit-target
  3. System Security Services Daemon (SSSD) と連携して Generic Security Service Application Program Interface (GSSAPI) を介してユーザーを認証するための PAM モジュールである pam_sss_gss を有効にします。

    1. /etc/sssd/sssd.conf ファイルを開いて編集します。
    2. ドメインの IdM で pam_sss_gsssudo および sudo -i コマンドの認証を提供できるように指定します。

      [domain/idm.example.com]
      pam_gssapi_services = sudo, sudo-i
    3. ファイルを保存し、終了します。
    4. /etc/pam.d/sudo ファイルを編集用に開きます。
    5. 次の行を #%PAM-1.0 リストの先頭に挿入して、sudo コマンドの GSSAPI 認証を許可しますが、必須ではありません。

      auth sufficient pam_sss_gss.so
    6. ファイルを保存し、終了します。
  4. 上記の変更がすぐに有効になるように、SSSD サービスを再起動します。

    $ systemctl restart sssd