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 と統合されているアプリケーション
この変更が行われる理由
これらのプロトコルと暗号は、次の理由で非推奨になっています。
- Federal Risk and Authorization Management Program (FedRAMP) の最新のコンプライアンス基準に従うため。
- ユーザーがクラウド サービスを操作する際のセキュリティを向上させるため。
このサービスは、次の日付で非推奨になります。
- 2021 年 3 月 31 日以降の米国政府機関インスタンスでの TLS 1.0、1.1、および 3DES 暗号スイート。
- 2022 年 1 月 31 日以降の公開インスタンスでの TLS 1.0、1.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 の場合は、次の手順を実行します。
- 更新プログラム 3140245 をインストールします。
- 「クライアントまたはサーバーのオペレーティング システムで 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 を有効にする
Azure AD Connect (最新バージョンのインストール)
- 同期エンジン サーバーとリモート SQL Server の間で TLS 1.2 も有効にしますか? 次に、Microsoft SQL Server の TLS 1.2 サポートに必要なバージョンがインストールされていることを確認します。
Azure AD Connect 認証エージェント (パススルー認証) (バージョン 1.5.643.0 以降)
Azure アプリケーション プロキシ (バージョン 1.5.1526.0 以降のバージョンでは TLS 1.2 が適用されます)
Azure 多要素認証 (Azure MFA) を使用するように構成されているサーバーの Active Directory フェデレーション サービス (AD FS)
Azure AD MFA の NPS 拡張機能を使用するように構成されている NPS サーバー
MFA Server 8.0.x 以降のバージョン
Azure AD パスワード保護プロキシ サービス
操作が必要です
最新バージョンのエージェント、サービス、またはコネクタを実行することを強くお勧めします。
既定では、TLS 1.2 は Windows Server 2012 R2 以降のバージョンで有効になっています。 まれに、TLS 1 を無効にするように既定の OS 構成が変更されている場合があります。
TLS 1.2 が有効になっていることを確認するには、Windows Server を実行していて Azure AD と通信するサーバーの「クライアントまたはサーバーのオペレーティングシステムで TLS 1.2 を有効にする」セクションからレジストリ値を明示的に追加することをお勧めします。
前述のサービスのほとんどは、.NET Framework に依存しています。 「TLS 1.2 をサポートするように .NET Framework を更新および構成する」の説明に従って更新されていることを確認します。
詳細については、次の資料を参照してください。
クライアントまたはサーバーのオペレーティング システムで 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 のバージョンを確認します。
- 詳細については、「インストールされている Microsoft .NET Framework のバージョンおよび Service Pack のレベルを確認する」を参照してください。
.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 カタログ」から入手できます。
- 詳細については、「マイクロソフト セキュリティ アドバイザリ 2960358」を参照してください。
ネットワークを介して通信し、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
- HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727
たとえば、次の値を設定します。
- 構成マネージャー クライアント
- サイト サーバーにインストールされていないリモート サイト システムのロール
- サイト サーバー自体
詳細については、次の資料を参照してください。
- Azure AD でサポートされている TLS 暗号スイート
- クライアントで TLS 1.2 を有効にする方法
- .NET Framework を使用したトランスポート層セキュリティ (TLS) のベスト プラクティス
- TLS 1.0 の問題の解決 - セキュリティ ドキュメント
サインイン ログの新しいテレメトリの概要
環境でレガシ 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 エントリをクエリするには、次の手順を実行します。
「Azure AD ログを Azure Monitor ログと統合する」の手順に従って、Azure Monitor で Azure AD サインイン ログにアクセスできるようにします。
クエリ定義領域に、次の 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
[実行] を選択してクエリを実行します。 クエリに一致するログ エントリは、クエリ定義の下の [結果] タブに表示されます。
レガシ TLS 要求のソースの詳細については、次のフィールドを検索します。
- User.DisplayName
- AppDisplayName
- ResourceDisplayName
- UserAgent
Azure AD ポータルでログ エントリの詳細を表示する
ログを取得すると、Azure AD ポータルでレガシ TLS ベースのサインイン ログ エントリに関する詳細を取得できます。 次の手順を実行します。
「Azure portal」で、[Azure Active Directory] を検索して選択します。
[概要] ページのメニューで、[サインイン ログ] を選択します。
ユーザーのサインイン ログ エントリを選択します。
[追加の詳細情報] タブを選択します (このタブが表示されない場合は、最初に右隅の省略記号 (...) を選択して、タブの完全なリストを表示します)。
True に設定されているレガシ TLS (TLS 1.0、1.1、または 3DES) 値を確認します。 その特定のフィールドと値が表示されている場合は、レガシ TLS を使用してサインインが行われています。 サインインが TLS 1.2 を使用して行われた場合、そのフィールドは表示されません。
詳細については、「Azure Active Directory のサインイン ログ」を参照してください。
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure コミュニティ サポートに製品フィードバックを送信することもできます。