- Published on
Content Hub - シングルサインオンの検証
- Authors
- Name
- Shinichi Haramizu
- @haramizu
Sitecore Content Hub にログインをして利用する際に、シングルサインオンの仕組みとの連携が可能となっています。ここでは、SSOCircle の仕組みを利用して、実際にシングルサインオンに関する検証手順について紹介をしています。
SSOCircle を利用して検証
今回は SSOCircle を利用することで、簡単に SAML 認証に関して検証をすることができます。
アカウントの作成
初めて利用する際にはアカウントを作成してください。
登録を完了したあと、しばらくすると登録ユーザーのメールアドレスに、Activation のための URL が記述されたメールが送信されます。メールに含まれている URL をクリックすることで、アカウントがアクティベーションされます。
アカウントが有効になったところで、実際にログインをしてください。
ログインができれば、アカウントの作成は完了となります。
Meta data の登録
サービスプロバイダーに関する設定を進めていきます。ログインをしている画面の左側のメニューに Manage Metadata
の項目があります。クリックをすると以下の画面になります。
今回はサービスプロバイダーを追加するために、一番上に表示されている Add new Service Provider
の項目をクリックしてください。
この画面で表示されている内容としては、以下の 2 をまず入力してください。
- FQDN Sitecore Content Hub の FQDN を入力してください
- Attributes sent in assertition UserID と EmailAddresss の2つの項目をチェックしてください。
下に記載されている SAML Meta データを提供する必要がありますが、このコードを生成する手順は画面に記載されている you can build it here をクリックすると画面が切り替わります。
画面が切り替わったところで、以下の2つの項目を入力するように表示されます。
- EntityID
- ACS URL
EntityID にはサーバーの URL を入力してください。この際、最後に / を設定する必要があります。続いて ACS URL に関しては、EntityID の URL に対して、AuthServices/Acs を追加した URL を入力します。上記2つの項目を入力したあと、insert のボタンをクリックすると、Meta データが完成します。
出来上がったメタデータを、元のページに登録して、Submit ボタンを押すと、手続きが完了となります。
これで SSOCircle の設定が完了です
Sitecore Content Hub の環境の準備
以下の手順で認証に関する仕組みを変更していきます。
ログインモードを Active から Passive に変更
Sitecore Content Hub のサンドボックス環境では、標準で提供されているシングルサインオンのみで動作する形で展開されることがあります。
この設定を変更するために、以下の手順でパラメーターを変更してください。
- 管理ツール Manage を開きます
- 設定を確認する Settings を開きます
- 検索ボックスに Auth と入力すると、PortalConfiguration の項目の下にある Authentication を見つけることができます
- Authentication を開きます
- 表示モードを Tree から Text に変更をします
authentication_mode
が Active になっている場合、Passive に変更します
これにより、ログアウトをするとログインボックスが表示されるようになります。authentication_mode
がすでに Passive になっている場合は、変更せずに次に進みます。
設定を変更すると、ログインのダイアログが表示されるようになります。
管理者でログインができるか確認をする
管理者としてログインできるアカウントを作成します。すでに管理者として上記の画面からログインをしている場合は、この手順をパスすることができます。アカウントの作成、パスワードの設定に関しては、別途後日紹介をします。
SSOCircle の設定を反映させる
すでに設定されている認証の設定を変更して、検証のための SSOCircle の設定に変更をしていきます。改めて Authentication の設定画面に移動して、コードを見ると以下のようになっています。
"Providers": [
{
"$type": "Stylelabs.M.Portal.Authentication.SamlAuthenticationProviderConfigurator, Stylelabs.M.Portal",
"metadata_location": "https://stylelabs.eu.auth0.com/samlp/metadata/JyVO5bQjk6n3mrUJnUZ02vMuA1K4MiaY",
"sp_entity_id": "urn:stylelabs.eu.auth0.com",
"idp_entity_id": "urn:stylelabs.eu.auth0.com",
"provider_name": "SSO",
"authentication_mode": "Passive",
"module_path": "AuthServices",
"is_enabled": true
}
],
この設定で提供されているログイン画面は以下の通りです。
SSOCircle と連携してログインの仕組みを利用するために、パラメーターに関しては以下の項目を変更します。
パラメーター | 値 |
---|---|
metadata_location | https://idp.ssocircle.com/meta-idp.xml |
sp_entity_id | インスタンスの URL を記載します |
idp_entity_id | SSOCircle のサイトから取得します |
provider_name | SSOCircle に名前を変更します |
idp_entity_id の値を取得するためには、metadata_location の URL にアクセスをして、XML の1行目に記載されている ipd_entity_id を引用する形となります。ここでは以下の値となりました。
結果、以下のパラメータを設定します。
パラメーター | 値 |
---|---|
metadata_location | https://idp.ssocircle.com/meta-idp.xml |
sp_entity_id | https://jpntraining09.stylelabs.io/ |
idp_entity_id | https://idp.ssocircle.com |
provider_name | SSOCircle |
{
"$type": "Stylelabs.M.Portal.Authentication.SamlAuthenticationProviderConfigurator, Stylelabs.M.Portal",
"metadata_location": "https://idp.ssocircle.com/meta-idp.xml",
"sp_entity_id": "https://jpntraining09.stylelabs.io/",
"idp_entity_id": "https://idp.ssocircle.com",
"provider_name": "SSOCircle",
"authentication_mode": "Passive",
"module_path": "AuthServices",
"is_enabled": true
}
また、SSOCircle と連携させるためには、以下の 3 つの項目を変更してください。
"UsernameClaimType": "UserID",
"EmailClaimType": "EmailAddress",
"PostSignOutRedirectUrl": "/en-us/account",
設定が完了したあと、ログアウトをすると以下のようにログインボックスにボタンが追加されています。
シングルサインオンの検証
シングルサインオンの検証をするために、SSOCircle にログインをしているブラウザがある場合は、ログオフをしてください(無料プランの場合は制限があるため)。
- ログイン画面で、SSOCircle のボタンをクリックします
- SSOCircle のログイン画面が表示されます
- 事前に作成していたアカウントでログインをします
- Sitecore Content Hub にログインできます
ログインをした段階では一般ユーザーの権限のみとなっているため、ユーザーの権限に関してはログイン後設定をしてください。
まとめ
今回はシングルサインオンの実装の検証、ということで SSOCircle を利用して、SSOCircle で作成したアカウントでログインができることを確認しました。実際の SSO の実装の場合は、利用している仕組みに合わせた実装をしていただく必要があります。