For the complete documentation index, see llms.txt. This page is also available as Markdown.

MFA 安全ユーザーをグループに同期(スケジュール)

安全な MFA メソッドを登録済みのユーザーを Entra ID グループに同期します

これはスケジュール実行される runbook です。単一のオブジェクトでトリガーされるのではなく、定期的なスケジュールで実行されるように設計されています。詳細は スケジューリング runbook のスケジュールを設定する方法の詳細を参照してください。

説明

この runbook は、Entra ID の認証方法登録レポートに基づいて、少なくとも 1 つの「secure」認証方法が登録されているすべてのメンバー ユーザーと Entra ID グループを同期します。どの方法グループを secure と見なすかは、トグル(Passkeys/FIDO2、platform credentials、Microsoft Authenticator アプリ、software OTP、hardware OTP、証明書ベース認証)で設定できます。secure 方法がもう登録されていないユーザーはグループから削除されます。任意の strict mode(「SecureOnly」)では、secure 方法に加えて unsecure 方法(電話、メール、セキュリティの質問)が登録されているユーザーも対象外になります。管理者ユーザー(Entra ID ディレクトリ ロールの保有者。アクティブまたは PIM 対象を含み、ロール割り当て可能グループのメンバーも含む)は既定で除外されます(「ExcludeAdmins」)- 対象グループが SSPR を駆動している場合、管理者が 2 つ目の要素の登録を強制されるのを避けるのに有用です。任意の除外グループにより、break glass や service アカウントのようなアカウントを対象グループから恒久的に外せます。個々のユーザーは、複数ユーザー ピッカー(「ExcludeUserIds」)で直接除外することもできます。除外されたユーザーは決して追加されず、すでにメンバーなら削除されます。ゲスト ユーザーとユーザー以外のグループ メンバーは一切変更されません。

必要に応じて、詳細レポートをメールで送信したり、Azure Storage Account にアップロードしたりできます(期間限定のダウンロード リンクを返します)。レポートには CSV ファイルと、情報用のカバー シート(選択したパラメーターと結果件数)、実施された変更、すべてのメンバー ユーザーのユーザーごとの評価を含む整形済み Excel ブックが含まれます。レポート ファイルは、メールまたはダウンロード リンクが有効な場合のみ生成されます。

仕組み

この runbook は Entra ID の 認証方法登録レポート (userRegistrationDetailsを読み取り、対象グループをすべての メンバー ユーザー に対してミラーリングします:

  • ユーザーは、登録済みの方法の少なくとも 1 つが、設定された secure セットに含まれる場合に対象になります。

  • strict mode では、 (SecureOnlyが有効な場合、ユーザーはさらに unsecure セットのいずれの方法も登録していてはなりません — たとえば、パスキー ユーザーが SMS 要素も保持している場合は対象外です。

  • グループ メンバーではない対象ユーザーは追加され、もはや対象でないメンバーは削除されます(ミラー同期)。

  • ゲスト ユーザーは追加も削除もされません。ユーザー以外のグループ メンバー(デバイス、サービス プリンシパル、ネストされたグループ)は一切変更されません。

対象グループはこの runbook のみで管理する必要があります。

secure 方法グループ

各トグルは、どの methodsRegistered 値を secure と見なすかを制御します:

トグル
既定
対象の値

Passkeys / FIDO2 security keys

on

fido2SecurityKey, passKeyDeviceBound, passKeyDeviceBoundAuthenticator

プラットフォーム資格情報

on

windowsHelloForBusiness, passKeyDeviceBoundWindowsHello, macOsSecureEnclaveKey

Microsoft Authenticator アプリ

on

microsoftAuthenticatorPush, microsoftAuthenticatorPasswordless

Software OTP

off

softwareOneTimePasscode

Hardware OTP

off

hardwareOneTimePasscode

証明書ベース認証

on

certificateBasedAuthentication

Strict mode (SecureOnly)

strict mode を有効にすると、以下の組み込み unsecure 方法のいずれかが登録されているユーザーは決して対象になりません:

mobilePhone, alternateMobilePhone, officePhone, email, securityQuestion

ある方法が secure と unsecure の両方のセットに入ってしまった場合(オーバーライド パラメーターでのみ可能)、unsecure が優先されます — そのようなユーザーは strict mode では決して対象になりません。runbook は起動時にこれを警告します。

除外

除外されたユーザーは、登録済みの方法に関係なく決して対象になりません。対象グループに追加されることはなく、すでにメンバーであれば削除されます。ユーザーごとのレポートには、理由が ExclusionReason 列に表示されます。

管理者ユーザーを除外する(ExcludeAdmins、既定でオン)

Entra ID ディレクトリ ロールを保有するユーザーは除外されます。これには次が含まれます:

  • アクティブなロール割り当て (roleManagement/directory/roleAssignments)

  • PIM 対象の割り当て (roleManagement/directory/roleEligibilitySchedules、Entra ID P2 が必要です — P2 がない場合、runbook はアクティブな割り当てにフォールバックし、警告を記録します)

  • ロール割り当て可能グループ: ロールを保持するグループは、その推移的なユーザー メンバーまで展開されます

背景: 対象グループが SSPR を駆動し、SSPR 管理者ポリシーが無効になっている場合でも、グループ内の管理者は、2 つの SSPR 方法が必要になると、2 つ目の要素の登録を強制されます。管理者をグループ外に保つことでこれを回避できます。

このオプションには、マネージド ID に対して追加の Graph 権限 RoleManagement.Read.Directory が必要です。

除外グループ(ExcludeGroupId、任意)

設定されたグループの推移的なユーザー メンバーは除外されます — たとえば break glass アカウント または サービス アカウントのように、この同期で決して管理されるべきではないアカウント向けです。ネストされたグループは考慮されます。除外グループは対象グループそのものであってはなりません。

個別に除外されたユーザー(ExcludeUserIds、任意)

個々のユーザーは、複数ユーザー ピッカーで直接除外できます — 専用の除外グループを維持するほどでもない一時的な除外向けです。リストにはユーザーの オブジェクト ID および ユーザー プリンシパル名 (UPN)を指定できます。解決できない項目(削除済みアカウントなど)は警告を記録して無視されるため、古い項目が原因でスケジュール同期が失敗することはありません。

Runbook Customization による除外の管理(ピッカーを使わない場合)

両方の除外パラメーターは、 JSON ベースの Runbook Customization (RealmJoin ポータル: 設定Runbook Customizations)で事前に一元設定できます — 除外がテナント内で固定されており、runbook を開始またはスケジュールするたびに手動で選択したくない場合に便利です:

  • ExcludeGroupId 単一のグループ オブジェクト ID (GUID)をプレーン文字列として受け取ります — Entra admin center または RealmJoin ポータルのグループ概要ページからコピーしてください。

  • ExcludeUserIds JSON の 文字列配列を受け取ります; 各項目はユーザー オブジェクト ID または UPNにできます。項目はトリムされ、重複は除去されます。runbook は起動時にそれらを解決します。

  • 推奨: Runbook Customization で除外を管理する場合は、 "Hide": true パラメーターでも設定してください(上の例のとおり)。これにより開始フォームから完全に削除されるため、一元設定された除外を runbook の開始時やスケジュール時に UI で上書きできなくなります。 Hideがない場合、設定値は事前入力されて表示されるだけで、そこで変更することも引き続き可能です。

方法分類リファレンス

カンマ区切りのオーバーライド文字列を作成する際は、この表の正確な Graph 値を使用してください:

methodsRegistered

表示名

分類

トグルでカバー(既定)

fido2SecurityKey

FIDO2 security key

Secure

Passkeys / FIDO2 (on)

passKeyDeviceBound

Passkey (device-bound)

Secure

Passkeys / FIDO2 (on)

passKeyDeviceBoundAuthenticator

Microsoft Authenticator のパスキー

Secure

Passkeys / FIDO2 (on)

windowsHelloForBusiness

Windows Hello for Business

Secure

Platform credentials (on)

passKeyDeviceBoundWindowsHello

Windows Hello のパスキー

Secure

Platform credentials (on)

macOsSecureEnclaveKey

macOS 用プラットフォーム資格情報

Secure

Platform credentials (on)

microsoftAuthenticatorPush

Microsoft Authenticator(プッシュ通知)

Secure

Microsoft Authenticator アプリ(on)

microsoftAuthenticatorPasswordless

Microsoft Authenticator(パスワードなしの電話サインイン)

Secure

Microsoft Authenticator アプリ(on)

softwareOneTimePasscode

ソフトウェア OATH トークン(TOTP アプリ)

Secure

Software OTP(off)

hardwareOneTimePasscode

ハードウェア OATH トークン

Secure

Hardware OTP(off)

certificateBasedAuthentication

証明書ベース認証

Secure

Certificate-based authentication(on)

mobilePhone

電話(SMS / 音声通話)

Unsecure

組み込みの unsecure 一覧

alternateMobilePhone

代替電話(音声通話)

Unsecure

組み込みの unsecure 一覧

officePhone

会社の電話(音声通話)

Unsecure

組み込みの unsecure 一覧

email

メール(SSPR のみ)

Unsecure

組み込みの unsecure 一覧

securityQuestion

セキュリティの質問(SSPR のみ)

Unsecure

組み込みの unsecure 一覧

temporaryAccessPass

Temporary Access Pass

Neutral

決して対象にならない、決して除外されない

未知または将来の Graph 値は、オーバーライド パラメーターで明示的に列挙されていない限り、neutral として扱われます。

オーバーライド パラメーター

両方のオーバーライド パラメーターは既定で非表示であり、RealmJoin runbook カスタマイズ向けです:

  • SecureMethodsOverride — secure セットを定義する methodsRegistered 値のカンマ区切りリスト。設定すると、 すべての 方法グループのトグルは無視されます。例: fido2SecurityKey,passKeyDeviceBound,passKeyDeviceBoundAuthenticator,windowsHelloForBusiness

  • UnsecureMethodsOverride — 組み込みの unsecure 一覧を置き換えるカンマ区切りリスト。strict mode でのみ評価されます。例: mobilePhone,alternateMobilePhone,officePhone,email,securityQuestion,softwareOneTimePasscode

未知の値は警告を生成しますが、それでも評価されるため、この документация が追いつく前に将来の Graph 値を使用できます。

メール レポートとダウンロード リンク

必要に応じて、詳細レポートを配信できます - 特に最初の実行を確認するのに有用です(できれば dry run mode と組み合わせてください):

  • メールでレポートを送信 (SendEmail、既定でオフ): レポートを設定された受信者に送信します。受信者フィールドは、メールが有効な場合にのみ表示されます。 RJReport.EmailSender テナント設定 メール レポートの設定).

  • ファイル ダウンロード リンクを作成 (CreateDownloadLink、既定でオフ): レポート ファイルを Azure Storage Account にアップロードし、期間限定のダウンロード リンクを返します( RJReport.StorageAccount.* テナント設定を使用します)。

レポート ファイルは、2 つのオプションの少なくとも 1 つが有効な場合にのみ生成されます。レポートの内容は次のとおりです:

  • mfa-secure-users-group-sync-changes.csv - 実施済み(dry run では保留中)の変更すべてと、ユーザーごとの方法の詳細

  • mfa-secure-users-group-sync-all-users.csv - すべてのメンバー ユーザーの評価: 登録済み方法、secure/unsecure 分類、対象可否、除外理由、グループ メンバーシップ

  • mfa-secure-users-group-sync-report.xlsx - 同じデータを整形済み Excel ブックとして出力したもの: 選択したパラメーターと結果件数を含む「Info」カバー シート、「Changes」ワークシート(追加ユーザーは緑、削除ユーザーは赤で強調表示)、および「All Users」ワークシート

大きなテナントでは、元の CSV ファイルがメール添付サイズの上限を超えることがあります(Graph は合計約 4 MB でメールを拒否します)。CSV ファイルが 2.5 MB の予算を超える場合、メールには Excel ブックのみが添付されます(圧縮形式で完全なデータを含みます)。また、除外理由を説明する注記が付きます。フルサイズ送信が失敗した場合も、自動的にブックのみで再試行されます。ダウンロード リンクのアップロードには、サイズに関係なく常にすべてのファイルが含まれます。

注意事項と制限

  • 登録レポートには Entra ID P1 または P2 ライセンスが必要です。

  • PIM 対象のロール割り当て(管理者除外)には Entra ID P2 ライセンスが必要です — これがない場合、アクティブなロール割り当てのみが除外されます。

  • レポートには 無効化された ユーザーまたは soft-delete されたユーザーは含まれません — そのようなアカウントは次回の実行でグループから削除されます。

  • レポート データは、最近の登録変更に対して遅延することがあります。新しく登録された方法が反映されるまでに 1 つの同期サイクルを要する場合があります。

  • この runbook は、ページ分割されたレポート読み取りと自動スロットリング再試行付きのバッチ グループ書き込みにより、大規模テナント(20k+ ユーザー)を処理します。

スケジューリング

同期は冪等です — 単一の定期スケジュール(たとえば毎日)でグループを最新に保てますし、一部失敗後の再実行は自己修復します。推奨: まず Dry run (WhatIf) を有効にして 1 回実行し、ライブ モードで runbook をスケジュールする前にジョブ出力を確認してください。

場所

Organization → Security → Sync MFA Secure Users To Group (Scheduled)

Runbook の完全名

rjgit-org_security_sync-MFA-secure-users-to-group_scheduled

詳細

プロパティ

バージョン

1.3.0

必須モジュール

RealmJoin.RunbookHelper (>= 0.8.7)\nMicrosoft.Graph.Authentication (>= 2.39.0)\nAz.Accounts (>= 5.5.0)

スケジュール可能

はい

権限

アプリケーション権限

  • 種類: Microsoft Graph

    • AuditLog.Read.All

    • Group.Read.All

    • RoleManagement.Read.Directory

    • GroupMember.ReadWrite.All

    • User.Read.All

    • Organization.Read.All

    • Mail.Send

パラメーター

TargetGroupId

同期先となる Entra ID グループ。このグループのメンバーは、この runbook によってのみ管理されます。

プロパティ

必須

true

既定値

種類

文字列

ポータル表示名

Target Group (sync users with secure MFA methods into)

IncludePasskeys

パスキーと FIDO2 security keys を secure として数える(fido2SecurityKey, passKeyDeviceBound, passKeyDeviceBoundAuthenticator)。

プロパティ

必須

false

既定値

種類

ブール値

ポータル表示名

Passkeys / FIDO2 security keys は secure として数えます

IncludePlatformCredentials

プラットフォーム資格情報を secure として数える(windowsHelloForBusiness, passKeyDeviceBoundWindowsHello, macOsSecureEnclaveKey)。

プロパティ

必須

false

既定値

種類

ブール値

ポータル表示名

プラットフォーム資格情報(Windows Hello for Business / macOS Secure Enclave)は secure として数えます

IncludeMicrosoftAuthenticator

Microsoft Authenticator アプリを secure として数える(microsoftAuthenticatorPush, microsoftAuthenticatorPasswordless)。

プロパティ

必須

false

既定値

種類

ブール値

ポータル表示名

Microsoft Authenticator アプリ(プッシュ / パスワードなしサインイン)は secure として数えます

IncludeSoftwareOtp

ソフトウェア OTP / 認証アプリの TOTP を secure として数える(softwareOneTimePasscode)。

プロパティ

必須

false

既定値

いいえ

種類

ブール値

ポータル表示名

Software OTP(認証アプリの TOTP)は secure として数えます

IncludeHardwareOtp

ハードウェア OTP トークンを secure として数える(hardwareOneTimePasscode)。

プロパティ

必須

false

既定値

いいえ

種類

ブール値

ポータル表示名

ハードウェア OTP トークンは secure として数えます

IncludeCertificateBasedAuth

証明書ベース認証を secure として数える(certificateBasedAuthentication)。

プロパティ

必須

false

既定値

種類

ブール値

ポータル表示名

証明書ベース認証は secure として数えます

SecureOnly

Strict mode: unsecure 方法(mobilePhone, alternateMobilePhone, officePhone, email, securityQuestion)のいずれかが登録されているユーザーは、secure 方法も持っていても決して対象になりません。すでにメンバーであればグループから削除されます。

プロパティ

必須

false

既定値

いいえ

種類

ブール値

ポータル表示名

Strict mode: unsecure 方法(電話、メール、セキュリティの質問)があるユーザーは決して対象になりません

SecureMethodsOverride

任意。secure セットを定義する methodsRegistered 値のカンマ区切りリスト。設定すると、すべての方法グループ トグルは無視されます。既知の値はすべて runbook ドキュメントを参照してください。

プロパティ

必須

false

既定値

種類

文字列

ポータル表示名

上級者向け: カスタム secure 方法リスト(カンマ区切り、上のすべてのトグルを置き換え)

ポータルで非表示

はい(runbook のカスタマイズで事前設定)

UnsecureMethodsOverride

任意。組み込みの unsecure リストを置き換える methodsRegistered 値のカンマ区切りリスト。strict mode(SecureOnly)でのみ評価されます。

プロパティ

必須

false

既定値

種類

文字列

ポータル表示名

上級者向け: カスタム unsecure 方法リスト(カンマ区切り、組み込みリストを置き換え)

ポータルで非表示

はい(runbook のカスタマイズで事前設定)

ExcludeAdmins

管理者ユーザーの除外: Entra ID ディレクトリ ロールの保有者(アクティブまたは PIM 対象、ロール割り当て可能グループのメンバーを含む)は決して対象にならず、すでにメンバーであればグループから削除されます。既定で有効です - 対象グループが SSPR を駆動する場合、管理者は 2 つ目の要素の登録を強制されることになります。

プロパティ

必須

false

既定値

種類

ブール値

ポータル表示名

管理者ユーザーを除外する(ディレクトリ ロール保有者、PIM 対象を含む)

ExcludeGroupId

任意の除外グループ: このグループの推移的なユーザー メンバー(たとえば break glass や service アカウント)は決して対象にならず、すでにメンバーであればグループから削除されます。

プロパティ

必須

false

既定値

種類

文字列

ポータル表示名

除外グループ(メンバーは対象グループに同期されません)

ExcludeUserIds

個別に除外するユーザーの任意リスト: これらのユーザーは決して対象にならず、すでにメンバーであればグループから削除されます。ユーザー オブジェクト ID とユーザー プリンシパル名を受け付けます。解決できない項目は警告付きで無視されます。

プロパティ

必須

false

既定値

@()

種類

String[]

ポータル表示名

除外されたユーザー(対象グループに同期されません)

WhatIfMode

Dry run: グループを変更せずに、どのユーザーが追加または削除されるかを記録します。

プロパティ

必須

false

既定値

いいえ

種類

ブール値

ポータル表示名

Dry run(記録のみ、変更なし)

SendEmail

有効にすると、CSV および Excel(xlsx)添付付きでメール送信されます。既定では無効です。

プロパティ

必須

false

既定値

いいえ

種類

ブール値

ポータル表示名

メールでレポートを送信しますか?

ポータルオプション

ポータルオプション

はい - レポートをメールで送信する

いいえ - メールを送信しない

EmailTo

レポートの受信先メール アドレス。単一のアドレスでも、カンマ区切りの複数アドレスでも指定できます(文字列)。SendEmail が有効な場合のみ使用されます。

プロパティ

必須

false

既定値

種類

文字列

ポータル表示名

受信者のメールアドレス

EmailFrom

送信元メール アドレス。RJReport のテナント設定から取得されます。

プロパティ

必須

false

既定値

種類

文字列

ポータルで非表示

はい(runbook のカスタマイズで事前設定)

ReportFileFormat

生成および配信されるレポートのファイル形式を制御します: 「CSV のみ」、「CSV と XLSX」(既定)、または「XLSX のみ」。

プロパティ

必須

false

既定値

CSV と XLSX

種類

文字列

ポータル表示名

レポート ファイル形式

ポータルで非表示

はい(runbook のカスタマイズで事前設定)

ポータルオプション

ポータルオプション

CSV と XLSX

CSV のみ

XLSX のみ

有効にすると、レポート ファイルは Azure Storage Account にアップロードされ、期限付きのダウンロード リンクが返されます。既定では無効です。

プロパティ

必須

false

既定値

いいえ

種類

ブール値

ポータル表示名

ファイル ダウンロード リンクを作成しますか(レポートをストレージにアップロード)?

ポータルオプション

ポータルオプション

はい - レポートをアップロードしてダウンロード リンクを返す

いいえ - ダウンロード リンクを作成しない

ContainerName

アップロードに使用するストレージ コンテナー名。runbook ごとに構成されます(グローバルな RJReport 設定ではありません)。

プロパティ

必須

false

既定値

sync-mfa-secure-users-to-group

種類

文字列

ポータルで非表示

はい(runbook のカスタマイズで事前設定)

ResourceGroupName

Storage Account を含むリソース グループ。RJReport Tenant 設定から取得されます。

プロパティ

必須

false

既定値

種類

文字列

ポータルで非表示

はい(runbook のカスタマイズで事前設定)

StorageAccountName

アップロードに使用する Storage Account 名。RJReport Tenant 設定から取得されます。

プロパティ

必須

false

既定値

種類

文字列

ポータルで非表示

はい(runbook のカスタマイズで事前設定)

LinkExpiryDays

生成されたダウンロード リンクの有効期限が切れるまでの日数。RJReport Tenant 設定から取得されます。

プロパティ

必須

false

既定値

6

種類

Int32

ポータルで非表示

はい(runbook のカスタマイズで事前設定)

最終更新

役に立ちましたか?