カスタマイズ事例:SingleSignOn プラグイン

PowerCMS X は豊富な機能を提供していますが、お客様のご利用シーンによっては機能が足りないケースがあります。
弊社では製品の仕様と回答せず、カスタマイズの対応でご希望にお応えできると伝えています。
(カスタマイズは有償対応となります)

この記事のポイント
  • SingleSignOn プラグインでは実現できない要件をカスタマイズで解決
  • SAML 認証後に PowerCMS X ユーザーを自動作成/ユーザーグループを自動設定
  • IdP のユーザー情報(氏名・所属)を PowerCMS X に自動反映
  • ユーザー管理の自動化により運用負荷を大幅に削減

お客様のご要望は SAML 認証後に PowerCMS X ユーザーを作成したい

PowerCMS X はオプションプラグインとして、SingleSignOn プラグインを販売しています。

SAML 2.0によるシングルサインオン(SingleSignOnプラグイン)

SingleSignOn プラグインはさまざまなケースで利用されることを想定しているため、SAML 認証の機能のみ提供しています。そのため、IdP から送信されるユーザー情報を基に、PowerCMS X でユーザー作成などの処理を行うことはできない仕様となっています。 これは、IdP が送信するユーザー情報の内容や形式が運用環境ごとに異なり、それらを前提としたユーザー作成機能を PowerCMS X 側で汎用的に提供することが困難であるためです。

しかし、お客様は日々の運用を軽減したいことと、IdPのユーザーデータを活用したい希望がありました。ご要望は3つで「PowerCMS X ユーザーの自動作成」と「ユーザーグループの自動設定」、「氏名の姓が変わった時に PowerCMS X のユーザーデータを自動反映」でした。

お客様のご要望に対応したケースとして、本記事では SingleSignOn プラグインのカスタマイズをご紹介いたします。

SingleSignOn プラグインとは

SingleSignOn プラグインは、PowerCMS X のユーザーログインに SAML(Security Assertion Markup Language)認証を利用できる追加機能です。PowerCMS X が SP(Service Provider)になり、IdP(Identity Provider)は Microsoft Entra や Okta などを利用します。SAML 認証は SAML 2.0 をサポートしています。

SAML認証のプロセスを表すシーケンス図。3つの要素がある。要素は「サービスプロバイダ」「ユーザー」「アイデンティティプロバイダ」。CMSがサービスプロバイダになる。まず、ユーザーがCMSへアクセスし、CMSでSAMLボタンを押下すると、アイデンティティプロバイダで認証画面が表示される。次に、ユーザーがIDとパスワードを入力すると、アイデンティティプロバイダで認証処理が行われ、CMSのダッシュボードが表示される。

IdP で SAML認証した後は、PowerCMS X も自動的にログイン状態になります。

プラグインの仕様を確認

SingleSignOn プラグインは SCIM(System for Cross-domain Identity Management)に対応していません。そのため、IdP で管理しているユーザーアカウントと同一のアカウントを、事前に PowerCMS X 側でも作成しておく必要があります。 IdP にアカウントが存在していても、PowerCMS X に該当ユーザーが存在しない場合はエラーとなります。 PowerCMS X ユーザーを自動作成する機能はありません。

IdP で管理しているユーザーアカウントの姓が変更された場合でも、PowerCMS X は自動的に変わりません。

IdP で管理しているユーザーアカウントに所属部署の設定があっても、PowerCMS X のユーザーグループは自動的に設定されません。また、IdP で所属部署が変わった時に、PowerCMS X は自動的にユーザーグループの設定を変更しません。

プラグインのカスタマイズ

カスタマイズの概要

SAML認証後に送信されるユーザーデータの情報から、PowerCMS X は下記のカスタマイズを行うことにしました。

  • PowerCMS X にユーザーが存在しない時はユーザー作成を行う。
  • PowerCMS X にユーザーグループが存在しない時はユーザーグループの作成を行う。
  • ユーザーグループの作成後に管理者宛にメール通知する。(※)
  • ユーザーとユーザーグループの紐付きを行う。
  • ユーザーの姓が変更されている時は、PowerCMS X ユーザーも変更する。

※メール通知する理由は、ユーザーグループが自動作成されてもロールをどのような設定すべきかシステムでは判別できないため、メールを受信したら速やかにユーザーグループとロールの紐付け設定を手動で行う必要があるためです。

IdP から受け取るデータ

今回のケースは、SAML認証後に IdP から PowerCMS X へ下記の値を受け渡しました。
PowerCMS X ユーザーの存在チェックはメールアドレスを使用しました。

項目名 値サンプル 備考
firstName 太郎  
lastName 田中  
email sample@sample.jp  
groups 営業部 設定した値
groups 営業統括部 設定した値(groups は複数存在する)

カスタマイズの処理フロー

処理の流れを分かりするためにカスタマイズをする時は処理のフロー図を作成しています。 IdP から受け取ったデータを元に、PowerCMS X で処理する流れを記載しています。

このフロー図があると動作テストもしやすくなります。

SingleSignOn プラグインカスタマイズの処理フロー

事前に PowerCMS X で設定が必要な内容

SAML 認証の前準備として、事前にロールとユーザーグループを作成して、権限設定の紐づけをする必要があります。この設定は自動化ができません。

ロールの作成

ロールはシステムスコープで作成します。
「ロールの一覧」画面から「新しいスペースのロール」ボタンを押下して作成します。

項目名 設定内容
名前 IdP の groups 名
クラス 未チェック
説明 任意
※モデルのチェックボックスについては割愛します。

ユーザーグループの作成

ユーザーグループはシステムスコープで作成します。

項目名 設定内容
名前 IdP の groups 名
ユーザー 未選択のままにします。

権限設定

権限は各スペースで作成します。

項目名 設定内容
ユーザー 未選択のままにします。
ユーザーグループ 対象のユーザーグループを登録します。
ロール ユーザーグループに設定したいロールを登録します。

CSV インポート

ロール、ユーザーグループ、権限の各データは CSV でマスター管理しておき、PowerCMS X のインポート機能で一括登録することも可能です。

SingleSignOn プラグインカスタマイズの効果

本カスタマイズにより、PowerCMS X と IdP 間のユーザー情報連携が大幅に自動化され、運用負荷の軽減を実現しました。

従来は、IdP にユーザーが存在していても PowerCMS X 側にユーザーやユーザーグループが未登録の場合、ログインエラーが発生し、管理者による手動対応が必要でした。本カスタマイズでは、SAML 認証時に受信したユーザー情報をもとに、PowerCMS X のユーザーおよびユーザーグループを自動作成することで、初回ログイン時からスムーズな利用が可能になりました。

また、IdP 側でユーザーの姓が変更された場合でも、PowerCMS X 側のユーザー情報が自動的に更新されるため、人事異動や改姓に伴うメンテナンス作業を最小限に抑えることができます。

ユーザーグループの自動作成時には管理者へメール通知を行うことで、適切なロール設定を確認・反映する手動運用を行います。

結果として、IdP を起点とした一元的なユーザー管理が実現し、PowerCMS X のアカウント管理にかかる工数削減、設定ミスの防止、運用の属人化解消といった効果が得られています。

関連ページ

SAML 2.0によるシングルサインオン(SingleSignOnプラグイン)


日本語
ふりがな付き
English
简体中文
繁體中文
한국어