次の方法で共有


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

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

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

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

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

MFA ポリシーによって Visual Studio のエクスペリエンスはどのような影響を受けますか。

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

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

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

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

Visual Studio で MFA などの CA ポリシーを介してセキュリティ保護されたリソースにアクセスできます。 この強化されたワークフローを使用するには、システムの既定の Web ブラウザーまたは Windows 認証ブローカー (Visual Studio バージョン 17.5 で利用可能ですが、最適なエクスペリエンスのためには Visual Studio バージョン 17.7 の使用をお勧めします) を Visual Studio アカウントを追加して再認証するメカニズムとして使用することにオプトインする必要があります。

警告

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

Windows 認証ブローカーの有効化

Note

Web アカウント マネージャー (WAM) は、Windows 10 以上と Windows Server 2019 以上でのみ使用できます。

このワークフローを有効にするには、Visual Studio の [オプション] ダイアログ ([ツール] > [オプション...]) に移動し、[アカウント] タブを選択してから、[次を使用してアカウントの追加および再認証を行う:] ドロップダウンから [Windows 認証ブローカー] を選択します。

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

Windows 認証ブローカーは、Web アカウント マネージャー (WAM) を使用し、セキュリティ、強化された MFA サポート、OS と Visual Studio に追加されたアカウント間のシームレスな統合など、多くの利点を提供します。

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

注意

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

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

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

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

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. 問題が発生する前に行っていたアクティビティやアクセスしようとしていたリソースを説明する新しい問題報告チケットを作成します。

注意

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

Government クラウドでのサインインに関する問題

Government クラウドにアクセスしようとしたときのサインイン エラーのスクリーンショット。

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

  1. Visual Studio を閉じます。
  2. 特定の Visual Studio インストール用の "開発者コマンド プロンプト" を開きます。
  3. Set DisableWAMClientIdForVS=true」と入力します。 または、Setx DisableWAMClientIdForVS true を使って、システムでユーザー変数を設定することもできます。 ユーザー変数は、いったん設定したら、再度行う必要はありません。
  4. ユーザー変数を設定した後、開発者コマンド プロンプトから Visual Studio を開きます: devenv
  5. もう一度サインインします。

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

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

たとえば、次のエラー ダイアログが表示された場合は、認証メカニズムの変更を選択してサインイン オプションを開き、システム Web ブラウザーに切り替えることで、問題を解決できます。

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

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] (アカウントのフィルター処理) ダイアログが表示され、アカウントで使用するテナントを選択できます。

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

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

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