3.2. Apache HTTPD モジュール mod_auth_mellon


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

mod_auth_mellon を設定するには、以下が必要になります。

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

3.2.1. Red Hat Single Sign-On での mod_auth_mellon の設定

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

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

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

3.2.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

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

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

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

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

3.2.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
注記

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

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

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

3.2.1.5. Red Hat Single Sign-On ID プロバイダーへの Mellon サービスプロバイダーの追加

前提条件: Red Hat Single Sign-On IdP が $idp_host にすでにインストールされています。

Red Hat Single Sign-On は、すべてのユーザー、クライアントなどが、いわゆるレルムにグループ化されるマルチテナンシーをサポートします。各レルムは、他のレルムとは独立しています。Red Hat Single Sign-On で既存のレルムを使用できますが、この例では test_realm という新しいレルムを作成し、そのレルムを使用する方法が示されています。

これらの操作はすべて、Red Hat Single Sign-On 管理 Web コンソールを使用して実行されます。$idp_host の 管理者のユーザー名およびパスワードが必要です。

以下の手順を実行してください。

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

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

  2. レルムドロップダウンリストから Add レルム を選択します。
  3. Name フィールドにtest_realm と入力して、Create をクリックします。
3.2.1.5.1. レルムのクライアントとしての Mellon Service Provider の追加

Red Hat Single Sign-On SAML SP はクライアントと呼ばれます。SP を追加するには、レルムの Clients セクションにいる必要があります。

  1. 左側の Clients メニュー項目をクリックし、右上隅の Create をクリックして新規クライアントを作成します。
3.2.1.5.2. Mellon SP クライアントの追加

Mellon SP クライアントを追加するには、以下の手順を実行します。

  1. クライアントプロトコルを SAML に設定します。Client Protocol ドロップダウンリストから、saml を選択します。
  2. 上記で作成されたすべての SP メタデータファイル (/etc/httpd/saml2/mellon_metadata.xml) を提供します。ブラウザーが実行している場所に応じて、ブラウザーがファイルを見つけられるように、SP メタデータを $sp_host からブラウザーが実行されているマシンにコピーする必要があります。
  3. Save をクリックします。
3.2.1.5.3. Mellon SP クライアントの編集

設定を提案するクライアント設定パラメーターは複数あります。

  • 「Force POST Binding」が On であることを確認します。
  • paosResponse を有効なリダイレクト URI 一覧に追加します。

    1. 「Valid Redirect URIs」の postResponse URL をコピーし、「+」のすぐ下の空の add text フィールドに貼り付けます。
    2. 「postResponse」を「paosResponse」に変更します。(SAML ECP には paosResponse URL が必要です。)
    3. 下部の Save をクリックします。

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

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

  1. クライアントの Mappers タブをクリックします。
  2. Mappers ページの右上隅にある Create をクリックします。
  3. Mapper Type ドロップダウンリストから Group list を選択します。
  4. Name を "group list" に設定します。
  5. SAML 属性名を「グループ」に設定します。
  6. Save をクリックします。

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

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

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

  1. $idp_host を正しい値に置き換えて、IdP からファイルを取得します。

    curl -k -o /etc/httpd/saml2/idp_metadata.xml \
    https://$idp_host/auth/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 Single Sign-On を test_realm の SAML IdP として、mod_auth_mellon を SAML SP として設定し、$idp_host に対して認証することで URL $sp_host/protected (およびその下のすべてのもの) を保護することができました。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat