(SAML第4回:最終回) GoogleをIdPとして使用してApache+mod_auth_mellonを繋げてみる

こんにちは。SIOS OSSエバンジェリスト/セキュリティ担当の面 和毅です。

SAML環境のテストのために、SimpleSAMLphpやmod_auth_mellonを使って簡易IdP / SPをセットアップしました。今回は最終回の「GoogleをIdPとして使用してApache+mod_auth_mellonを繋げてみる」を纏めます。

なお、この記事は2021年4月時点での設定方法であり、将来(主にGoogle側の)設定が変更される可能性がありますのでご了承ください。




環境

  • IdP(Google)

    基本的な設定方法はこちらにあるとおりです。

  • SP(第三回で作成したものを使用)
    • OS: CentOS 7.9(最新にyumで更新)
    • Apache: 2.4.6-97(最新のものをyumから取得)
    • PHP: 7.3.27(remiから取得)
    • SP ホスト名:mellon.example.net
  • 前提
    • mellon.example.net/saml_test
    • mellon.example.net/cgi-bin

    のいずれかにアクセスする際にSAMLで連携してIdPの認証を使用する。

1. Google IdP側の設定

以下、こちらのGoogleのサポートドキュメントに載っている方法に従います。

  • 管理コンソールから「アプリ」を開きます。
  • 「ウェブアプリとモバイルアプリ」をクリック
  • 「アプリを追加」->「カスタムSAMLアプリの追加」を選択
  • 「アプリ名」はユニークな好きな名前を入れます。アイコンも登録できます。
  • IdPメタデータをダウンロードします。このファイル(GoogleIDPMetadata.xml)をmod_auth_mellonが設定されているSP上にコピーします。
  • ACS及びEntity IDを設定します。前述の通り、mod_auth_mellonをセットアップする際に"mellon_create_metadata.sh Entityid endpoint"の形式で実行したものでACSはendpointの末尾に/postResponseを加えたものになります。
  • 属性は特に変更しません。
  • アプリをセットアップした後に、「ウェブアプリとモバイルアプリ」画面から追加したアプリを選択し、使用権限を付加します。
  • 最終的にACS及びEntity IDの設定はこうなっています。

2.SP側の設定

ターミナルを開いて、SP上のauth_mellon.confファイル(Ubuntu・Debianの場合は/etc/apache2/mods-enabled/auth_mellon.conf)を編集し、MellonIdPMetadataFileとして、ダウンロードしたGoogleIDPMetadata.xmlファイルを指定します。


<Location />
  MellonEndpointPath "/mellon"
  MellonIdPMetadataFile /etc/apache2/saml/GoogleIDPMetadata.xml
  MellonSPPrivateKeyFile /etc/apache2/saml/https_mellon.example.net_sp.key
  MellonSPCertFile /etc/apache2/saml/https_mellon.example.net_sp.cert
  MellonSPMetadataFile /etc/apache2/saml/https_mellon.example.net_sp.xml

  AuthType "Mellon"
  Require valid-user
  MellonEnable "auth"
</Location>

3. SPのテスト

https://mellon.example.net/cgi-bin/printenv.cgiにアクセスすると、Googleのアカウント選択が呼び出されます(図は複数アカウントを持っているときのものになります)。

まとめ

今回まででSimpleSAMLphp及びmod_auth_mellonを用いてSSO連携する方法の紹介を終わります。またSSOに関して面白いものがありましたら取り上げていきますのでご期待ください。


セキュリティ系連載案内

CM

こちらで小学生の勉強支援サイトをオープンしました。算数のプリント(都度、自動生成)が無料でダウンロードできます。コンテンツは未だ少ないですが、徐々に増やしていきます。

セミナー情報1

2021/09/13 18:30から、OSSセキュリティ技術の会 第九回勉強会を行います。

7/30にリリースされたKeycloak 15で、FAPI(Financial-Grade API)、CIBA(Client Initiated Backchannel Authentication)に対応しました(Certificateはまだですが...)。またDevice Flowにも対応しています。これを記念し、KeycloakのFAPI,CIBAの主要開発者もお招きして、「KeycloakのFAPI CIBA 対応記念の巻」と題して勉強会を行います。

Connpassのこちらがプログラム内容と申し込みの詳細になります。奮ってご参加下さい。

セミナー情報2

コンピュータセキュリティシンポジウム(CSS)2021併設のワークショップ、 OSSセキュリティ技術ワークショップ(OWS) 2021の企画講演セッション及び、 一般論文セッションの発表募集をさせていただきます。

今年もオンラインでの開催となり、OWSトラックの一般論文セッションの論文募集(申込締め切り: 2021年08月02日(月))と企画セッションを行いますので,ご投稿とご参加よろしくお願いいたします。

https://www.iwsec.org/ows/2021/


OSSに関するお困りごとは サイオス OSSよろず相談室まで

サイオスOSSよろず相談室 では、OSSを利用する中で発生する問題に対し、長年培ってきた技術力・サポート力をもって企業のOSS活用を強力に支援します。Red Hat Enterprise Linux のほか、CentOS をご利用されている環境でのサポートも提供いたします。

前へ

MySQLの脆弱性(Oracle Critical Patch Update Advisory - Apr 2021)

次へ

Webminの脆弱性(CVE-2021-31760, CVE-2021-31761, CVE-2021-31762)