第8章 mod_auth_mellon Apache モジュール


mod_auth_mellonは Apache の認証モジュールです。言語/環境が Apache HTTPD をプロキシーとして使用することをサポートしている場合は、mod_auth_mellon を使用して SAML で Web アプリケーションを保護できます。このモジュールの詳細は、GitHub リポジトリー mod_auth_mellon を参照してください。

警告

Red Hat build of Keycloak では、mod_auth_mellon に対する公式サポートは提供されません。以下の手順は最善を尽くしたものですが、最新の情報ではない可能性があります。この章では、サーバーが RHEL システムであると想定しています。ただし、他の Linux システムでも同様の手順が必要になります。詳細は、公式の mod_auth_mellon ドキュメントを参照することを推奨します。

mod_auth_mellon を設定するには、次のファイルが必要です。

  • アイデンティティープロバイダー (IdP) エンティティー記述子 XML ファイル。これは、Red Hat build of Keycloak または別の SAML IdP への接続を記述します。
  • セキュリティー保護するアプリケーションの SAML 接続および設定を記述する SP エンティティー記述子 XML ファイル。
  • 秘密鍵 PEM ファイル。これは、アプリケーションがドキュメントの署名に使用するプライベートキーを定義する PEM 形式のテキストファイルです。
  • アプリケーションの証明書を定義するテキストファイルである証明書 PEM ファイル。
  • mod_auth_mellon 固有の Apache HTTPD モジュール設定。

Red Hat build of Keycloak アプリケーションサーバーのレルム内にクライアントアプリケーションをすでに定義して登録している場合は、Red Hat build of Keycloak によって、Apache HTTPD モジュール設定を除く必要なファイルがすべて生成されます。

Apache HTTPD モジュール設定を生成するには、次の手順を実行します。

手順

  1. SAML クライアントのインストールページに移動します。
  2. Mod Auth Mellon ファイルオプションを選択します。

    図8.1 mod_auth_mellon 設定のダウンロード

  3. Download をクリックして、必要な XML 記述子と PEM ファイルを含む ZIP ファイルをダウンロードします。

8.1. Red Hat build of Keycloak を使用した mod_auth_mellon の設定

以下の 2 つのホストがあります。

  • Red Hat build of Keycloak が実行されているホスト。Red Hat build of Keycloak は SAML アイデンティティープロバイダー (IdP) であるため、これは $idp_host と呼ばれます。
  • Web アプリケーションが実行されているホスト。これは $sp_host と呼ばれます。SAML では、IdP を使用するアプリケーションはサービスプロバイダー (SP) と呼ばれます。

以下のすべての手順は、root 権限で $sp_host で実行する必要があります。

8.1.1. パッケージのインストール

必要なパッケージをインストールするには、以下が必要です。

  • Apache Web Server (httpd)
  • Apache の Mellon SAML SP アドオンモジュール
  • X509 証明書を作成するツール

必要なパッケージをインストールするには、以下のコマンドを実行します。

yum install httpd mod_auth_mellon mod_ssl openssl
Copy to Clipboard Toggle word wrap

8.1.2. Apache SAML の設定ディレクトリーの作成

Apache の SAML の使用に関連する設定ファイルを 1 つの場所で維持することを推奨します。

Apache の設定ルート /etc/httpd の下に、saml2 という名前の新しいディレクトリーを作成します。

mkdir /etc/httpd/saml2
Copy to Clipboard Toggle word wrap

8.1.3. Mellon サービスプロバイダーの設定

Apache アドオンモジュールの設定ファイルは /etc/httpd/conf.d ディレクトリーにあり、ファイル名の拡張子は .conf になります。/etc/httpd/conf.d/mellon.conf ファイルを作成し、Mellon の設定ディレクティブをこれに配置する必要があります。

Mellon の設定ディレクティブは、大まかに 2 つのクラスの情報に分類できます。

  • SAML 認証を保護する URL
  • 保護された URL が参照された場合に使用される SAML パラメーター。

Apache 設定ディレクティブは通常、場所と呼ばれる URL 領域内の階層ツリー構造に従います。Mellon が保護するには、URL の場所を 1 つ以上指定する必要があります。各場所に適用される設定パラメーターを追加する方法に柔軟性があります。必要なパラメーターをすべてロケーションブロックに追加するか、Mellon パラメーターを特定の保護された場所が継承する URL の場所階層にある共通の場所に追加するかのいずれかを実行できます (またはこの 2 つのなんらかの組み合わせを実行)。どの場所が SAML アクションをトリガーしても、SP は同じように動作するのが一般的であるため、ここで使用する設定例では、一般的な Mellon 設定ディレクティブを階層の root に配置してから、Mellon によって保護される特定の場所を最小限のディレクティブで定義できます。このストラテジーでは、保護されている場所ごとに同じパラメーターが重複しないようにします。

この例には保護された場所が 1 つ (https://$sp_host/private) しかありません。

Mellon サービスプロバイダーを設定するには、以下の手順を実行します。

手順

  1. 以下の内容で /etc/httpd/conf.d/mellon.conf ファイルを作成します。
 <Location / >
    MellonEnable info
    MellonEndpointPath /mellon/
    MellonSPMetadataFile /etc/httpd/saml2/mellon_metadata.xml
    MellonSPPrivateKeyFile /etc/httpd/saml2/mellon.key
    MellonSPCertFile /etc/httpd/saml2/mellon.crt
    MellonIdPMetadataFile /etc/httpd/saml2/idp_metadata.xml
 </Location>
 <Location /private >
    AuthType Mellon
    MellonEnable auth
    Require valid-user
 </Location>
Copy to Clipboard Toggle word wrap
注記

上記のコードで参照されるファイルの一部は、後の手順で作成されます。

8.1.5. サービスプロバイダーメタデータの作成

SAML IdP および SP は、XML 形式の SAML メタデータを交換します。メタデータのスキーマは標準であるため、参加している SAML エンティティーが互いのメタデータを消費できるようにします。以下が必要です。

  • SP が使用する IdP のメタデータ
  • IdP に提供された SP を記述するメタデータ

SAML メタデータのコンポーネントの 1 つは X509 証明書です。これらの証明書は 2 つの目的で使用されます。

  • SAML メッセージを署名し、メッセージが予期されたパーティーから発信されたことを受信側が証明できるようにします。
  • トランスポート中にメッセージを暗号化します (SAML メッセージは通常 TLS で保護されているトランスポートで発生するため、ほとんど使用されません)。

すでに認証局 (CA) を持っている場合は、独自の証明書を使用できます。または、自己署名証明書を生成することもできます。この例では簡単にするために、自己署名証明書が使用されています。

Mellon の SP メタデータは mod_auth_mellon のインストール済みバージョンの機能を反映する必要があるため、有効な SP メタデータ XML である必要があり、X509 証明書 (X509 証明書の生成に精通していない場合は、証明書の作成はわかりにくい可能性がある) を含む必要があります。SP メタデータを生成する最も便利な方法は、mod_auth_mellon パッケージ (mellon_create_metadata.sh) に含まれるツールを使用することです。生成されたメタデータは、テキストファイルであるため、常に後で編集できます。このツールは、X509 キーおよび証明書も作成します。

SAML IdP および SP は、EntityID として知られる一意の名前を使用して識別します。Mellon メタデータ作成ツールを使用するには、以下が必要です。

  • EntityID。これは通常 SP の URL であり、多くの場合、SP メタデータを取得できる SP の URL です。
  • SP の SAML メッセージが使用される URL。Mellon は MellonEndPointPath を呼び出します。

SP メタデータを作成するには、以下の手順を行います。

手順

  1. ヘルパーシェル変数をいくつか作成します。

    fqdn=`hostname`
    mellon_endpoint_url="https://${fqdn}/mellon"
    mellon_entity_id="${mellon_endpoint_url}/metadata"
    file_prefix="$(echo "$mellon_entity_id" | sed 's/[^A-Za-z.]/_/g' | sed 's/__*/_/g')"
    Copy to Clipboard Toggle word wrap
  2. 以下のコマンドを実行して、Mellon メタデータ作成ツールを呼び出します。

    /usr/libexec/mod_auth_mellon/mellon_create_metadata.sh $mellon_entity_id $mellon_endpoint_url
    Copy to Clipboard Toggle word wrap
  3. 生成されたファイルを (上記で作成した /etc/httpd/conf.d/mellon.conf ファイルで参照した) 宛先に移動します。

    mv ${file_prefix}.cert /etc/httpd/saml2/mellon.crt
    mv ${file_prefix}.key /etc/httpd/saml2/mellon.key
    mv ${file_prefix}.xml /etc/httpd/saml2/mellon_metadata.xml
    Copy to Clipboard Toggle word wrap

前提: Red Hat build of Keycloak IdP が $idp_host にすでにインストールされている。

Red Hat build of Keycloak は、すべてのユーザー、クライアントなどがレルムと呼ばれるものにグループ化される複数のテナンシーをサポートします。各レルムは、他のレルムとは独立しています。Red Hat build of Keycloak で既存のレルムを使用することもできますが、この例では test_realm という新しいレルムを作成し、そのレルムを使用する方法を示します。

これらの操作はすべて、Red Hat build of Keycloak 管理コンソールを使用して実行されます。以下の手順を実行するには、$idp_host の管理者のユーザー名およびパスワードが必要です。

手順

  1. 管理コンソールを開き、管理者のユーザー名とパスワードを入力してログオンします。

    管理コンソールにログインすると、既存のレルムがあります。Red Hat build of Keycloak が最初にセットアップされると、デフォルトでルートレルム (master) が作成されます。以前に作成されたレルムは、管理コンソールの左上隅のドロップダウンリストにリスト表示されます。

  2. レルムドロップダウンリストから Add レルム を選択します。
  3. Name フィールドに test_realm と入力して、Create をクリックします。

8.1.6.1. レルムのクライアントとしての Mellon Service Provider の追加

Red Hat build of Keycloak では、SAML SP はクライアントとして知られています。SP を追加するには、レルムの Clients セクションにいる必要があります。

  1. 左側の Clients メニュー項目をクリックし、Import client ボタンをクリックします。
  2. Resource file フィールドに、上記で作成した Mellon SP メタデータファイル (/etc/httpd/saml2/mellon_metadata.xml) を指定します。

    ブラウザーが実行している場所に応じて、ブラウザーがファイルを見つけられるように、SP メタデータを $sp_host からブラウザーが実行されているマシンにコピーする必要があります。

  3. Save をクリックします。

8.1.6.2. Mellon SP クライアントの編集

以下の手順を使用して、重要なクライアント設定パラメーターを設定します。

手順

  1. Force POST Binding が On であることを確認します。
  2. paosResponse を 有効なリダイレクト URI リストに追加します。
  3. Valid Redirect URIs の postResponse URL をコピーし、"+" のすぐ下の空の add text フィールドに貼り付けます。
  4. postResponse を paosResponse` に変更します。(SAML ECP には paosResponse URL が必要です。)
  5. 下部の Save をクリックします。

多くの SAML SP は、グループのユーザーのメンバーシップに基づいて認可を決定します。Red Hat build of Keycloak IdP は、ユーザーグループ情報を管理できますが、IdP が SAML 属性としてユーザーグループを提供するように設定されていない限り、ユーザーのグループは提供されません。

ユーザーのグループを SAML 属性として提供するように IdP を設定するには、以下の手順を実行します。

手順

  1. クライアントの Client scopes タブをクリックします。
  2. 最初の行に配置された専用スコープをクリックします。
  3. Mappers ページで、Add mapper ボタンをクリックし、By configuration を選択します。
  4. Mapper Type リストから Group list を選択します。
  5. Name を group list に設定します。
  6. SAML 属性名を groups に設定します。
  7. Save をクリックします。

残りの手順は $sp_host で実行されます。

8.1.6.3. アイデンティティープロバイダーメタデータの取得

IdP でレルムを作成したので、それに関連付けられた IdP メタデータを取得して、Mellon SP がそれを認識するようにする必要があります。以前に作成した /etc/httpd/conf.d/mellon.conf ファイルでは、MellonIdPMetadataFile/etc/httpd/saml2/idp_metadata.xml として指定されますが、これまでそのファイルは $sp_host に存在していませんでした。

この手順を使用して、IdP からそのファイルを取得します。

手順

  1. このコマンドを使用し、$idp_host の正しい値に置き換えてください。

    curl -k -o /etc/httpd/saml2/idp_metadata.xml \
    https://$idp_host/realms/test_realm/protocol/saml/descriptor
    Copy to Clipboard Toggle word wrap

    Mellon が完全に設定されるようになりました。

  2. Apache 設定ファイルの構文チェックを実行するには、以下のコマンドを使用します。

    apachectl configtest
    Copy to Clipboard Toggle word wrap
    注記

    Configtest は apachectl の -t 引数と同じです。設定テストでエラーが表示される場合には、次に進む前に修正してください。

  3. Apache サーバーを再起動します。

    systemctl restart httpd.service
    Copy to Clipboard Toggle word wrap

これで、Red Hat build of Keycloak を test_realm の SAML IdP として、mod_auth_mellon を SAML SP としてセットアップし、$idp_host IdP に対して認証することで URL $sp_host/protected (およびその下のすべてのもの) を保護することができました。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat