Exchange 2016 で証明書ベースの認証を構成する

Exchange の証明書ベースの認証 (CBA) を使用すると、ユーザー名とパスワードを入力する代わりに、Outlook on the web (旧称 Outlook Web App) とExchange ActiveSyncクライアントをクライアント証明書によって認証できます。

Exchange を構成する前に、ユーザーごとにクライアント証明書を発行する必要があります。 多数の証明書が存在するため、クライアント証明書を発行および管理するためには、自動化された内部公開キー基盤 (PKI) を使用する必要があります。 自動化された内部 PKI の例として、Active Directory 証明書サービス (AD CS) が挙げられます。 AD CS の詳細については、「Active Directory 証明書サービスの概要」を参照してください。 証明書の要件に関する詳細は次のとおりです。

  • クライアント認証には、クライアント証明書 (たとえば、AD CS の既定の ユーザー証明書テンプレート) を発行する必要があります。

  • クライアント証明書には、証明書の Subject または Subject Alternative Name フィールドにユーザーのユーザー プリンシパル名 (UPN) が含まれている必要があります。

  • クライアント証明書は Active Directory のユーザー アカウントに関連付けられている必要があります。

  • Web 上の Outlook および ActiveSync へのアクセスに関与するすべてのサーバーとデバイス (プロキシ サーバーとクライアント デバイスを含む) が、クライアント証明書の信頼チェーン全体 (証明機関のルート証明書および証明書の発行に使用されたすべての中間 CA) を信頼している必要があります。

Web 上の Outlook の CBA の場合、クライアント証明書をローカル コンピューター、デバイス、またはスマート カードにインストールする必要があります。 ActiveSync の CBA の場合、クライアント証明書をローカルデバイスにインストールする必要があります。 Intune などのモバイル デバイス管理 (MDM) ソリューションを利用すると、デバイス上での証明書のインストールを自動化できます。 Intune の詳細については、「Microsoft Intune の概要」を参照してください。

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

  • このタスクの予想所要時間: 20 分

  • この手順を実行する際には、あらかじめアクセス許可が割り当てられている必要があります。 必要なアクセス許可を確認するには、「クライアントとモバイル デバイスのアクセス許可」トピックの「Outlook on the webアクセス許可」セクションの「IIS マネージャー」エントリを参照してください。

  • オンプレミスの Exchange 組織で Exchange 管理シェルを開く方法については、「 Open the Exchange Management Shell」をご覧ください。

  • このトピックの手順で使用可能なキーボード ショートカットについては、「Exchange 管理センターのキーボード ショートカット」を参照してください。

ヒント

問題がある場合は、 Exchange Server、Exchange Online、Exchange Online Protection。 必要な作業 シェルを使用して送信者フィルターを有効または無効にする

手順 1:Exchange 管理シェル を使用して、すべての Exchange サーバーにクライアント証明書マッピング認証機能をインストールする

同じ名前空間と URL を共有するすべての Exchange サーバーは、同じ認証方法を使用する必要があります。 すべての Exchange サーバーに、クライアント証明書マッピング認証機能をインストールする必要があります。

Exchange 管理シェル で次のコマンドを実行します。

Install-WindowsFeature Web-Client-Auth

構文およびパラメーターの詳細については、「Install-WindowsFeature」を参照してください。

手順 2:IIS マネージャーを使用して、Exchange サーバーの Active Directory クライアント証明書認証を有効にする

  1. Exchange サーバーで IIS マネージャーを開きます。 これを Windows Server 2012 以降で簡単に行うには、Windows キー + Q を押し、inetmgr と入力して、結果から [インターネット インフォメーション サービス (IIS) マネージャー] を選択します。

  2. サーバーを選択し、ページの下部で [機能ビュー] が選択されていることを確認します。

  3. [IIS] セクションで、 [認証] をダブルクリックします。

    IIS で [サーバー] を選択し、[認証] を選択します。

  4. 表示された [認証] ページで、リストから Active Directory[クライアント証明書認証] を選択し、 [操作] ウィンドウで [有効にする] をクリックします。

    IIS のサーバーの [認証] ページ。

    Active Directory クライアント証明書マッピングを使用するには SSL を有効にする必要があるという警告が表示されます。

手順 3: IIS マネージャーを使用して、クライアント証明書を要求するように、Outlook on the web、Exchange 管理センター、および ActiveSync 仮想ディレクトリを構成する

: クライアント証明書を受け入れる (CBA と通常のユーザー名とパスワード認証の両方をサポートするため) すべての種類の ActiveSync デバイスで一貫して機能しないため、クライアント証明書を必要とする必要があります。

  1. IIS マネージャーでサーバーを展開し、 [サイト] を展開します。次に、 [既定の Web サイト] を展開します。

  2. owa 仮想ディレクトリを選択し、ページの下部にある [機能ビュー] が選択されていることを確認します。

  3. [IIS] セクションで、 [SSL 設定] をダブルクリックします。

  4. [SSL 設定] ページ上で、 [SSL が必要] がチェックされていることを確認し、 [クライアント証明書] の値に [必要] を選択します。

  5. [操作] ウィンドウで [適用] をクリックします。

    IIS の仮想ディレクトリの SSL 設定で、[クライアント証明書] で [必須] を選択します。

  6. [Microsoft-Server-ActiveSync] 仮想ディレクトリを選択します。

  7. [IIS] セクションで、 [SSL 設定] をダブルクリックします。

  8. [SSL 設定] ページ上で、 [SSL が必要] がチェックされていることを確認し、 [クライアント証明書] の値に [必要] を選択します。

  9. [操作] ウィンドウで [適用] をクリックします。

: これらの手順はコマンド ラインで実行できますが、必要なレジストリ キーを構成しない場合があります。 IIS マネージャーで以前の手順を使用するか (レジストリ キーが正しく設定されます)、またはコマンド ラインでプロシージャを実行した後でレジストリ キー HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\SslBindingInfo\0.0.0.0:443 が値 1 に設定されていることを確認する必要があります。

コマンド ラインでこれらの手順を実行するには、Exchange サーバーで管理者特権のコマンド プロンプト ([ 管理者として実行] を選択して開くコマンド プロンプト ウィンドウ) を開き、次のコマンドを実行します。

%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/owa/" -section:system.webserver/security/access /sslFlags:"Ssl, SslRequireCert" /commit:apphost
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/ecp/" -section:system.webserver/security/access /sslFlags:"Ssl, SslRequireCert" /commit:apphost
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/Microsoft-Server-ActiveSync/" -section:system.webserver/security/access /sslFlags:"Ssl, SslRequireCert" /commit:apphost

手順 4: Exchange 管理シェルを使用して、Outlook on the web、Exchange 管理センター、および ActiveSync 仮想ディレクトリで他の認証方法の認証を無効にする

認証にクライアント証明書を必要としたら、Outlook on the web、Exchange 管理センター (EAC)、および ActiveSync 仮想ディレクトリで他のすべての認証方法を無効にする必要があります。 既定では、基本認証およびフォーム認証のみが有効になります。

  1. Exchange 管理シェルで、ServerName を> Exchange サーバーの名前に置き換え<、次のコマンドを実行して、Outlook on the web仮想ディレクトリ上の他のすべての認証方法を無効にします。

    Set-OwaVirtualDirectory "<ServerName>\owa (Default Web Site)" -BasicAuthentication $false -WindowsAuthentication $false -DigestAuthentication $false -FormsAuthentication $false -AdfsAuthentication $false -OAuthAuthentication $false
    

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

  2. Exchange 管理シェルで、ServerName を> Exchange サーバーの名前に置き換え<、次のコマンドを実行して、EAC 仮想ディレクトリ上の他のすべての認証方法を無効にします。

    Set-EcpVirtualDirectory "<ServerName>\ecp (Default Web Site)" -BasicAuthentication $false -WindowsAuthentication $false -DigestAuthentication $false -FormsAuthentication $false -AdfsAuthentication $false
    

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

  3. ServerName を Exchange サーバーの名前に置き換え<、次のコマンドを実行して、ActiveSync 仮想ディレクトリ上の他のすべての認証方法を無効にします。>

    Set-ActiveSyncVirtualDirectory "<ServerName>\Microsoft-Server-ActiveSync (Default Web Site)" -BasicAuthEnabled $false -WindowsAuthEnabled $false
    

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

手順 5: IIS マネージャーを使用して、Outlook on the web、Exchange 管理センター、および ActiveSync 仮想ディレクトリのクライアント証明書マッピングを有効にする

重要

この手順を実行した後に Set-ActiveSyncVirtualDirectory コマンドレットを実行すると、ActiveSync のクライアント証明書マッピングが無効になることがあります。

  1. IIS マネージャーでサーバーを展開し、 [サイト] を展開します。次に、 [既定の Web サイト] を展開します。

  2. owa 仮想ディレクトリを選択し、ページの下部にある [機能ビュー] が選択されていることを確認します。

  3. [管理] セクションで、 [構成エディター] をダブルクリックします。

  4. [ 構成エディター ] ページで、[ セクション] のドロップダウンをクリックし、 system.webServer>セキュリティ>認証>クライアントCertificateMappingAuthentication に移動します。

    owa 仮想ディレクトリの IIS のConfiguration Managerで [clientCertificateMappingAuthentication] を選択します。

  5. [有効] の値を [True] に設定して、 [操作] ウィンドウで [適用] をクリックします。

    owa 仮想ディレクトリの IIS の構成エディターで clientCertificateMappingAuthentication 値を有効にします。

  6. ecp 仮想ディレクトリを選択します。

  7. [管理] セクションで、 [構成エディター] をダブルクリックします。

  8. [ 構成エディター ] ページで、[ セクション] のドロップダウンをクリックし、 system.webServer>セキュリティ>認証>クライアントCertificateMappingAuthentication に移動します。

  9. [有効] の値を [True] に設定して、 [操作] ウィンドウで [適用] をクリックします。

  10. [Microsoft-Server-ActiveSync] 仮想ディレクトリを選択します。

  11. [管理] セクションで、 [構成エディター] をダブルクリックします。

  12. [ 構成エディター ] ページで、[ セクション] のドロップダウンをクリックし、 system.webServer>セキュリティ>認証>クライアントCertificateMappingAuthentication に移動します。

  13. [有効] の値を [True] に設定して、 [操作] ウィンドウで [適用] をクリックします。

: コマンド ラインでこれらの手順を実行するには、Exchange サーバーで昇格したコマンド プロンプトを開き、次のコマンドを実行します。

%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/owa/" -section:system.webserver/security/authentication/clientCertificateMappingAuthentication /enabled:"True" /commit:apphost
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/ecp/" -section:system.webserver/security/authentication/clientCertificateMappingAuthentication /enabled:"True" /commit:apphost
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/Microsoft-Server-ActiveSync/" -section:system.webserver/security/authentication/clientCertificateMappingAuthentication /enabled:"True" /commit:apphost

手順 6 (オプション):サードパーティ認証機関のルート証明書を、Active Directory のエンタープライズ NTAuth ストアに追加する

AD CS を使用してクライアント証明書を発行していない場合のみ、この手順を実行する必要があります。 この設定は、証明機関 (CA) が Active Directory 認証用のクライアント証明書の発行において信頼されていることを示します。

  1. CA のルート証明書を、Base 64 エンコードまたは DER バイナリ エンコードされた X.509 .cer ファイルにエクスポートします。 この例では、C:\Data\CARoot.cer を使用します。

  2. 任意のドメインのメンバー サーバー (たとえば、ドメイン コントローラー、Exchange サーバーなど) で、昇格されたコマンド プロンプトを開いて次のコマンドを実行します。

    %windir%\system32\certutil.exe -enterprise -addstore NTAuth "C:\Data\CARoot.cer"
    

    この手順では、 Enterprise Admins グループのメンバーシップが必要です。

手順 7 (オプション):IIS マネージャーを使用して、Web 上の Outlook および ActiveSync 仮想ディレクトリの UploadReadAheadSize 値を増やす

クライアントでエラーが発生した場合、要求ヘッダーを使用できるように IIS メタベースの uploadReadAheadSize 値を増やす必要がある場合があります。

  1. IIS マネージャーでサーバーを展開し、 [サイト] を展開します。次に、 [既定の Web サイト] を展開します。

  2. owa 仮想ディレクトリを選択し、ページの下部にある [機能ビュー] が選択されていることを確認します。

  3. [管理] セクションで、 [構成エディター] をダブルクリックします。

  4. [ 構成エディター ] ページで、[ セクション] のドロップダウンをクリックし、 systemwebServer>serverRuntime に移動します。

    owa 仮想ディレクトリの IIS の構成エディターで [serverRuntime] を選択します。

  5. uploadReadAheadSize の値を 49152 に設定し、 [操作] ウィンドウで [適用] をクリックします。

    owa 仮想ディレクトリの IIS の構成エディターで uploadReadAheadSize の値を変更します。

  6. ecp 仮想ディレクトリを選択します。

  7. [管理] セクションで、 [構成エディター] をダブルクリックします。

  8. [ 構成エディター ] ページで、[ セクション] のドロップダウンをクリックし、 systemwebServer>serverRuntime に移動します。

  9. uploadReadAheadSize の値を 49152 に設定し、 [操作] ウィンドウで [適用] をクリックします。

  10. [Microsoft-Server-ActiveSync] 仮想ディレクトリを選択します。

  11. [管理] セクションで、 [構成エディター] をダブルクリックします。

  12. [ 構成エディター ] ページで、[ セクション] のドロップダウンをクリックし、 systemwebServer>serverRuntime に移動します。

  13. uploadReadAheadSize の値を 49152 に設定し、 [操作] ウィンドウで [適用] をクリックします。

: コマンド ラインでこれらの手順を実行するには、Exchange サーバーで昇格したコマンド プロンプトを開き、次のコマンドを実行します。

%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/owa/" -section:system.webserver/serverRuntime /uploadReadAheadSize:49152
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/ecp/" -section:system.webserver/serverRuntime /uploadReadAheadSize:49152
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/Microsoft-Server-ActiveSync/" -section:system.webserver/serverRuntime /uploadReadAheadSize:49152