こんにちは。SIOS OSSエバンジェリスト/セキュリティ担当の面 和毅です。
SAML環境のテストのために、SimpleSAMLphpやmod_auth_mellonを使って簡易IdP / SPをセットアップしました。今回は最終回の「GoogleをIdPとして使用してApache+mod_auth_mellonを繋げてみる」を纏めます。
なお、この記事は2021年4月時点での設定方法であり、将来(主にGoogle側の)設定が変更される可能性がありますのでご了承ください。
連載及びコンテンツ
(SAML第1回) SimpleSAMLphpを使った簡易IdPの作成
(SAML第2回) SimpleSAMLphpを使った簡易SPの作成
(SAML第3回) mod_auth_mellonを使った簡易SPの作成
環境
- 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に関して面白いものがありましたら取り上げていきますのでご期待ください。
セキュリティ系連載案内
- OSSセキュリティ技術の会による日経Linuxでの連載「IoT時代の最新SELinux入門」がITPro上で読めるようになりました。技術の会代表で第一人者である中村さん等による、最新のSELinuxの情報やコマンド類等も更新されているのでお薦めです。
- OSSセキュリティ技術の会によるThinkITでの連載「開発者のためのセキュリティ実践講座」がThinkIT上で開始しました。技術の会の中の人間で、最新の代表的なOSSセキュリティ技術を紹介していきます。
- OSSセキュリティ技術の会により、ThinkITでLinuxSecuritySummit 2018のレポートが紹介されています。
- OSSセキュリティ技術の会の面により、@ITで「OSS脆弱性ウォッチ」が連載されています。
- OSSセキュリティ技術の会の面により、@ITで「OpenSCAPで脆弱性対策はどう変わる?」が連載されています。
- OSSセキュリティ技術の会のメンバーにより、@ITで「Berkeley Packet Filter(BPF)入門」が連載されています。
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日(月))と企画セッションを行いますので,ご投稿とご参加よろしくお願いいたします。