Exchange Online で基本認証を無効にする

重要

2022 年 12 月から、従来の Exchange 管理センターは世界中のお客様向けに非推奨となりました。 Microsoft では、 新しい Exchange 管理センターを使用することをお勧めします (まだ使用していない場合)。

ほとんどの機能は新しい EAC に移行されていますが、一部の機能は他の管理センターに移行され、残りの機能は間もなく新しい EAC に移行されます。 その他の機能で新しい EAC にまだ存在しない機能を検索するか 新しい EAC 間を移動するのに役立つグローバル検索を使用します。

注:

組織で セキュリティの既定値を 有効にしている場合は、Exchange Online で基本認証が既に無効になっています。 詳細については、「 Microsoft Entra ID のセキュリティの既定値」を参照してください。

テナントで基本認証が機能していないためにこのページに到達し、セキュリティの既定値または認証ポリシーを設定していない場合は、Exchange Online 全体のセキュリティを向上させるために、広範なプログラムの一環としてテナントの基本認証を無効にしている可能性があります。 メッセージ センターで基本認証に関する投稿がないか確認し、基本認証に関する最新のお知らせについては、「 基本認証と Exchange Online 」を参照してください。

Exchange Online の基本認証では、クライアント アクセス要求にユーザー名とパスワードが使用されます。 基本認証をブロックすると、Exchange Online 組織をブルート フォース攻撃やパスワード スプレー攻撃から保護できます。 Exchange Online でユーザーの基本認証を無効にする場合、メール クライアントとアプリは先進認証をサポートする必要があります。 これらのクライアントは次のとおりです。

組織に従来のメール クライアントがない場合は、Exchange Online で認証ポリシーを使用して基本認証要求を無効にすることができます。 基本認証を無効にすると、すべてのクライアント アクセス要求で先進認証が強制的に使用されます。 先進認証の詳細については、「 Office クライアントでの先進認証の使用」を参照してください。

このトピックでは、Exchange Online での基本認証の使用方法とブロック方法、および認証ポリシーに対応する手順について説明します。

Exchange Online での基本認証のしくみ

基本的な認証は、電子メール クライアントがユーザー名とパスワードを Exchange Online に送信し、Exchange Online が電子メール クライアントまたはアプリの代わりに資格情報を信頼できる ID プロバイダー (IdP) に転送またはプロキシするため、プロキシ認証とも呼ばれます。 IdP は、組織の認証モデルによって異なります。

  • クラウド認証: IdP は Microsoft Entra ID です。
  • フェデレーション認証: IdP は、Active Directory フェデレーション サービス (AD FS) などのオンプレミス ソリューションです。

これらの認証モデルについては、次のセクションで説明します。 詳細については、「 Microsoft Entra ハイブリッド ID ソリューションに適した認証方法を選択する」を参照してください。

クラウド認証

クラウド認証の手順については、次の図を参照してください。

クラウドベースの認証の基本的な手順と、基本認証がブロックされている場所。

  1. メール クライアントは、ユーザー名とパスワードを Exchange Online に送信します。

    : 基本認証がブロックされると、この手順ではブロックされます。

  2. Exchange Online は、ユーザー名とパスワードを Microsoft Entra ID に送信します。

  3. Microsoft Entra ID は、Exchange Online にユーザー チケットを返し、ユーザーが認証されます。

フェデレーション認証

フェデレーション認証の手順については、次の図を参照してください。

フェデレーション認証の基本的な手順と、基本認証がブロックされている場所。

  1. メール クライアントは、ユーザー名とパスワードを Exchange Online に送信します。

    : 基本認証がブロックされると、この手順ではブロックされます。

  2. Exchange Online は、ユーザー名とパスワードをオンプレミスの IdP に送信します。

  3. Exchange Online は、オンプレミスの IdP からセキュリティ アサーション マークアップ言語 (SAML) トークンを受け取ります。

  4. Exchange Online は、SAML トークンを Microsoft Entra ID に送信します。

  5. Microsoft Entra ID は、Exchange Online にユーザー チケットを返し、ユーザーが認証されます。

Exchange Online での基本認証のブロック方法

Exchange Online で基本認証をブロックするには、個々のユーザーに認証ポリシーを作成して割り当てます。 ポリシーは、基本認証がブロックされるクライアント プロトコルを定義し、ポリシーを 1 人以上のユーザーに割り当てると、指定したプロトコルに対する基本認証要求がブロックされます。

ブロックされると、要求が Microsoft Entra ID またはオンプレミス IdP に到達する前に、最初の事前認証手順 (前の図の手順 1) で Exchange Online の基本認証がブロックされます。 この方法の利点は、ブルート フォース攻撃またはパスワード スプレー攻撃が IdP に到達しないことです (不正なログイン試行が原因でアカウントのロックアウトがトリガーされる可能性があります)。

認証ポリシーはユーザー レベルで動作するため、Exchange Online では、クラウド組織に存在するユーザーに対する基本認証要求のみをブロックできます。 フェデレーション認証の場合、ユーザーが Exchange Online に存在しない場合、ユーザー名とパスワードはオンプレミスの IdP に転送されます。 たとえば、次のようなシナリオについて考えてみます。

  1. 組織はフェデレーション ドメイン contoso.com を持ち、認証にオンプレミスの AD FS を使用します。

  2. ユーザー ian@contoso.com はオンプレミス組織に存在しますが、Office 365 または Microsoft 365 には存在しません (Microsoft Entra ID にはユーザー アカウントがなく、Exchange Online のグローバル アドレス一覧には受信者オブジェクトがありません)。

  3. 電子メール クライアントは、ユーザー名を ian@contoso.comして Exchange Online にログイン要求を送信します。 認証ポリシーをユーザーに適用することはできません。また、 ian@contoso.com の認証要求はオンプレミスの AD FS に送信されます。

  4. オンプレミスの AD FS は、 ian@contoso.comの認証要求を受け入れるか拒否できます。 要求が受け入れられた場合、SAML トークンが Exchange Online に返されます。 SAML トークンの ImmutableId 値が Microsoft Entra ID のユーザーと一致する限り、Microsoft Entra ID は Exchange Online にユーザー チケットを発行します ( ImmutableId 値は Microsoft Entra Connect のセットアップ中に設定されます)。

このシナリオでは、contoso.com が認証にオンプレミスの AD FS サーバーを使用する場合、オンプレミスの AD FS サーバーは、パスワード スプレー攻撃中に Exchange Online から存在しないユーザー名の認証要求を受け取ります。

Exchange ハイブリッド展開では、オンプレミスのメールボックスの認証はオンプレミスの Exchange サーバーによって処理され、認証ポリシーは適用されません。 Exchange Online に移動されたメールボックスの場合、自動検出サービスによって Exchange Online にリダイレクトされ、以前のシナリオの一部が適用されます。

Exchange Online での認証ポリシーの手順

Exchange Online PowerShell では、認証ポリシーのすべての側面を管理します。 基本認証をブロックできる Exchange Online のプロトコルとサービスを次の表に示します。

プロトコルまたはサービス 説明 パラメーター名
Exchange Active Sync (EAS) モバイル デバイス上の一部の電子メール クライアントで使用されます。 AllowBasicAuthActiveSync
自動検出 Outlook および EAS クライアントが Exchange Online のメールボックスを検索して接続するために使用します AllowBasicAuthAutodiscover
IMAP4 IMAP メール クライアントで使用されます。 AllowBasicAuthImap
MAPI over HTTP (MAPI/HTTP) Outlook 2010 以降で使用されます。 AllowBasicAuthMapi
オフラインアドレス帳 (OAB) Outlook によってダウンロードおよび使用されるアドレス一覧コレクションのコピー。 AllowBasicAuthOfflineAddressBook
Outlook Service Windows 10 のメールと予定表アプリで使用されます。 AllowBasicAuthOutlookService
POP3 POP メール クライアントで使用されます。 AllowBasicAuthPop
Web サービスのレポート Exchange Online でレポート データを取得するために使用されます。 AllowBasicAuthReportingWebServices
Outlook Anywhere (RPC over HTTP) Outlook 2016 以前で使用されます。 AllowBasicAuthRpc
認証済み SMTP POP クライアントと IMAP クライアントが電子メール メッセージを送信するために使用します。 AllowBasicAuthSmtp
Exchange Web サービス (EWS) Outlook、Outlook for Mac、およびサード パーティ製アプリで使用されるプログラミング インターフェイス。 AllowBasicAuthWebServices
PowerShell リモート PowerShell を使用して Exchange Online に接続するために使用されます。 手順については、「Exchange Online PowerShell に接続する」を参照してください。 AllowBasicAuthPowerShell

通常、ユーザーの基本認証をブロックする場合は、すべてのプロトコルの基本認証をブロックすることをお勧めします。 ただし、New-AuthenticationPolicy コマンドレットと Set-AuthenticationPolicy コマンドレットで AllowBasicAuth* パラメーター (スイッチ) を使用して、特定のプロトコルの基本認証を選択的に許可またはブロックできます。

最新の認証をサポートしていない電子メール クライアントとアプリの場合は、必要なプロトコルとサービスの基本認証を許可する必要があります。 これらのプロトコルとサービスについては、次の表を参照してください。

クライアント プロトコルとサービス
古い EWS クライアント
  • 自動検出
  • EWS
以前の ActiveSync クライアント
  • 自動検出
  • ActiveSync
POP クライアント
  • POP3
  • 認証済み SMTP
IMAP クライアント
  • IMAP4
  • 認証済み SMTP
Outlook 2010
  • 自動検出
  • MAPI over HTTP
  • オフライン アドレス帳
  • Outlook Anywhere (RPC over HTTP)
  • Exchange Web サービス (EWS)

注:

基本認証をブロックすると、Exchange Online のアプリ パスワードがブロックされます。 アプリ パスワードの詳細については、「アプリ パスワードの作成」を参照してください。

はじめに把握しておくべき情報

  • Exchange Online 組織で先進認証が有効になっていることを確認します (既定で有効になっています)。 詳細については、「 Exchange Online で Outlook の先進認証を有効または無効にする」を参照してください。

  • 電子メール クライアントとアプリで先進認証がサポートされていることを確認します (トピックの先頭にある一覧を参照してください)。 また、Outlook デスクトップ クライアントで最低限必要な累積的な更新プログラムが実行されていることを確認します。 詳細については、「 Outlook の更新プログラム」を参照してください。

  • Exchange Online PowerShell への接続方法については、「Exchange Online PowerShell に接続する」を参照してください。

認証ポリシーを作成して適用する

Exchange Online で基本認証をブロックするための認証ポリシーを作成して適用する手順は次のとおりです。

  1. 認証ポリシーを作成します。

  2. 認証ポリシーをユーザーに割り当てます。

  3. ポリシーがユーザーに適用されるまで 24 時間待つか、ポリシーを強制的に直ちに適用します。

これらの手順については、次のセクションで説明します。

手順 1: 認証ポリシーを作成する

Exchange Online で使用可能なすべてのクライアント プロトコル (推奨される構成) の基本認証をブロックするポリシーを作成するには、次の構文を使用します。

New-AuthenticationPolicy -Name "<Descriptive Name>"

この例では、Block Basic Auth という名前の認証ポリシーを作成します。

New-AuthenticationPolicy -Name "Block Basic Auth"

構文とパラメーターの詳細については、「 New-AuthenticationPolicy」を参照してください。

:

  • ポリシーの作成後にポリシーの名前を変更することはできません (Set-AuthenticationPolicy コマンドレットでは Name パラメーターを使用できません)。

  • ポリシーで特定のプロトコルに対して基本認証を有効にするには、このトピックの後半の「 認証ポリシーの変更 」セクションを参照してください。 New-AuthenticationPolicy コマンドレットと Set-AuthenticationPolicy コマンドレットでも同じプロトコル設定を使用でき、特定のプロトコルに対して Basic 認証を有効にする手順は両方のコマンドレットで同じです。

手順 2: 認証ポリシーをユーザーに割り当てる

認証ポリシーをユーザーに割り当てるために使用できる方法については、このセクションで説明します。

  • 個々のユーザー アカウント: 次の構文を使用します。

    Set-User -Identity <UserIdentity> -AuthenticationPolicy <PolicyIdentity>
    

    次の使用例は、Block Basic Auth という名前のポリシーをユーザー アカウント laura@contoso.comに割り当てます。

    Set-User -Identity laura@contoso.com -AuthenticationPolicy "Block Basic Auth"
    
  • 属性でユーザー アカウントをフィルター処理する: この方法では、ユーザー アカウントがすべて、ユーザーを識別するために使用できる一意のフィルター可能な属性 (タイトルや部署など) を共有する必要があります。 構文では、次のコマンドを使用します (2 つ目はユーザー アカウントを識別し、もう 1 つを使用してそれらのユーザーにポリシーを適用します)。

    $<VariableName1> = Get-User -ResultSize unlimited -Filter <Filter>
    $<VariableName2> = $<VariableName1>.MicrosoftOnlineServicesID
    $<VariableName2> | foreach {Set-User -Identity $_ -AuthenticationPolicy "Block Basic Auth"}
    

    次の使用例は、 Title 属性に "Sales Associate" という値が含まれるすべてのユーザー アカウントに、Block Basic Auth という名前のポリシーを割り当てます。

    $SalesUsers = Get-User -ResultSize unlimited -Filter "(RecipientType -eq 'UserMailbox') -and (Title -like '*Sales Associate*')"
    $Sales = $SalesUsers.MicrosoftOnlineServicesID
    $Sales | foreach {Set-User -Identity $_ -AuthenticationPolicy "Block Basic Auth"}
    
  • 特定のユーザー アカウントの一覧を使用する: この方法では、ユーザー アカウントを識別するためにテキスト ファイルが必要です。 スペースを含まない値 (Office 365 や Microsoft 365 の職場または学校アカウントなど) が最適です。 テキスト ファイルには、次のように各行に 1 つのユーザー アカウントが含まれている必要があります。

    akol@contoso.com
    tjohnston@contoso.com
    kakers@contoso.com

    構文では、次の 2 つのコマンドを使用します (1 つはユーザー アカウントを識別し、もう 1 つはそれらのユーザーにポリシーを適用します)。

    $<VariableName> = Get-Content "<text file>"
    $<VariableName> | foreach {Set-User -Identity $_ -AuthenticationPolicy <PolicyIdentity>}
    

    次の使用例は、ファイル C:\My Documents\BlockBasicAuth.txt で指定されたユーザー アカウントに、Block Basic Auth という名前のポリシーを割り当てます。

    $BBA = Get-Content "C:\My Documents\BlockBasicAuth.txt"
    $BBA | foreach {Set-User -Identity $_ -AuthenticationPolicy "Block Basic Auth"}
    
  • Exchange Online に同期されるオンプレミスの Active Directory ユーザー アカウントをフィルター処理する: 詳細については、このトピックの「 Exchange Online に同期されるオンプレミスの Active Directory ユーザー アカウントをフィルター処理する 」セクションを参照してください。

注:

ユーザーからポリシーの割り当てを削除するには、Set-User コマンドレットの AuthenticationPolicy パラメーターに$null値を使用します。

手順 3: (省略可能) 認証ポリシーをユーザーに直ちに適用する

既定では、ユーザーに対する認証ポリシーの割り当てを作成または変更したり、ポリシーを更新したりすると、変更は 24 時間以内に有効になります。 ポリシーを 30 分以内に有効にする場合は、次の構文を使用します。

Set-User -Identity <UserIdentity> -STSRefreshTokensValidFrom $([System.DateTime]::UtcNow)

この例では、認証ポリシーをユーザー laura@contoso.comに直ちに適用します。

Set-User -Identity laura@contoso.com -STSRefreshTokensValidFrom $([System.DateTime]::UtcNow)

この例では、フィルター可能な属性またはテキスト ファイルによって以前に識別された複数のユーザーに認証ポリシーを直ちに適用します。 この例は、まだ同じ PowerShell セッションにいて、ユーザーを識別するために使用した変数を変更していない場合に機能します (後で他の目的で同じ変数名を使用しませんでした)。 例:

$Sales | foreach {Set-User -Identity $_ -STSRefreshTokensValidFrom $([System.DateTime]::UtcNow)}

または

$BBA | foreach {Set-User -Identity $_ -STSRefreshTokensValidFrom $([System.DateTime]::UtcNow)}

認証ポリシーを表示する

既存のすべての認証ポリシーの名前の概要一覧を表示するには、次のコマンドを実行します。

Get-AuthenticationPolicy | Format-Table Name -Auto

特定の認証ポリシーに関する詳細情報を表示するには、次の構文を使用します。

Get-AuthenticationPolicy -Identity <PolicyIdentity>

この例では、Block Basic Auth という名前のポリシーに関する詳細情報を返します。

Get-AuthenticationPolicy -Identity "Block Basic Auth"

構文とパラメーターの詳細については、「 Get-AuthenticationPolicy」を参照してください。

認証ポリシーを変更する

既定では、プロトコルを指定せずに新しい認証ポリシーを作成すると、Exchange Online のすべてのクライアント プロトコルに対して基本認証がブロックされます。 つまり、 AllowBasicAuth* パラメーター (スイッチ) の既定値は、すべてのプロトコルに対して False されます。

  • 無効になっている特定のプロトコルに対して基本認証を有効にするには、値を指定せずにスイッチを指定します。

  • 有効になっている特定のプロトコルの基本認証を無効にするには、値 :$falseのみを使用できます。

Get-AuthenticationPolicy コマンドレットを使用すると、ポリシー内の AllowBasicAuth* スイッチの現在の状態を確認できます。

この例では、POP3 プロトコルの基本認証を有効にし、Block Basic Auth という名前の既存の認証ポリシーで IMAP4 プロトコルの基本認証を無効にします。

Set-AuthenticationPolicy -Identity "Block Basic Auth" -AllowBasicAuthPop -AllowBasicAuthImap:$false

構文とパラメーターの詳細については、「 Set-AuthenticationPolicy」を参照してください。

既定の認証ポリシーを構成する

既定の認証ポリシーは、特定のポリシーがまだ割り当てられないすべてのユーザーに割り当てられます。 ユーザーに割り当てられた認証ポリシーは、既定のポリシーよりも優先されることに注意してください。 組織の既定の認証ポリシーを構成するには、次の構文を使用します。

Set-OrganizationConfig -DefaultAuthenticationPolicy <PolicyIdentity>

この例では、Block Basic Auth という名前の認証ポリシーを既定のポリシーとして構成します。

Set-OrganizationConfig -DefaultAuthenticationPolicy "Block Basic Auth"

注:

既定の認証ポリシー指定を削除するには、DefaultAuthenticationPolicy パラメーターに$null値を使用します。

次の例を使用して、既定の認証ポリシーが構成されていることを確認します。

Get-OrganizationConfig | Format-Table DefaultAuthenticationPolicy

認証ポリシーを削除する

既存の認証ポリシーを削除するには、次の構文を使用します。

Remove-AuthenticationPolicy -Identity <PolicyIdentity>

この例では、Test Auth Policy という名前のポリシーを削除します。

Remove-AuthenticationPolicy -Identity "Test Auth Policy"

構文とパラメーターの詳細については、「 Remove-AuthenticationPolicy」を参照してください。

Exchange Online で基本認証が正常に無効にされたことを確認するにはどうすればよいですか?

認証ポリシーがユーザーに直接適用されたことを確認するには、

注:

既定の認証ポリシーが既に構成されている可能性があることを考慮してください。 詳細については、「 既定の認証ポリシーを構成 する」を参照してください。

  1. 次のコマンドを実行して、認証ポリシーの識別名 (DN) 値を検索します。

    Get-AuthenticationPolicy | Format-List Name,DistinguishedName
    
  2. 次のコマンドで、認証ポリシーの DN 値を使用します。

    Get-User -Filter "AuthenticationPolicy -eq '<AuthPolicyDN>'"
    

    例:

    Get-User -Filter "AuthenticationPolicy -eq 'CN=Block Basic Auth,CN=Auth Policies,CN=Configuration,CN=contoso.onmicrosoft.com,CN=ConfigurationUnits,DC=NAMPR11B009,DC=PROD,DC=OUTLOOK,DC=COM'"
    

認証ポリシーが Exchange Online の特定のプロトコルに対する特定のユーザーからの基本認証要求をブロックすると、応答は 401 Unauthorizedされます。 ブロックされたユーザーに関する追加情報が漏洩しないように、クライアントに追加情報は返されません。 応答の例を次に示します。

HTTP/1.1 401 Unauthorized
Server: Microsoft-IIS/10.0
request-id: 413ee498-f337-4b0d-8ad5-50d900eb1f72
X-CalculatedBETarget: DM5PR2101MB0886.namprd21.prod.outlook.com
X-BackEndHttpStatus: 401
Set-Cookie: MapiRouting=#################################################; path=/mapi/; secure; HttpOnly
X-ServerApplication: Exchange/15.20.0485.000
X-RequestId: {3146D993-9082-4D57-99ED-9E7D5EA4FA56}:8
X-ClientInfo: {B0DD130A-CDBF-4CFA-8041-3D73B4318010}:59
X-RequestType: Bind
X-DiagInfo: DM5PR2101MB0886
X-BEServer: DM5PR2101MB0886
X-Powered-By: ASP.NET
X-FEServer: MA1PR0101CA0031
WWW-Authenticate: Basic Realm="",Basic Realm=""
Date: Wed, 31 Jan 2018 05:15:08 GMT
Content-Length: 0

Microsoft 365 管理センターで基本認証を管理する

https://admin.microsoft.comの Microsoft 365 管理センターで、[設定>Org 設定>Modern Authentication] に移動します。 表示される [先進認証] ポップアップ で、Basic 認証が不要になったプロトコルを特定できます。

これらの設定では、バックグラウンドで認証ポリシーが使用されます。 認証ポリシーが過去に作成された場合、これらの選択のいずれかを変更すると、最初の新しい認証ポリシーが自動的に作成されます。 このポリシーは、PowerShell でのみ表示されます。 認証ポリシーを既に使用している可能性のある上級のお客様の場合、Microsoft 365 管理センターの変更により、既存の既定のポリシーが変更されます。 Microsoft Entra サインイン ログを確認して、変更を行う前にクライアントが使用しているプロトコルを確認します。

Microsoft 365 管理センターで [基本認証] をオフにしても、次の従来のサービスはオフになりません。

  • AllowBasicAuthOutlookService
  • AllowBasicAuthReportingWebServices

これらの設定は、Exchange Online PowerShell でのみオフにすることができます。

  1. 次のコマンドを実行して、既存の認証ポリシーの名前を見つけます。

    Get-AuthenticationPolicy
    
  2. <AuthenticationPolicyName> を前の手順の値に置き換え、次のコマンドを実行します。

    Set-AuthenticationPolicy -Identity "<AuthenticationPolicyName>" -AllowBasicAuthReportingWebServices:$false -AllowBasicAuthOutlookService:$false
    
  3. 前のコマンドは、作成する新しいメールボックスには影響しますが、既存のメールボックスには影響しません。 既存のメールボックスにポリシーを適用するには、次のコマンドで <AuthenticationPolicyName> 値を使用します。

    $mbx = Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize unlimited
    $mbx | foreach {Set-User -Identity $_.ExchangeObjectID.tostring() -AuthenticationPolicy <AuthenticationPolicyName>}
    

Exchange Online に同期されているオンプレミスの Active Directory ユーザー アカウントをフィルター処理する

このメソッドは、Exchange Online と同期されるオンプレミスの Active Directory グループ メンバーのフィルターとして、1 つの特定の属性を使用します。 この方法を使用すると、組織全体に影響を与えることなく、特定のグループのレガシ プロトコルを無効にすることができます。

この例では、部門とロールに基づいてユーザーを識別する一般的な属性であるため、 Department 属性を使用します。 すべての Active Directory ユーザー拡張プロパティを表示するには、[ Active Directory: 既定のプロパティと拡張プロパティの Get-ADUser] に移動します。

手順 1: Active Directory ユーザーを検索し、Active Directory ユーザー属性を設定する

Active Directory グループのメンバーを取得する

これらの手順では、Windows PowerShell 用の Active Directory モジュールが必要です。 このモジュールを PC にインストールするには、 リモート サーバー管理ツール (RSAT) をダウンロードしてインストールする必要があります。

Active Directory PowerShell で次のコマンドを実行して、Active Directory のすべてのグループを返します。

Get-ADGroup -Filter * | select -Property Name

グループの一覧を取得したら、それらのグループに属しているユーザーを照会し、属性のいずれかに基づいてリストを作成できます。 値はユーザーごとに一意であるため 、objectGuid 属性を使用することをお勧めします。

Get-ADGroupMember -Identity "<GroupName>" | select -Property objectGuid

次の使用例は、Developers という名前のグループのメンバーの objectGuid 属性値を返します。

Get-ADGroupMember -Identity "Developers" | select -Property objectGuid

フィルター可能なユーザー属性を設定する

ユーザーを含む Active Directory グループを特定したら、Exchange Online と同期する属性値を設定してユーザーをフィルター処理する (最終的には基本認証を無効にする) 必要があります。

Active Directory PowerShell で次の構文を使用して、前の手順で特定したグループのメンバーの属性値を構成します。 最初のコマンドは、 objectGuid 属性値に基づいてグループ メンバーを識別します。 2 番目のコマンドは、 Department 属性値をグループ メンバーに割り当てます。

$variable1 = Get-ADGroupMember -Identity "<GroupName>" | select -ExpandProperty "objectGUID"; Foreach ($user in $variable1) {Set-ADUser -Identity $user.ToString() -Add@{Department="<DepartmentName>"}}

次の使用例は、"Developers" という名前のグループに属するユーザーの値 "Developer" に Department 属性を設定します。

$variable1 = Get-ADGroupMember -Identity "Developers" | select -ExpandProperty "objectGUID"; Foreach ($user in $variable1) {Set-ADUser -Identity $user.ToString() -Add@{Department="Developer"}}

Active Directory PowerShell で次の構文を使用して、属性がユーザー アカウント (現在または過去) に適用されたことを確認します。

Get-ADUser -Filter "Department -eq '<DepartmentName>'" -Properties Department

次の使用例は、 Department 属性の値 "Developer" を持つすべてのユーザー アカウントを返します。

Get-ADUser -Filter "Department -eq 'Developer'" -Properties Department

手順 2: Exchange Online でレガシ認証を無効にする

注:

オンプレミス ユーザーの属性値は、有効な Exchange Online ライセンスを持つユーザーに対してのみ Exchange Online に同期されます。 詳細については、「 ユーザーを個別または一括で追加する」を参照してください。

Exchange Online PowerShell 構文では、次のコマンドを使用します (2 つ目はユーザー アカウントを識別し、もう 1 つのコマンドはそれらのユーザーにポリシーを適用します)。

$<VariableName1> = Get-User -ResultSize unlimited -Filter <Filter>
$<VariableName2> = $<VariableName1>.MicrosoftOnlineServicesID
$<VariableName2> | foreach {Set-User -Identity $_ -AuthenticationPolicy "Block Basic Auth"}

次の使用例は、 Department 属性に "Developer" という値が含まれる同期されたすべてのユーザー アカウントに、Block Basic Auth という名前のポリシーを割り当てます。

$developerUsers = Get-User -ResultSize unlimited -Filter "(RecipientType -eq 'UserMailbox') -and (department -like '*developer*')"
$developers = $developerUsers.MicrosoftOnlineServicesID
$developers | foreach {Set-User -Identity $_ -AuthenticationPolicy "Block Basic Auth"}

Active Directory PowerShell セッションで Exchange Online PowerShell に接続する場合は、次の構文を使用して、Active Directory グループのすべてのメンバーにポリシーを適用できます。

この例では、Marketing Policy という名前の新しい認証ポリシーを作成し、ActiveSync、POP3、認証済み SMTP、IMAP4 クライアントの Marketing Department という Active Directory グループのメンバーに対して基本認証を無効にします。

注:

Active Directory PowerShell の既知の制限により、 Get-AdGroupMember コマンドレットから 5,000 を超える結果が返されなくなります。 したがって、次の例は、メンバーが 5000 未満の Active Directory グループでのみ機能します。

New-AuthenticationPolicy -Name "Marketing Policy" -AllowBasicAuthActiveSync $false -AllowBasicAuthPop $false -AllowBasicAuthSmtp $false -AllowBasicAuthImap $false
$users = Get-ADGroupMember "Marketing Department"
foreach ($user in $users) {Set-User -Identity $user.SamAccountName -AuthenticationPolicy "Marketing Policy"}