Azure AD TLS 1.1 および 1.0 の非推奨の環境で TLS 1.2 のサポートを有効にする

テナントのセキュリティ体制を改善し、業界標準に準拠し続けるために、Microsoft Azure Active Directory (Azure AD) は、次のトランスポート層セキュリティ (TLS) プロトコルと暗号のサポートを間もなく停止します。

  • TLS 1.1
  • TLS 1.0
  • 3DES 暗号スイート (TLS_RSA_WITH_3DES_EDE_CBC_SHA)

この変更が組織に与える影響

アプリケーションは Azure Active Directory と通信しますか、それとも認証しますか? TLS 1.2 を使用して通信できない場合、これらのアプリケーションは正常に機能しない可能性があります。 この状況には次のものが含まれます。

  • Azure AD Connect
  • Azure AD PowerShell
  • Azure AD アプリケーション プロキシ コネクタ
  • PTA エージェント
  • レガシ ブラウザー
  • Azure AD と統合されているアプリケーション

この変更が行われる理由

これらのプロトコルと暗号は、次の理由で非推奨になっています。

このサービスは、次の日付で非推奨になります。

  • 2021 年 3 月 31 日以降の米国政府機関インスタンスでの TLS 1.01.1、および 3DES 暗号スイート
  • 2022 年 1 月 31 日以降の公開インスタンスでの TLS 1.01.1、および 3DES 暗号スイート (この日付は、管理者がレガシ TLS プロトコルおよび暗号 (TLS 1.0、1.1、および 3DES) への依存を削除するためのより多くの時間を与えるために、2021 年 6 月 30 日から 2022 年 1 月 31 日まで延期されました)。

環境での TLS 1.2 のサポートを有効にする

Azure Active Directory (Azure AD) および Microsoft 365 サービスへのセキュリティで保護された接続をどのように維持しますか? クライアント アプリとクライアントおよびサーバー オペレーティングシステム (OS) を TLS 1.2 および最新の暗号スイートに対して有効にします。

クライアントで TLS 1.2 を有効にするためのガイドライン

  • 「WinHTTP」に使用する Windows と既定の TLS を更新します。
  • TLS 1.2 をサポートしていないクライアント アプリとオペレーティン グシステムへの依存を特定して軽減します。
  • Azure AD と通信するアプリケーションとサービスに対して TLS 1.2 を有効にします。
  • TLS 1.2 をサポートするように .NET Framework のインストールを更新および構成します。
  • アプリケーションと PowerShell (Microsoft Graph を使用) および Azure AD PowerShell スクリプトが、TLS 1.2 をサポートするプラットフォームでホストおよび実行されていることを確認します。
  • Web ブラウザーに最新の更新プログラムがインストールされていることを確認します。 新しい Microsoft Edge ブラウザー (Chromium ベース) を使用することをお勧めします。 詳細については、「Microsoft Edge Stable チャネルのリリース ノート」を参照してください。
  • Web プロキシが TLS 1.2 をサポートしていることを確認します。 Web プロキシを更新する方法の詳細については、Web プロキシ ソリューションのベンダーに確認してください。

詳細については、次の資料を参照してください。

WinHTTP に使用する Windows OS と既定の TLS を更新する

これらのオペレーティン グ システムは、WinHTTP を介したクライアント/サーバー通信用の TLS 1.2 をネイティブにサポートします。

  • Windows 10
  • Windows 8.1
  • Windows Server 2016
  • Windows Server 2012 R2
  • 最新バージョンの Windows および Windows Server

これらのプラットフォームで TLS 1.2 を明示的に無効にしていないことを確認します。

既定では、以前のバージョンの Windows (Windows 8 や Windows Server 2012 など) では、WinHTTP を使用したセキュリティで保護された通信のために TLS 1.2 または TLS 1.1 を有効にしません。 これらの以前のバージョンの Windows の場合は、次の手順を実行します。

  1. 更新プログラム 3140245 をインストールします。
  2. クライアントまたはサーバーのオペレーティング システムで TLS 1.2 を有効にする」セクションのレジストリ値を有効にします。

これらの値を構成して、TLS 1.2 および TLS 1.1 を WinHTTP の既定のセキュリティで保護されたプロトコルの一覧に追加できます。

詳細については、「クライアントで TLS 1.2 を有効にする方法」を参照してください。

注:

既定では、TLS 1.2 (Windows 10 など) をサポートする OS では、従来のバージョンの TLS プロトコルもサポートされています。 TLS 1.2 を使用して接続が確立され、タイムリーな応答が返されない場合、または接続がリセットされると、OS は以前の TLS プロトコル (TLS 1.0 や 1.1 など) を使用してターゲット Web サービスに接続しようとする可能性があります。 これは通常、ネットワークがビジー状態の場合、またはパケットがネットワーク内でドロップした場合に発生します。 レガシ TLS への一時的なフォールバックの後、OS は TLS 1.2 接続の確立を再試行します。

Microsoftがレガシ TLS のサポートを停止した後、このようなフォールバック トラフィックの状態は何になりますか? OS は、従来の TLS プロトコルを使用して TLS 接続を試行する可能性があります。 ただし、Microsoft サービスが古い TLS プロトコルをサポートしなくなった場合、従来の TLS ベースの接続は成功しません。 これにより、代わりに TLS 1.2 を使用して OS が接続を再試行するように強制されます。

TLS 1.2 をサポートしないクライアントへの依存を特定して軽減する

次のクライアントを更新して、中断のないアクセスを提供します。

  • Android バージョン 4.3 およびそれ以前のバージョン
  • Firefox 5.0 およびそれ以前のバージョン
  • Windows 7 上の Internet Explorer バージョン 8 ~ 10 およびそれ以前のバージョン
  • Windows Phone 8.0 上の Internet Explorer 10
  • OS X10.8.4 上の Safari 6.0.4 およびそれ以前のバージョン

詳細については、「www.microsoft.com に接続するさまざまなクライアントのハンドシェイク シミュレーション (SSLLabs.com 提供)」を参照してください。

Azure AD と通信する一般的なサーバーのロールで TLS 1.2 を有効にする

クライアントまたはサーバーのオペレーティング システムで TLS 1.2 を有効にする

レジストリ文字列

オペレーティング システム レベルで TLS 1.2 を手動で構成して有効にするには、次の DWORD 値を追加します。

Windows 2012 R2、Windows 8.1 以降の OS では、TLS 1.2 が既定で有効になっています。 したがって、次のレジストリ値は、異なる値で設定されていない限り必要ありません。

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client
    • "DisabledByDefault": 00000000
    • "Enabled": 00000001
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server
    • "DisabledByDefault": 00000000
    • "Enabled": 00000001
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319
    • "SchUseStrongCrypto": 00000001

PowerShell スクリプトを使用して TLS 1.2 を有効にするには、「Azure AD Connect に対する TLS 1.2 の強制」を参照してください。

TLS 1.2 をサポートするように .NET Framework を更新および構成する

マネージド Azure AD 統合アプリケーションおよび Windows PowerShell スクリプト (Azure AD PowerShell V1 (Microsoft MSOnline)、V2 (AzureAD)、Microsoft Graph を使用) は、.NET Framework を使用できます。

.NET 更新プログラムをインストールして、強力な暗号化を有効にする

.NET のバージョンの確認

まず、インストールされている .NET のバージョンを確認します。

.NET 更新プログラムのインストール

強力な暗号化を有効にできるように、.NET 更新プログラムをインストールします。 強力な暗号化を有効にするには、.NET Framework の一部のバージョンを更新する必要がある場合があります。

次のガイドラインを使用してください:

  • .NET Framework 4.6.2 以降のバージョンは、TLS 1.2 および TLS 1.1 をサポートします。 レジストリ設定を確認します。 その他の変更は不要です。

  • .NET Framework 4.6 以前のバージョンを更新して、TLS 1.2 および TLS 1.1 をサポートします。

    詳細については、「.NET Framework のバージョンおよび依存関係」を参照してください。

  • Windows 8.1 または Windows Server 2012 で .NET Framework 4.5.2 または 4.5.1 を使用していますか? 次に、関連する更新プログラムと詳細も「Microsoft Update カタログ」から入手できます。

ネットワークを介して通信し、TLS 1.2 対応システムを実行しているコンピューターの場合は、次のレジストリ DWORD 値を設定します。

  • 32 ビット OS で実行されている 32 ビット アプリケーションおよび 64 ビット OS で実行されている 64 ビット アプリケーションの場合、次のサブキー値を更新します。

    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727

      • "SystemDefaultTlsVersions": 00000001
      • "SchUseStrongCrypto": 00000001
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319

      • "SystemDefaultTlsVersions": 00000001
      • "SchUseStrongCrypto": 00000001
  • 64 ビット OS で実行されている 32 ビット アプリケーションの場合、次のサブキー値を更新します。

    • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727
      • "SystemDefaultTlsVersions": dword:00000001
      • "SchUseStrongCrypto": dword:00000001
    • HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319
      • "SystemDefaultTlsVersions": dword:00000001
      • "SchUseStrongCrypto": dword:00000001

たとえば、次の値を設定します。

  • 構成マネージャー クライアント
  • サイト サーバーにインストールされていないリモート サイト システムのロール
  • サイト サーバー自体

詳細については、次の資料を参照してください。

サインイン ログの新しいテレメトリの概要

環境でレガシ TLS を引き続き使用しているクライアントまたはアプリを特定するには、Azure AD サインイン ログを表示します。 レガシー TLS を介してサインインするクライアントまたはアプリの場合、Azure AD は [追加の詳細情報] の [レガシ TLS] フィールドに True のマークを付けます。 [レガシ TLS] フィールドは、サインインがレガシ TLS を介して行われた場合にのみ表示されます。 ログにレガシ TLS が表示されない場合は、TLS 1.2 に切り替える準備ができています。

レガシ TLS プロトコルを使用したサインイン試行を確認するために、管理者は次の方法でログを確認できます。

  • Azure Monitor でログをエクスポートしてクエリします。
  • 過去 7 日間のログを JavaScript Object Notation (JSON) 形式でダウンロードします。
  • PowerShell を使用してサインイン ログをフィルター処理およびエクスポートします。

これらの方法については、以下で説明します。

Azure Monitor を使用してサインイン ログをクエリできます。 Azure Monitor は、強力なログ分析、監視、およびアラート ツールです。 次に対して Azure Monitor を使用します。

  • Azure AD ログ
  • Azure リソース ログ
  • 独立したソフトウェア ツールからのログ

注:

レポート データを Azure Monitor にエクスポートするには、Azure AD Premium ライセンスが必要です。

Azure Monitor を使用してレガシ TLS エントリをクエリするには、次の手順を実行します。

  1. Azure AD ログを Azure Monitor ログと統合する」の手順に従って、Azure Monitor で Azure AD サインイン ログにアクセスできるようにします。

  2. クエリ定義領域に、次の Kusto クエリ言語クエリを貼り付けます。

    // Interactive sign-ins only
    SigninLogs
    | where AuthenticationProcessingDetails has "Legacy TLS"
        and AuthenticationProcessingDetails has "True"
    | extend JsonAuthProcDetails = parse_json(AuthenticationProcessingDetails)
    | mv-apply JsonAuthProcDetails on (
        where JsonAuthProcDetails.key startswith "Legacy TLS"
        | project HasLegacyTls=JsonAuthProcDetails.value
    )
    | where HasLegacyTls == true
    
    // Non-interactive sign-ins
    AADNonInteractiveUserSignInLogs
    | where AuthenticationProcessingDetails has "Legacy TLS"
        and AuthenticationProcessingDetails has "True"
    | extend JsonAuthProcDetails = parse_json(AuthenticationProcessingDetails)
    | mv-apply JsonAuthProcDetails on (
        where JsonAuthProcDetails.key startswith "Legacy TLS"
        | project HasLegacyTls=JsonAuthProcDetails.value
    )
    | where HasLegacyTls == true
    
    // Workload Identity (service principal) sign-ins
    AADServicePrincipalSignInLogs
    | where AuthenticationProcessingDetails has "Legacy TLS"
        and AuthenticationProcessingDetails has "True"
    | extend JsonAuthProcDetails = parse_json(AuthenticationProcessingDetails)
    | mv-apply JsonAuthProcDetails on (
        where JsonAuthProcDetails.key startswith "Legacy TLS"
        | project HasLegacyTls=JsonAuthProcDetails.value
    )
    | where HasLegacyTls == true
    
  3. [実行] を選択してクエリを実行します。 クエリに一致するログ エントリは、クエリ定義の下の [結果] タブに表示されます。

  4. レガシ TLS 要求のソースの詳細については、次のフィールドを検索します。

    • User.DisplayName
    • AppDisplayName
    • ResourceDisplayName
    • UserAgent

Azure AD ポータルでログ エントリの詳細を表示する

ログを取得すると、Azure AD ポータルでレガシ TLS ベースのサインイン ログ エントリに関する詳細を取得できます。 次の手順を実行します。

  1. Azure portal」で、[Azure Active Directory] を検索して選択します。

  2. [概要] ページのメニューで、[サインイン ログ] を選択します。

  3. ユーザーのサインイン ログ エントリを選択します。

  4. [追加の詳細情報] タブを選択します (このタブが表示されない場合は、最初に右隅の省略記号 (...) を選択して、タブの完全なリストを表示します)。

  5. True に設定されているレガシ TLS (TLS 1.0、1.1、または 3DES) 値を確認します。 その特定のフィールドと値が表示されている場合は、レガシ TLS を使用してサインインが行われています。 サインインが TLS 1.2 を使用して行われた場合、そのフィールドは表示されません。

詳細については、「Azure Active Directory のサインイン ログ」を参照してください。

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure コミュニティ サポートに製品フィードバックを送信することもできます。