SAMLtestでSAML2.0(Shibboleth)認証をテスト

SAML2.0 IdP/SPのテストに便利なサービスSAMLtest.idを見つけました。
実際にShibboleth認証に対応したSPのテストに使ってみたので、本エントリに手順をまとめます。

f:id:hiroki-sawano:20201110195434p:plain

テスト対象のSP

$ yum update -y

# Shibbolethのインストール
$ yum install -y wget
$ wget 'https://shibboleth.net/cgi-bin/sp_repo.cgi?platform=CentOS_7'
$ cp sp_repo.cgi\?platform=* /etc/yum.repos.d/shibboleth.repo
$ yum install -y shibboleth

# Apacheのインストール
$ yum install -y httpd mod_ssl

使い方

SPのメタデータをアップロード

Upload MetadataからSPのメタデータをアップロードします。

f:id:hiroki-sawano:20201110190146p:plain

Shibboleth.sso/Metadata から取得したメタデータをアップロードしました。

f:id:hiroki-sawano:20201110214138p:plain

IdPの追加

Download Metadataに従い、SAMLtestのメタデータを追加し、デフォルトのIdPとしてhttps://samltest.id/saml/idpを指定しました。

<SPConfig ...>
  <ApplicationDefaults ...>
    <Sessions ...>
      <SSO entityID="https://samltest.id/saml/idp">
        SAML2
      </SSO>
    </Sessions>

    <MetadataProvider type="XML" validate="true"
            url="https://samltest.id/saml/idp"
            backingFilePath="SAMLtest.xml">
         <!-- You should always check the signature and freshness of remote
                 metadata.  It's commented out until you get the basics working.
              <MetadataFilter type="RequireValidUntil" maxValidityInterval="2419200"/>
              <MetadataFilter type="Signature" certificate="signet.crt" verifyBackup="false"/>
            -->
    </MetadataProvider>
...

SPにログイン

以上の設定によりSPにアクセスするとSAMLtestのIdPにリダイレクトされるようになります。
ログインに使用できるテストユーザはIdPのログイン画面に表示されています。

f:id:hiroki-sawano:20201110194200p:plain

IdPでログインに成功すると以下の通り各種属性がSPに送出されます。

f:id:hiroki-sawano:20201110190319p:plain

まとめ

本エントリではSAML認証のテストに役立つSAMLtestをご紹介しました。
SSOが当たり前となった今、このようなサービスの存在は大変ありがたいです。
SAMLtestだけでは届かない部分ももちろんありますが、SP構築中の簡易な接続確認などにおいて、今後とも活用していこうと思います。