SAML 認証の疎通確認

シラサギは SAML をサポートしており、シラサギ側に IdP の情報を適切に設定することで、 シラサギでシングル・サインオンをサポートすることが可能となっています。

事前準備

シラサギは SP (Service Provider) となります。IdP が別途必要です。

また、SAML 認証でサポートしているのは 認証 のみで、認可 についてはシラサギ側で実施します。 つまり、事前にシラサギ側にグループ、ユーザー、権限/ロールを適切に設定しておく必要があります。 認証は IdP 側で実施するので、シラサギ側にユーザーを登録する際のパスワードは何でも良いです。

テスト用 SAML IdP を使って疎通確認

事前準備として、グループ、ユーザー、権限/ロールが適切に設定できたら、テスト用 SAML IdP を使って疎通確認をしてみましょう。

グループ、ユーザー、権限/ロールは、初期値のままでも疎通確認は可能です。

本書では、テスト用 SAML IdP として sampling <https://capriza.github.io/samling/> を使います。 手順は次のとおりです。

  1. https://capriza.github.io/samling/public/metadata.xml から sampling のメタデータをダウンロードし、シラサギにインポートします。 インポートは、システム設定 - 認証 - SAML - メタデータ インポート(/.sys/auth/samls)からできます。
  2. インポートが完了したら、ログアウトしてログイン画面に戻ります。 ログイン画面に戻ると、「ログイン」ボタンの下に 1 で追加した IdP へのリンクがあります。 リンクをクリックします。
  3. sampling の設定画面が表示されます。 “Name Identifier” 欄に、ログインしたいユーザーの uid かメールアドレスを入力し、”Next” をクリックします。
  4. SAML Response の詳細が表示されます。 何も変更せずに、”Post Response!” をクリックします。
  5. シラサギの /.mypage へリダイレクトされ、3 で入力したユーザーでログインしていることが確認できます。

なお、疎通の確認にはインターネットに接続した環境が必要です。

1.9.1 以前にはバグがあり、SAML でログイン後にログアウトすると 404 ページが表示されます。 お手数ですが、バージョンアップをご検討ください。

どうしても疎通確認がうまくいかない場合は、シラサギのログレベルを debug に変更し、 どのような URL へ、どんなパラメーターでアクセスしているかをログに出力するようにすることで、 どこでどんな理由でうまくいかないのかを調査することができます。

config/environments/production.rb をテキストエディタで開き config.log_leveldebug に変更し、シラサギを再起動してください。これでデバッグログが有効になります。