Entra Sync および SSO
ドキュメント

Entra Sync および SSO

概要

Entra Sync プラグインを使用すると、Rock の管理者は Rock と Entra 間のデータを同期できるほか、シングル サインオン(SSO)機能を利用することで、Entra ユーザーが Entra の認証情報を使用して Rock にログインできるようになります。データの同期は 双方向(Rock から Entra へ、または Entra から Rock へ)で行え、 オンデマンドまたはスケジュールされたジョブによって同期を行うことができます。

デフォルトでは、Entra Syncプラグインは グループのメンバーを同期し、以下のロジックに基づいて、 どちらかのシステムにある既存のレコードとの照合を試みます:

  1. Entra -> Rock –同期処理では、「名」、「姓」、「メールアドレス」が完全に一致するものを検索します。
  2. Rock → Entra – 同期処理では、Rockの「メールアドレス」とEntraのユーザープリンシパル名(Entraにおけるメールアドレスと考えてください)との完全一致が検索されます。

警告

重要なお知らせ:このプラグインは、Entraの「カスタムドメイン名」に存在するドメインのメールアドレスを持つユーザーについてのみ、RockからEntraへの同期が可能です。RockからEntraへ同期する際、RockではEntra内のメール対応グループ(メール対応セキュリティグループおよび配布リストを含む)のグループメンバーシップを変更することはできません。メール対応グループの管理は、Exchange/Office 365 管理センターからのみ行うことができます。

さらに、以下のフィールドについて、変更を一方方向(Rock から Entra へ)に同期する自動ジョブを設定することができます:

  • 事務所の電話番号
  • 固定電話
  • 役職名
  • 部署
  • 会社

また、「ユーザー写真」のデータも、どちらの方向でも同期される場合があります。

注記

Entra では、ユーザーが Exchange メールボックス (通常は Office 365 サブスクリプションの一部)を持っている場合にのみ、そのユーザーのプロフィールを取得または変更できます。 これは Microsoft Graph API の制限によるものです。

インストール前の設定:Entraの設定

プラグインを設定するには、Entraテナントでアプリケーションを登録し、必要な権限を付与する必要があります。

手順 1: Entra テナントで新しいアプリ登録を作成します。

まず、Azure ポータルで Microsoft Entra ID ブレードを開き(正しいテナントが選択されていることを確認してください)、左側のリソース メニューから「アプリ登録」オプションを選択します。次に、アプリ登録ブレードの上部にある「新しい登録」ボタンをクリックして、新しい登録を作成します。

設定オプションの説明:

  1. 名前 -ここでは任意の名前を指定できますが、このアプリの登録目的が明確になるよう、「Rock Entra Sync Plugin」のような名前を付けることをお勧めします。
  2. 対応するアカウントの種類 -このオプションについては、デフォルトの選択(シングルテナント)のままにしておいてください。
  3. リダイレクト URI -プラグインの SSO 機能(Entra の認証情報を使用して Rock にログインする機能)を使用する場合は、ここに値を入力する必要があります。これは、Entra の認証情報を使用して Rock にログインするために使用する(Rock サーバー上の)ページです。 任意のURLを設定できますが、https://my.church/sso や https://my.church/entralogin のような形式を使用することを推奨します。このページの Rock での設定方法については、後のセクションで説明します。SSO 機能を使用しない場合は、この設定を空白のままにしておいてください。

手順 2: 設定内容をメモしておきます。

新しいアプリ登録を作成すると、 作成した新しいリソースの管理ブレードに移動します。このページには、 後でプラグインを設定する際に必要となる重要な情報が記載されていますので、 「アプリケーション(クライアント)ID」と「ディレクトリ(テナント)ID」の値をメモしておいてください。ステップ 1でリダイレクトURIの値を入力した場合は、その値もメモしておいてください。

また、ブレードの上部にある「エンドポイント」をクリックし、最初の2つのエンドポイントをメモしておく必要があります:

これで、以下の情報が収集されているはずです:

  1. テナントIDを入力してください
  2. クライアントIDを入力してください
  3. OAuth 2.0 認証エンドポイント (v2)
  4. OAuth 2.0 トークンエンドポイント (v2)
  5. リダイレクト URI(プラグインの SSO 機能を使用している場合)

ステップ 3:アプリの登録に、 ユーザーおよびグループの読み取りおよび書き込み権限を付与します。

Entra プラグインは、Entra テナント内のユーザー およびグループのレコードを読み取り・変更する権限、および ディレクトリから基本データを読み取る権限を必要とします。これは Microsoft Graph API を使用して行われ、以下の権限が必要となります:

  1. Directory.Read.All
  2. Group.ReadWrite.All
  3. User.ReadWrite.All

アプリケーションに新しい権限を追加するには、左側のリソース管理メニューから「API 権限」オプションを選択し、 「権限を追加」ボタンをクリックします。 「Microsoft Graph」オプションを選択し、次に「アプリケーション 権限」を選んで、必要な権限を追加します。 3つすべてを一度に追加することもできます。

追加した権限を確定するには、 管理者による承認を行う必要があります。この手順が 完了すると、API 権限画面は 以下のスクリーンショットのような表示になります。

ヒント

ヒント:管理者同意を付与するには、Entraテナントでの管理者権限が必要です。

ステップ 5: クライアントシークレットを作成します。

このプラグインは、Entra への認証にクライアントシークレットを使用します。このシークレットはパスワードのようなものであり、このシークレットを所持する者は誰でも、前の手順でアプリケーション登録リソースに付与した権限をすべて持つことになります。したがって、この値はパスワードと同様に、極めて機密性の高い情報として扱う必要があります。

新しいクライアントシークレットを作成するには、リソース管理ブレードから「Certificates & secrets」オプションを選択します(この時点で、作成したアプリ登録が引き続き表示されているはずです)。 「クライアントシークレット」セクションまでスクロールし、ボタンをクリックして新しいクライアントシークレットを追加します。シークレットの名前は自由に設定できますが、アプリ登録と同様に、そのシークレットの用途が一目瞭然となる名前を使用することをお勧めします。有効期限のオプションは「なし」を選択することをお勧めします。別の有効期限を選択した場合、古いシークレットの有効期限が切れた際に、新しいシークレットを作成し、プラグインの設定にそのシークレットを入力し直す必要があります。

シークレットを作成したら、 その値をコピーできます。この時点で その値を記録しておく必要があります。後で 再度取得することはできないためです。もし後でこの値が必要になり、 この時点で記録しておかなかった場合は、新しい シークレットを作成し、それを使用する必要があります。

ヒント

この画面を先に進む前に、クライアント シークレットの値を必ずメモしておいてください。

Entra Sync プラグインの認証設定を構成する

Entraテナントの設定が完了し、 利用可能な状態になったので、次はプラグインの設定を行います。まだプラグインをインストールしていない場合は、 今すぐRock Shopからインストールしてください。また、「インストール前のセットアップ」の手順2で記録しておいた設定情報と、 手順5で作成したクライアントシークレットも必要になります。

「管理ツール」> 「インストール済みプラグイン」に移動し、「Entra Group Sync」オプションを選択します。次に、 右上の「Entra 認証情報」ボタンをクリックし、前の手順で設定した値を入力します。

同期するグループの設定

このプラグインは、Rock または Entra 内のグループのメンバーを同期させるため、両方のシステムでグループを作成する必要があります。同期設定を行うには、 [管理ツール] > [インストール済みプラグイン] > [Entra Group Sync] に移動し、 ボタンをクリックして新しいエントリを追加してください。 以下の設定オプションが表示されます:

  1. グループ選択タイプ– ここで、「Rock Security ロール」を選択するか、通常のグループを選択するかを指定します。
  2. グループ – ロックグループまたはセキュリティロール。
  3. Entra Group– Entra のセキュリティロールまたはグループ。これらのグループは、まず Entra ポータルで作成する必要があります。
  4. 同期方向- ロックとエントラのどちらを宛先システムとするかを指定します。
  5. 一致するレコードがない場合は個人を追加」 – 一致するレコードが見つからない場合、その個人をRockまたはEntraに追加します。注:Entraに個人を追加しても、ライセンスは作成されず、メールボックスも追加されません。

ヒント

宛先システムに新しいユーザーを追加したい場合は、必ず「一致しない場合は個別に追加」にチェックを入れてください。

Entraのメール対応グループに関する注意事項

Entra でメール対応グループ(配布グループまたは メール対応セキュリティグループ)を選択し、同期方向を Rock から Entra へのデータプッシュに設定して上記の設定を行うと、 プラグインでは Entra 内のメール対応グループのメンバーシップを変更できないことを 知らせる警告通知が表示されます。これは、 プラグインがこのグループのメンバーを追加または削除できないことを意味します。  これらのグループでは、RockとEntraのユーザーレコード間の 連絡先同期は引き続きサポートされますが、メール対応グループの メンバーシップを変更する唯一の方法は、Exchange/Office 365 管理センターから行うことです。

この方法でグループを設定すると、グループ同期リストに そのグループの設定に関する警告も表示されます。

プラグインが同期プロセスを実行しようとした際に、RockグループとEntraのメール対応グループのメンバーが同期されていない場合、 ジョブレポートおよびRockの例外リストに警告が表示されます。 例外リストには、グループへの追加または削除ができなかったユーザーが (EntraユーザーGUIDによって)特定されます。  これらの 警告を回避するには、Rockからの同期を設定したメール対応グループについて、 手動で同期を行う(つまり、 両方のグループに同じメンバーを追加する)ようにしてください。

グループを手動で同期する

グループの同期設定が完了したら、 グループの横にある「同期」ボタンを押して、手動で同期を行うことができます。

[オプション] 自動同期ジョブの設定

このプラグインには、グループを同期するための自動ジョブが含まれており、 これをスケジュール設定することができます。これを有効にするには、 [管理ツール] > [システム設定] > [ジョブ管理] に移動し、 新しいジョブを追加してください。[スケジュール済みジョブの 詳細] 画面で、ジョブの種類として「Sync Entra (プラグイン)」を選択してください。

[オプション] 連絡先情報の同期を設定する

このプラグインは、グループの同期が行われるたびに、 Rock から Entra へ連絡先情報を同期するように設定できます(これは、 グループが手動で同期される場合でも、自動ジョブによって同期される場合でも発生し、 同期方向が Rock から Entra への場合、 これらの設定はすべての同期対象グループに適用されます)。

注記

このセクションの設定は、RockからEntraへデータをプッシュするすべての同期グループに影響します。

この機能を有効にして設定を行うには、 [管理ツール] > [インストール済みプラグイン] > [Entra Group Sync] の順に移動し、 右上隅にある [連絡先設定] ボタンをクリックしてください。

注記

「連絡先情報の同期を有効にする」オプションにチェックを入れて有効にするまで、この画面のどのオプションも設定することはできません。

設定オプション:

  1. 連絡先情報の同期を有効にする- 連絡先情報の同期を有効にするには、このオプションを選択する必要があります。
  2. - Entra の「名」フィールドは、Rock の「名」または「ニックネーム」フィールドのいずれかと照合されます。この設定により、どちらと照合するかを指定します。
  3. 「Job Title」 - この設定は、RockからEntraへデータが送信される場合にのみ有効です。逆方向の同期が行われる場合は、この設定は影響しません。Entraへ送信される値を制御するために、「Person Attribute」の値または「Lava」式を選択できます。
  4. 部門 - この設定は、RockからEntraへデータが送信される場合にのみ有効です。逆方向の同期が行われる場合は、この設定は影響しません。Entraへ送信される値を制御するために、「Person Attribute」の値または「Lava式」のいずれかを選択できます。
  5. Office - この設定は、RockからEntraへデータが送信される場合にのみ有効です。逆方向の同期が行われる場合は、この設定は適用されません。Entraへ送信される値を制御するために、「Person Attribute」の値または「Lava式」のいずれかを選択できます。
  6. 会社 - この設定は、RockからEntraへデータが送信される場合にのみ有効です。逆方向の同期が行われる場合は、この設定は適用されません。Entraへ送信される値を制御するために、「Person Attribute」の値またはLava式を選択できます。
  7. オフィス電話の種類- この設定により、Entra内のオフィス電話/業務用電話との同期に使用するRockの電話の種類を指定します。
  8. 携帯電話の種類- この設定により、Entraで携帯電話との同期に使用するRockの携帯電話の種類を指定します。

注記

「役職」フィールド(役職名、部署、事業所、会社名)は、RockからEntraへのデータ同期のみ設定可能です。EntraからRockへのデータ同期時には、これらのフィールドは一切影響しません。

警告

Microsoft Graph API では、Entra テナント内で管理者権限を持つユーザーの電話番号を変更することはできません。これはセキュリティ上の理由による意図的な制限です(これらの電話番号はアカウントの復旧に使用される可能性があるため)。これらのフィールドの同期を有効にしていて、この状況が発生した場合、Entra ではそれらのフィールドは変更されません(ただし、そのユーザーのその他の情報は正しく同期されます)。

グループ設定および連絡先情報の同期に関する注意

ヒント

同一のレコードが双方向に同期されるような状況は避けることをお勧めします。

グループを複数設定することで、特定のユーザーを双方向で同期させるような構成にすることも可能です。つまり、同じユーザーが、RockからEntraへデータをプッシュするように設定されたグループと、EntraからRockへデータをプルするように設定されたグループの両方に所属している場合があります。このような状況は避けることをお勧めしますが、意図的にこの方法で同期を設定する場合もあるでしょう。 その場合、連絡先情報の同期を設定しているときは、連絡先情報は一方向のみに同期されるため、Rock内のデータが「マスターレコード」となります。つまり、Entraで直接行った変更は上書きされてしまうため、その個人の連絡先情報を変更する場合は、Rockで行う必要があります。

このルールには1つの例外があります。それは、Microsoft Graph APIでは、Entra内の管理者の電話番号(勤務先の電話番号および自宅の電話番号)を更新できないという点です。この制限は、これらの値がEntraのアカウント復旧プロセスで使用されるためです。外部からの変更を許可すると、管理者がアカウントを復旧できなくなり、アカウントにアクセスできなくなる可能性があります。また、外部アプリケーションが侵害された場合、セキュリティ上のリスクが生じる恐れがあります。

[オプション] シングルサインオン(SSO)の設定

プラグインのシングルサインオン機能を設定すると、 ユーザーはEntraの認証情報を使用してRockに ログインできるようになります。この機能を有効にするには、 Entraアプリの登録設定でアプリのリダイレクトを設定する必要があります。  その詳細については、このドキュメントの冒頭にある 「インストール前の設定」のステップ1をご確認ください。プラグインの 初期設定時にURLを入力していなくても問題ありません。準備が整い次第、 アプリ登録の設定を編集して追加することができます。

プラグインによってインストールされた Entra 認証プロバイダ(Rock 内)を 有効化および設定するには、[管理ツール] > [セキュリティ] > [認証サービス] に移動し、「Entra」プロバイダを選択してください。

設定オプション:

  • 有効 – Entra認証を有効にするには、このオプションを「はい」に設定する必要があります。
  • 2FAが設定済み– Rockで二要素認証(2FA)が有効になっており、かつEntraがRock外部での多要素認証を処理するように設定されている場合は、このオプション「はい」に設定する必要があります。「いいえ」に設定されている場合、Rockで二要素認証が必須となっていると、ユーザーはEntraを使用して認証を行うことができません。

SSOリダイレクトページの設定

次に、Rockで新しいページを作成する必要があります (管理ツール > CMS設定 > ページ)。また、おそらく そのページ用のルートも作成したくなるでしょう(管理ツール > CMS設定 > ルート)。 そうすることで、デフォルトのページURLではなく、 わかりやすいURL(例:http://my.church/sso)でそのページにアクセスできるようになります。  この ドキュメントでは、この手順については既にご存知であることを前提としていますが、 必要に応じていつでも Rock のドキュメントを参照してください。具体的には、概要を把握するには『Rock Admin Hero Guide』の「CMS 設定」セクションから始めることをお勧めします。また、 『Designing and Building Websites Using Rock』で詳細を確認することもできます。

ページとルートを作成したら、 そのページに「カスタムログイン」ブロックを追加する必要があります。このブロックは、 「Triumph Tech」>「Entra」カテゴリにあります。

ブロックをページに追加した後、 そのブロックで以下の設定を行う必要があります:

  • ログインオプション一覧
    • このオプションを使用すると、ボタンのテキスト(左側)を指定し、URL または認証プロバイダーのタイプ名(右側)を入力することで、複数のログイン方法を設定できます。ユーザーが Entra 経由でログインできるようにするには、Entra 認証プロバイダーの完全なタイプ名である「tech.triumph.AzureAD.Security.Authentication.AzureAD」を入力する必要があります。
  • 成功ページ
    • URLにreturnパラメータが指定されていない場合、ログインに成功するとユーザーはここにリダイレクトされます。returnパラメータが指定されている場合は、ユーザーはそのページにリダイレクトされます(標準のログインと同様です)。
  • ページ表示に失敗しました
    • ログインに失敗した場合、ユーザーはここにリダイレクトされます。

注記

このブロックは他のログイン方法にも対応するように設計されていますが、ここではEntraのみを使用しています。

リリースノート

  • v1.8
    • URLにreturnパラメータが指定されている場合でも、ログインに成功すると常に成功ページにリダイレクトされてしまう問題を修正しました。
    • ログインに成功した後のリダイレクト時に、リターンURLが二重にエンコードされてしまう問題を修正しました。
  • v1.7
    • Rockにすでに登録されているEntraユーザー向けのマッチング機能が改善されました。
  • v1.6
    • Microsoftによる名称変更に合わせて、「Azure AD」を「Entra」に更新しました。
  • v1.5
    • プラグインの設定ページでタイムアウトが発生する問題に対し、より信頼性の高い修正を適用しました。
  • v1.4
    • プラグインの設定ページが読み込まれず、最終的にタイムアウトしてしまう問題を修正しました。
  • v1.3
    • 二要素認証のサポートを追加しました。