多要素認証 (MFA) が必要なアカウントで Visual Studio にサインインする

この記事では、多要素認証 (MFA) を必要とするアカウントで Visual Studio を使用する方法について説明します。

MFA ポリシーを有効にする理由

外部のゲスト ユーザーとコラボレーションするときは、多要素認証 (MFA) などの条件付きアクセス (CA) ポリシーを使用して貴社のアプリとデータを保護することをお勧めします。

有効にすると、ゲスト ユーザーはリソースにアクセスするためにユーザー名とパスワードだけでなく、追加のセキュリティ要件を満たす必要があります。 MFA ポリシーは、組織のメンバーに対して有効にするのと同じ方法で、テナント レベル、アプリ レベル、または個々のゲスト ユーザー レベルで適用できます。

Note

16.6 より前のバージョンの Visual Studio では、MFA などの CA ポリシーが有効になっていて、2 つ以上のテナントに関連付けられているアカウントで使用した場合、認証エクスペリエンスが低下する可能性があります。

これらの問題により、Visual Studio のインスタンスで再認証が 1 日に複数回要求される可能性があります。 同じ Visual Studio セッション中であっても、以前に認証されたテナントの資格情報の再入力が必要な場合があります。

MFA ポリシーでの Visual Studio の使用

Visual Studio で MFA などの CA ポリシーを介してセキュリティ保護されたリソースにアクセスできます。 この強化されたワークフローを使用するには、Visual Studio アカウントを追加および再認証するためのメカニズムとして、システムの既定の Web ブラウザーを使用することを選択する必要があります。

Visual Studio 2022 バージョン 17.11 では、Windows 認証ブローカーが Visual Studio でアカウントを追加および再認証するための既定のワークフローになりました。

Windows 認証ブローカーは、Web アカウント マネージャー (WAM) を使用し、セキュリティ、強化された MFA サポート、OS と Visual Studio に追加されたアカウント間のシームレスな統合など、多くの利点を提供します。 Visual Studio で認証メカニズムとして WAM を使用すると、MFA などの CA ポリシーによって保護されたリソースに簡単にアクセスできるようになります。

ドロップダウンから Web 認証ブローカーを選択します。

WAM の使用に関する問題が発生した場合は、Visual Studio アカウントを追加して再認証する代わりに、 システム Web ブラウザーを使用することをお勧めします。

警告

このワークフローを使用しないとエクスペリエンスが低下し、Visual Studio アカウントを追加または再認証するときに複数の追加の認証を求められる可能性があります。

Windows認証ブローカーの使用

Visual Studio で認証メカニズムとして WAM の使用を開始するには:

  1. Visual Studio 2022 バージョン 17.11 以降に更新します。

  2. プロンプトが表示されたら、WAM ダイアログからアカウントを選択します。 アカウントがリストにない場合は、 アカウントの追加を使用して追加します。

    Windows 認証ブローカー ワークフローを使用してアカウントを追加します。

Visual Studio の アカウント設定 ダイアログからアカウントを管理できます。

アカウントを追加および再認証するには、Visual Studio の認証メカニズムとして Windows アカウント マネージャー (WAM) を使用するワークフローが推奨されます。 ただし、 WAM の使用で問題が発生した場合は、システム Web ブラウザの使用に切り替えることができます。

システム Web ブラウザーを有効にする

注意

最良のエクスペリエンスを実現するために、このワークフローに進む前に、システムの既定の Web ブラウザー データをクリアすることをお勧めします。 また、Windows 10 設定の [職場または学校にアクセスする] に職場または学校アカウントがある場合は、それらが適切に認証されていることを確認してください。

システム Web ブラウザー ワークフローを有効にするには、Visual Studio の [オプション] ダイアログ ([ツール] > [オプション...]) に移動し、[アカウント] タブを選択して、 [アカウントの追加と再認証に使用:] ドロップダウンから [システム Web ブラウザー] を選択します。

メニューからシステム Web ブラウザーを選択します。

MFA ポリシーを使用して追加アカウントにサインインする

システム Web ブラウザー ワークフローを有効にしたら、[アカウント設定] ダイアログ ([ファイル] > [アカウントの設定]) を使用して、通常のように Visual Studio にサインインまたはアカウントを追加できます。

プロファイル カード または [アカウント設定] ダイアログ ([ファイル] > [アカウント設定...]) から Visual Studio にサインインしたり、アカウントを追加したりできます。

Windows 認証ブローカー

Windows 認証ブローカー ワークフローが有効になると、通常どおり Visual Studio にサインインしたりアカウントを追加したりできるようになります。 Web アカウント マネージャー (WAM) は、ユーザーが Windows に知られているアカウント (Windows セッションにサインインしたアカウントなど) でログインできるようにすることで、サインイン エクスペリエンスを簡素化します。

Windows 認証 ブローカー ワークフローを使用して、Visual Studio にアカウントを追加します。

システム Web ブラウザー

システム Web ブラウザー ワークフローが有効になると、通常どおり Visual Studio にサインインしたり、アカウントを追加したりできるようになります。

新しい個人アカウントを Visual Studio に追加します。

この操作により、システムの既定の Web ブラウザーが開き、アカウントへサインインが求められ、必要な MFA ポリシーが検証されます。

サインイン プロセス中に、サインイン状態を維持するかどうかを問う、追加のプロンプトが表示されることがあります。 このプロンプトは、あるアカウントをサインインに使用することが 2 回目になるときに表示されることがあります。 資格情報を再入力する必要性を最小限に抑えるため、 [はい] を選択することをお勧めします。[はい] を選択すると、ブラウザー セッション間で資格情報が保持されます。

サインインの状態を維持しますか?

開発アクティビティとリソース構成に基づいて、セッション中に資格情報を再入力するように求められる場合があります。 これは、新しいリソースを追加したとき、または以前に CA/MFA の認可要件を満たしていないリソースにアクセスしようとしたときに発生する可能性があります。

アカウントの再認証

アカウントに問題がある場合、Visual Studio によってアカウントの資格情報の再入力を求めるメッセージが表示されることがあります。

再認証が必要なアカウントを示すスクリーンショット。

[資格情報を再入力してください] をクリックすると、システムの既定の Web ブラウザーが開き、資格情報の自動更新が試みられます。 失敗した場合は、アカウントにサインインし、必要な CA/MFA ポリシーを検証するよう求められます。

アカウントが複数の Azure Active Directory に関連付けされていて、そのうちの 1 つ以上でアクセスの問題が発生した場合は、[資格情報を再入力してください] ダイアログに、影響を受けているディレクトリと、関連付けられた AADSTS エラー コードが表示されます。

再認証を行わないディレクトリの選択を解除し、ホーム ディレクトリと、選択されたままになっているゲスト テナントを使って、通常のサインイン操作を続けることができます。 それ以降、選択されていないディレクトリは、アカウント フィルターが削除されるまで、アクセスして使うことはできません。

Visual Studio アカウントを再認証します。

注意

最適なエクスペリエンスを実現するために、すべての CA/MFA ポリシーがリソースに対して検証されるまで、ブラウザーを開いたままにしておいてください。 ブラウザーを閉じると、以前に構築した MFA 状態が失われ、追加の認可プロンプトが表示される場合があります。

サインインに関する問題のトラブルシューティング

CA/MFA に関する問題

CA/MFA に関する問題が発生している場合や、システム Web ブラウザーを使ってもログインできない場合は、次の手順を試して問題を解決してください。

  1. Visual Studio でアカウントからサインアウトします。
  2. [ツール]>[オプション]>[アカウント]> を選び、[Authenticate across all Azure Active Directories](すべての Azure Active Directory で認証する) チェック ボックスをオフにします。
  3. もう一度サインインします。

注意

多くの場合、以上の手順でログインできるようになりますが、アカウントはフィルター処理された状態になります。 フィルター処理された状態では、アカウントの既定のテナントとリソースのみを使用できます。 その他のすべての Microsoft Entra のテナントとリソースにはアクセスできなくなりますが、手動で追加し直すことができます。

承認前の問題

承認前エラー ダイアログのスクリーンショット。

Visual Studio 2022 バージョン 17.5 以降では、前のエラー ダイアログが表示される場合は、次の手順を試して問題を解決してください。

  1. Visual Studio でアカウントからサインアウトします。
  2. もう一度サインインします。
  3. 問題が発生する前に行っていたアクティビティやアクセスしようとしていたリソースを説明する新しい問題報告チケットを作成します。

注意

チケットを作成すると、問題のある部分を特定するのに役立ち、問題の調査と対処に必要なログが提供されます。

Web アカウント マネージャー (WAM)エラー

Visual Studioへのサインインに Windows 認証 ブローカー ワークフローを使用しているときにエラーが発生した場合は、エラー ダイアログに表示されているアクションに従って問題を解決または報告します。 ダイアログのリンクを使用して、エラーの詳細を確認したり、エラー ログを表示したりできます。

TPM (トラステッド プラットフォーム モジュール) のエラー

たとえば、次のエラー ダイアログが表示された場合は、TPM エラーのトラブルシューティングの手順に従って、問題の解決を試みることができます。

WAM エラー ダイアログのスクリーンショット。このエラーを解決するための認証メカニズムの変更オプションが表示されています。

Windows ブローカー以外の認証メカニズムに切り替える必要がある場合は、システム Web ブラウザーを有効化する手順に従って切り替えることができます。 これらの手順が機能せず、サポート契約を結んでいる場合は、テクニカル サポートでサポート チケットを開いてください。

Visual Studio で特定の Microsoft Entra テナントの使用をオプトアウトする方法

Visual Studio 2019 バージョン 16.6 以降には、テナントを個別に、またはグローバルに除外して、Visual Studio で実質的に非表示にする柔軟性があります。 フィルターを適用すると、そのテナントで認証する必要がなくなりますが、関連付けられているリソースにはアクセスできなくなります。

この機能は、複数のテナントがあり、特定のサブセットをターゲットにして開発環境を最適化する場合に便利です。 問題のあるテナントをフィルターで除外できるため、特定の CA/MFA ポリシーを検証できない場合にも役立ちます。

テナントをすべて除外する方法

すべてのテナントをグローバルにフィルターで除外するには、[アカウント設定] ダイアログ ([ファイル] > [アカウント設定] > [アカウント オプション]) を開き、[Authenticate across all Azure Active Directories](すべての Azure Active Directories で認証する) チェックボックスをオフにします。

このオプションをオフにすると、アカウントの既定のテナントでのみで認証されます。 また、お使いのアカウントが、ゲストになっている可能性のある他のテナントに関連付けられているすべてのリソースにアクセスできないことも意味します。

個々のテナントをフィルター処理する方法

Visual Studio アカウントに関連付けられているテナントをフィルター処理するには、[アカウントの設定] ダイアログ ([ファイル] >[アカウントの設定]) を開き、[フィルターの適用] をクリックします。

フィルターを適用します。

[Filter account] (アカウントのフィルター処理) ダイアログが表示され、アカウントで使用するテナントを選択できます。

フィルターを適用するアカウントを選択します。

フィルター処理するテナントの選択を解除すると、 [アカウント設定][アカウントのフィルター] のダイアログにフィルター処理された状態が表示されます。

[アカウント設定] と [アカウントのフィルター] のダイアログのフィルター処理されたテナントの状態を示すスクリーンショット

Visual Studio でのネットワーク エラー

サインイン中に、Visual Studio で、通常は Visual Studio 製品の問題ではないネットワーク関連のエラーが発生する場合があり、ローカル IT サポートによる調査が必要になる場合があります。

エラー: プロキシ認証を要求するエラー

コンピューターまたは組織でファイアウォールやプロキシ サーバーなどのセキュリティ対策を使用している場合は、プロキシまたはファイアウォールの内側で Visual Studio を使用するための要件に従っていることを確認してください。

SSL エラー

SSL エラーはさまざまな形で発生する可能性があります。 いくつかの例を次に示します。

  • "基になる接続が閉じられました"
  • "SSL 接続を確立できませんでした"
  • "SSL/TLS のセキュリティで保護されているチャネルを作成できませんでした"
  • "リモート ホストによって、既存の接続は強制的に切断されました。" (これは、ファイアウォールが接続をブロックしていることが原因である可能性もあります)
  • "基盤になる接続が閉じられました: 送信時に、予期しないエラーが発生しました"

これらのエラーは、次の原因で発生する可能性があります。

  1. 企業プロキシまたはファイアウォールが特定のバージョンの TLS をブロックしている
  2. TLS 1.3 はコンピューター上で有効になっていますが、ネットワークはそれをサポートしていません。 これに該当するかどうかをテストするには、コンピューター上で TLS 1.3 を無効にしてみてください。
  3. 許可される SSL アルゴリズムを制限するグループ ポリシーと、この許可リストがサーバーが期待するものと一致しません。

SSL 問題のトラブルシューティングには、次のリソースが役立つ場合があります。

TLS 1.3 を無効にする

1.3: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client] "DisabledByDefault"=dword:00000001 "Enabled"=dword:00000000

接続拒否エラー

"対象のコンピュータによって拒否されたため、接続できませんでした"

このエラーは、Visual Studio がインターネット エンドポイントへの接続を試みているときに、コンピューターが接続を拒否したことを意味します。

一般的な原因:

  • エラー メッセージにアドレス「127.0.0.1」が含まれている場合は、ローカル プロキシ サーバーへの接続が試行されましたが、ローカル プロキシ サーバーが実行されていなかったことを意味します。

  • VPN 接続 - VPN から切断し、接続を再試行します。 問題がなければ、VPN プロバイダーまたはネットワーク管理者に問い合わせてください。 これには、企業 VPN またはサードパーティ VPN サービスが含まれます。

  • DNS - コンピューター上のドメイン検索は、予期したサーバーをポイントしていないアドレスに解決されました。 これは、予期されたサービスが実行されていない別のコンピューターに接続され、接続が拒否されていることを意味します。 この問題をデバッグするには、NsLookup などのツールを使用して、Azure IP 範囲とサービス タグと比較できます。

  • IPV6 - 一部のコンピューターでは IPV6 が有効になっていますが、ネットワークはそのプロトコルをサポートしていません。 この場合、サーバーが見つからなかったため、接続が拒否されたというメッセージが表示されることがあります。 コンピューターで IPV6 を無効にして、接続が機能するかどうかを確認してください。

  • SSL の問題 - SSL エラーを参照してください。

  • ネットワーク上のプロキシまたはファイアウォール - ネットワーク上にプロキシまたはファイアウォールがある場合、それが接続で通信を試みる最初のデバイスとなり、接続を拒否するデバイスになる可能性があります。 ファイアウォールまたはプロキシ サーバーが接続をブロックしているかどうかは、ネットワーク管理者に問い合わせることで判断できます。 あるいは、ネットワーク トレースを確認すると、どのコンピューターに接続されているかがわかり、誰が接続を拒否しているかを特定できます。 内部ネットワーク アドレスの場合は、プロキシまたはファイアウォールが接続をブロックしたことを意味します。 外部 IP アドレスの場合、これは通常、DNS、IPV6、または SSL の問題を意味します。

ネットワーク関連の問題は通常、Visual Studio ではなくコンピューターまたはネットワーク構成に関連しています。 Developer Community はいくつかのサポートを提供する可能性がありますが、コンピューターの構成ではなく Visual Studio 内の機能に焦点を当てています。 ネットワーク固有のサポートについては、Microsoft サポート コミュニティまたは テクニカル サポートが役立ちます。