検索

4.4. SSSD および FreeIPA Identity Management の統合

download PDF

Red Hat build of Keycloak には、System Security Services Daemon (SSSD) プラグインが含まれています。SSSD は Fedora および Red Hat Enterprise Linux (RHEL) に含まれており、複数の ID プロバイダーおよび認証プロバイダーへのアクセスを提供します。SSSD は、フェイルオーバーやオフラインサポートなどの利点も提供します。詳細は、Red Hat Enterprise Linux Identity Management のドキュメント を参照してください。

SSSD は、認証とアクセス制御を提供する FreeIPA アイデンティティー管理 (IdM) サーバーとも統合します。この統合により、Red Hat build of Keycloak は特権アクセス管理 (PAM) サービスに対して認証し、SSSD からユーザーデータを取得できるようになります。Linux 環境における Red Hat Identity Management の使用に関する詳細は、Red Hat Enterprise Linux Identity Management のドキュメント を参照してください。

keycloak sssd freeipa integration overview

Red Hat build of Keycloak と SSSD は、読み取り専用の D-Bus インターフェイスを介して通信します。このため、ユーザーのプロビジョニングおよび更新方法は、FreeIPA/IdM 管理インターフェイスを使用する方法です。デフォルトでは、インターフェイスはユーザー名、メール、名、および姓をインポートします。

注記

Red Hat build of Keycloak はグループとロールを自動的に登録しますが、同期はしません。Red Hat build of Keycloak 内で Red Hat build of Keycloak 管理者が加えた変更は、SSSD と同期されません。

4.4.1. FreeIPA/IdM サーバー

FreeIPA コンテナーイメージQuay.io で入手できます。FreeIPA サーバーを設定するには、FreeIPA のドキュメント を参照してください。

手順

  1. 以下のコマンドを使用して FreeIPA サーバーを実行します。

     docker run --name freeipa-server-container -it \
     -h server.freeipa.local -e PASSWORD=YOUR_PASSWORD \
     -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
     -v /var/lib/ipa-data:/data:Z freeipa/freeipa-server

    server.freeipa.local のパラメーター -h は FreeIPA/IdM サーバーのホスト名を表します。YOUR_PASSWORD を独自のパスワードに変更します。

  2. コンテナーが起動したら、/etc/hosts ファイルを以下のように変更します。

    x.x.x.x     server.freeipa.local

    この変更を加えない場合は、DNS サーバーを設定する必要があります。

  3. SSSD フェデレーションプロバイダーが Red Hat build of Keycloak で開始および実行されるように、以下のコマンドを使用して IPA ドメインに Linux サーバーを登録します。

     ipa-client-install --mkhomedir -p admin -w password
  4. クライアントで以下のコマンドを実行して、インストールが機能していることを確認します。

     kinit admin
  5. パスワードを入力します。
  6. 以下のコマンドを使用して IPA サーバーにユーザーを追加します。

    $ ipa user-add <username> --first=<first name> --last=<surname> --email=<email address> --phone=<telephoneNumber> --street=<street> --city=<city> --state=<state> --postalcode=<postal code> --password
  7. kinit を使用してユーザーのパスワードを強制的に設定します。

     kinit <username>
  8. 以下のコマンドを入力して通常の IPA 操作を復元します。

    kdestroy -A
    kinit admin

4.4.2. SSSD および D-Bus

フェデレーションプロバイダーは、D-BUS を使用して SSSD からデータを取得します。PAM を使用してデータを認証します。

手順

  1. sssd-dbus RPM をインストールします。

    $ sudo yum install sssd-dbus
  2. 以下のプロビジョニングスクリプトを実行します。

    $ bin/federation-sssd-setup.sh

    このスクリプトは、Red Hat build of Keycloak 用に SSSD と PAM を設定するためのガイドとしても使用できます。これを実行すると、/etc/sssd/sssd.conf に次の変更が加えられます。

      [domain/your-hostname.local]
      ...
      ldap_user_extra_attrs = mail:mail, sn:sn, givenname:givenname, telephoneNumber:telephoneNumber
      ...
      [sssd]
      services = nss, sudo, pam, ssh, ifp
      ...
      [ifp]
      allowed_uids = root, yourOSUsername
      user_attributes = +mail, +telephoneNumber, +givenname, +sn

    OS ユーザーがこのインターフェイスを介して IPA サーバーに問い合わせできるように、ifp サービスが SSSD に追加され、設定されます。

    このスクリプトは、SSSD 経由でユーザーを認証するための新しい PAM サービス (/etc/pam.d/keycloak) も作成します。

    auth    required   pam_sss.so
    account required   pam_sss.so
  3. dbus-send を実行して、設定が正常に行われていることを確認します。

    dbus-send --print-reply --system --dest=org.freedesktop.sssd.infopipe /org/freedesktop/sssd/infopipe org.freedesktop.sssd.infopipe.GetUserAttr string:<username> array:string:mail,givenname,sn,telephoneNumber
    
    dbus-send --print-reply --system --dest=org.freedesktop.sssd.infopipe /org/freedesktop/sssd/infopipe org.freedesktop.sssd.infopipe.GetUserGroups string:<username>

    セットアップが成功すると、各コマンドでユーザーの属性とグループがそれぞれ表示されます。タイムアウトまたはエラーが発生した場合、Red Hat build of Keycloak で実行されているフェデレーションプロバイダーはデータを取得できません。このエラーは、通常、サーバーが FreeIPA IdM サーバーに登録されていないか、SSSD サービスにアクセスするパーミッションがないために発生します。

    SSSD サービスにアクセスする権限がない場合は、Red Hat build of Keycloak サーバーを実行しているユーザーが次のセクションの /etc/sssd/sssd.conf ファイルに存在することを確認してください。

    [ifp]
    allowed_uids = root, yourOSUsername

    ホスト内に ipaapi システムユーザーが作成されます。このユーザーは、ifp サービスに必要です。システムにユーザーが作成されたことを確認します。

    grep ipaapi /etc/passwd
    ipaapi:x:992:988:IPA Framework User:/:/sbin/nologin

4.4.3. SSSD フェデレーションプロバイダーの有効化

Red Hat build of Keycloak は、DBus-Java プロジェクトを使用して D-Bus および JNA と低レベルで通信し、オペレーティングシステムのプラグ可能な認証モジュール (PAM) 経由で認証します。

現在、Red Hat build of Keycloak には SSSD プロバイダーの実行に必要なライブラリーがすべて含まれていますが、JDK バージョン 17 が必要です。そのため、ホスト設定が正しく、Red Hat build of Keycloak の実行に JDK 17 が使用されている場合に限り、SSSD プロバイダーが表示されます。

4.4.4. フェデレーションされた SSSD ストアの設定

インストール後に、フェデレーションされた SSSD ストアを設定します。

手順

  1. メニューの User Federation をクリックします。
  2. すべてが正常にセットアップされると、Add Sssd providers ボタンがページに表示されます。そのボタンをクリックします。
  3. 新しいプロバイダーに名前を割り当てます。
  4. Save をクリックします。

これで、Red Hat build of Keycloak に対して、FreeIPA/IdM ユーザーと認証情報を使用して認証できるようになりました。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.