新しもの好きプログラマの耳より情報ブログ

仕事でもあるプログラミングについて役に立ちそうな情報を発信していこうというブログです。役に立たなそうな情報はfacebookで。

Git for WindowsでAzure DevOpsへアクセスする時、Azure ADの認証画面が出ない問題の解決方法

Web上でも事例が見つからない問題で悩み、一応解決方法を見つけたのでブログに書いておく。

Git for WindowsでAzure DevOps(旧VSTS)のgitリポジトリへアクセスした場合に、Azure ADの認証ダイアログが出ずに二要素認証ができないという問題が起きた。一部の環境でだけ起きていて、原因は分からないままだが解決方法は見つかった。

通常、そのケースでは二要素認証にも対応したAzure ADの認証ダイアログが、自動で表示される。 こんな画面。 f:id:suusanex:20181116231045p:plain

これはGit Credential Manager for Windowsが自動で「Azure AD認証が必要だ」と判断して出しているらしい。

しかし、たまにAzure ADの認証ダイアログが出ず、単に「 enter your credentials for "https://~」というシンプルなダイアログが出てしまう環境がある。こんな画面。 f:id:suusanex:20181116231254p:plain

この場合、二要素認証が使えなくて困ってしまう。

結論としては、gitの認証設定でデフォルトではAuto(自動で判断)となっている部分を、URL指定で強制的にAzure AD認証に設定することで解決できた。 具体的には、次のように設定を追加する。

git config --global credential.dev.azure.com.authority AAD

これにより、Azure DevOpsのURL(dev.azure.com)については強制的にAzure AD認証が使われるようになり、ちゃんと二要素認証ができるようになった。

解決はできたが、そもそもなぜ失敗する環境があるのかはわからないまま。もしかしたら、そのうちgitのバージョンアップで解決するかもしれない。 とりあえず今は、同じ問題で悩んでいる人がいたら、この解決方法を試してみると良いと思う。