SAMLサービスプロバイダー(以下、SAML SPと省略します)、またはSAML IDプロバイダー(以下、SAML IdPと省略します。)とのSAML連携については、下記の弊社技術ブログにて説明をしてまいりましたが、サーバーを用意しないと動作確認が出来ないため敷居が高いと感じる方がいらっしゃったかと思います。
そんな時に https://samltest.id/ を利用すればSAML SP/IdPの両方の動作確認をサーバー構築無しで簡単に行えますので、その手順を説明いたします。
SAMLの基本的な動作確認に加えて、実装したSAML SP/Idpが上手く動作しない時の比較対象とすることで、テスト観点や設定ミスの原因調査などにも利用することが出来ますので、本記事を参照してお試し頂ければ幸いです。
※ samltest.idをIdPとした場合の使用可能なユーザー情報につきましては、特定の手順を踏まないと情報が取得できない仕様となっている関係上リンクを貼ることが出来ませんのでご了承ください。
IdP側のテストの場合は特に指定はございませんが、SP側のテストを実施する際にはユーザーが指定されておりますので、下記表の通りユーザーを作成してください。
ユーザーID:testuserについては、本記事で説明するIdP側のテストをした時のユーザーですので、情報として記載しているだけですので作成の必要はございません。testuserはSP側のテストでは認証が通りませんのでご注意ください。
ユーザーの作成方法については、SeciossLinkのユーザ管理 新規作成、または、AD/LDAP連携をされている場合は各AD/LDAP側のユーザー新規作成手順をご参照ください。
ユーザーID | 姓 | 名 | メールアドレス |
3VHAFNTLIJTFU3XK5VWNC2VYJT7WCXNV | Cooper | Sheldon | scooper@samltest.id |
56GGQJC2LGAWVVFSOAZUG5W2WJHQXFHO | Sanchez | Rick | rsanchez@samltest.id |
WOECYMSGRF4EQEJD67XLWYKXRQ5XENON | Smith | Mortimer | msmith@samltest.id |
testuser | テスト | ユーザー | testuser@example.com |
下記URLをクリックすることで各メタデータが自動的にダウンロードされます。
それぞれURLの最後の名称のspとidpという拡張子無しのファイルでダウンロードされますが、中身はxmlとなっていますので、一般的なテキストエディタで開くことが可能です。ファイル名を編集して".xml"を末尾に追記して頂ければ、お好みのブラウザにドラッグすることで閲覧することが出来ます。
ご利用している当社製品サーバーの管理コンソールにログインし(以降、同様の手順の場合は"管理コンソールにて"と説明させて頂きます)、[シングルサインオン]-[SAML]の[設定]タブをクリックすると上図の画面に遷移します。[ダウンロード]ボタンをクリックするとidpMetadata.xmlがダウンロードされます。
管理コンソールにて、[認証]-[SAML IDプロバイダー]の[設定]タブをクリックすると上図の画面に遷移します。[ダウンロード]ボタンをクリックするとspMetadata.xmlがダウンロードされます。
2022/08/04時点のSAML IdPの機能ですとメタデータをダウンロードする機能がございませんので、準備2.1で取得したidpファイルより証明書情報を抜き取って自身で証明書ファイルを作成する必要がございます。
上図の赤枠部分で囲んだ<ds:X509Certificate></ds:X509Certificate>の中の文字列をコピーしてUTF-8(BOM無し)/LFで保存できるテキストエディタに貼り付けて下記の通りに上下をBEGIN CERTIFICATEとEND CERTIFICATEでサンドイッチしたらidp.pemとしてファイル保存します。
ファイル保存時に、.txtなど異なる拡張子にならないように注意してください。
上図のsamltest.idのトップページから赤枠部分で囲んだ[UPDOAD METADATA]をクリックします。
上図の赤枠部分で囲んだ箇所の[ファイルを選択]をクリックして、準備2.2で取得したidpMetadata.xmlを選択し、[UPLOAD]ボタンをクリックしてidpメタデータをアップロードします。
アップロードが完了すると、上図画面の下側にアップロードしたメタデータの情報が表示されます。
下図に設定が完了した後の画面を記載します。縦長の画面構成となっておりますので4枚に分けて記載させて頂いております。
管理コンソールにて、[シングルサインオン]-[SAML]の[登録]タブをクリックし、上図3枚目の赤枠部分で囲んだ[メタデータ]-[ファイルを選択]ボタンをクリックして準備2.1で取得したspファイルを選択します。[ファイルを選択]ボタンの右側にファイル名が表示されたら、[読み込み]ボタンをクリックすることでメタデータが自動的に設定に反映されます。
下記の通り設定をしてください。記載が無い部分については空欄のままで問題ございません。
4枚目の一番下の[ユーザー同意取得]の設定については任意となります。各設定の詳細につきましては、SAML サービスプロバイダーの登録をご参照ください。
https://samltest.id/Shibboleth.sso/SLO/Redirect
から下記の通り変更してください。
https://samltest.id/Shibboleth.sso/Logout?return=https://{弊社製品のFQDN}/sso/logout.cgi
ShibbolethのVerやSP側の実装状態によっても異なるかと思いますが、samltest.idの2022/8/4時点の仕様だとIdP起点によるシングルログアウトがSP側のログアウト画面で止まってしまうため、上記の設定変更が必要になります。
returnに関する情報につきましてはGakuNinShibInstall ログアウト処理をご参照ください。
https://samltest.id/Shibboleth.sso/Login?entityID={IdPのエンティティID}
IdPのエンティティIDがhttps://slink.secioss.com/example なら下記の通りとなります。
https://samltest.id/Shibboleth.sso/Login?entityID=https://slink.secioss.com/example
samltest.idでサポートしているNameIDにおいて、準備1のユーザーID:testuserで実施したときの結果を下表に記載しましたので、こちらを参考に任意の組み合わせを設定してください。
IDの属性 | ユーザーIDの属性 | SAMLレスポンスに記載された値の例 |
---|---|---|
transient | Transient ID | _4435f2a905207ca14d2d4366f2acca494beb237074 |
persistent | Targeted ID (eduPersonTargetedID) |
gclaEbrc0A11r/dgUotd0pCmnMU= |
persistent | ユーザーID | testuser |
persistent | メールアドレス | testuser@example.com |
emailAddress | メールアドレス | testuser@example.com |
samltest.idでは下表の送信属性をサポートしています。必要に応じて該当する送信する属性のチェックをONにしてください。
送信する属性 | 属性名 |
ユーザーID | uid |
メールアドレス | |
社員番号 | employeeNumber |
姓 | sn |
名 | givenName |
別名 | displayName |
他にroleとtelephoneNumberもsamltest.idでサポートしておりますが、弊社製品では2022/8/4現在で対応しておりませんので、送信する属性(固定値)で任意の値を送ります。
属性名 | 値(例) |
role | testRole |
telephoneNumber | 012011112222 |
https://samltest.id/saml/logo.png
2.2.の4枚目の図の[保存]ボタンをクリックすると1枚目の図の右上部分の[設定]タブの直下に”正常に保存されました。”と表示されたらsamltest.idのSP設定が完了となります。
SSOが出来るようにsamltest.idのSPにアクセス出来るようにアクセス権限の設定を行います。設定方法につきましては、アクセス権限の登録をご参照ください。続いて、ユーザーへのサービス割り当てについてはSeciossLinkのユーザ管理 新規作成をご参照ください。
ユーザーポータルにアクセスして上図の赤枠部分をクリックします。
SSOに成功すると上図の画面に遷移します。[SEE SAMLTEST SP LOGS]ボタンをクリックするとIdPから送信されたSAMLレスポンスの内容や送信属性で認識できた情報などの内容を確認できます。
上図の画面から下方向に移動すると下図の通り[SAML LOGOUT]ボタンがありますので、そちらをクリックするとSP起点のシングルログアウトの動作が確認できます。
管理コンソールにて[システム]-[ログ]の操作ログ(上図)を見ると成功した旨が確認できます。
以上でsamltest.idをSPにした時のSSOまでの手順説明は終了となります。
手順は◆ IdP側のテスト(samltest.idをSAML SPとして利用する)の1.samltest.idにIdPのメタデータをアップロードする と同様で、準備2.2で取得したspMetadata.xmlをアップロードするだけが差分情報となりますので、手順説明は割愛させて頂きます。
下図に設定が完了した後の画面を記載します。
管理コンソールにて、[認証]-[SAML IDプロバイダー]の[登録]タブをクリックすると上図の画面に遷移します。こちらはメタデータ読み込み機能が実装されておりませんので、準備2.1で取得したidpファイルから下表の該当する項目を上図の設定に反映させます。
SAML IDプロバイダーの設定項目 | 値(<>内はメタデータの記載セクションを示します) |
エンティティID | <EntityDescriptor の entityID> https://samltest.id/saml/idp |
名前 | (任意の文字列) |
ログインURL | <SingleSignOnService bindings:HTTP-Redirect> https://samltest.id/idp/profile/SAML2/Redirect/SSO |
ログアウトURL | <SingleLogoutService bindings:HTTP-Redirect> https://samltest.id/idp/profile/SAML2/Redirect/SLO |
SAMLログアウト | チェックボックスをOFFにする |
IDの属性 | ユーザーID |
SAML 公開鍵 | 準備3で取得したidp.pemを[ファイルを選択]ボタンを クリックして読み込みます。 |
設定後、[保存]ボタンを押して上図の右上の[設定]タブの下に"正常に保存されました。"と表示されたらsamltest.idのIdP設定が完了となります。SAML認証が利用できるようにアクセス権限にSAML認証を追加します。設定方法につきましては、アクセス権限の登録をご参照ください。
テナント名を入力する必要がある製品をご利用の場合はテナント名を入力後、上図のユーザー名を入力する画面に遷移しますので、準備1.で作成した表の上から3人の中から一人選んで、ユーザーIDを入力し、[次へ]ボタンをクリックします。
認証方式選択画面に遷移したら、SAML認証を選択し、[選択]ボタンをクリックします。
上図の画面に遷移したら、上図の下側に表示されている表からログインする際に入力したユーザーIDと合致する組み合わせを選択します。上図の左上に配置されているUsernameとPasswordに選択した組み合わせを入力して[LOGIN]ボタンをクリックします。
上図の送信属性を確認する画面に遷移したら、任意のラジオボタンを選択して上図の下に配置されている[Accept]ボタンをクリックします。
認証に成功するとユーザーポータルへのログインが完了となります。
管理コンソールにて[システム]-[ログ]の操作ログ(上図)を見ると成功した旨が確認できます。もし、この説明通りに画面が遷移しなかった場合は、送信されてくるユーザーIDの値が準備1.と異なっている値(暗号化された値)になっている可能性が考えられます。[システム]-[ログ]の操作ログを確認し、下図の通りとなっている場合には、ログに記載のユーザー名でユーザーを作成し直してから再度動作確認を行ってください。
以上でsamltest.idをIdPにした時のSAML認証までの手順説明は終了となります。
お疲れ様でした。キャプチャー図が多いため最初は時間がかかるように思えたかもしれませんが、実際にやってみると操作する項目はそれほど多くは無かったのではないでしょうか。
samltest.idを用いたIdP側のテスト、または、SP側のテストのどちらかの手順を記載しているサイトはチラホラ見かけますが、両方とも記載しているサイトは少ないかと思いますので、当社製品を抜きにしても皆様の参考になったのではないかと思います。
当社製品をまだ体験したことが無い方は、この記事の閲覧を機会にご興味を持って頂けましたら1か月間評価版での無料体験を申し込んで頂ければ幸いです。
その他、マニュアル、製品資料、価格表などSeciossLinkサポート情報にまとめておりますので、合わせてご参照ください。