Skip to content

Git Credential Manager の OAuth アプリケーションの再承認方法

問題点

GitHub で SAML SSO が有効化された組織のリポジトリに対して Git 操作を実行すると、以下のエラーが発生することがあります:

bash
$ git push --delete origin v0.1.3
remote: The `<組織名>` organization has enabled or enforced SAML SSO. To access
remote: this repository, you must re-authorize the OAuth Application `Git Credential Manager`.
fatal: unable to access 'https://github.com/<組織名>/myproj.git/': The requested URL returned error: 403

このエラーは、組織が SSO を有効にした後に、Git Credential Manager が適切に認証情報を更新できない場合に発生します。

解決方法

以下の解決策をプラットフォームや状況に応じてお試しください。

方法1: GitHub CLI を使用した再認証(推奨)

GitHub CLI (gh) がインストールされている場合、以下のコマンドで簡単に再認証できます:

bash
gh auth login

または、認証情報を明示的に更新する場合は:

bash
gh auth refresh

TIP

GitHub CLI がインストールされていない場合は、公式サイトからインストールしてください。

方法2: 認証情報マネージャーのクリア

Windows

  1. コントロールパネルを開く
  2. 「ユーザーアカウント」→「資格情報マネージャー」→「Windows 資格情報」を選択
  3. 「汎用資格情報」セクションで git: で始まる GitHub 関連の資格情報を削除

macOS

  1. Keychain Access(キーチェーンアクセス)アプリを開く
  2. 「パスワード」カテゴリを選択
  3. github.com 関連の項目を検索して削除

Linux

bash
# 資格情報ストアファイルを開く
git credential-store --file ~/git.store

# 問題のある資格情報を削除してから再試行

方法3: Git Credential Manager コマンドの使用

Windows では、以下のコマンドで明示的に再認証をトリガーできます:

bash
git credential-manager github login

macOS では:

bash
$(git config --global credential.helper) github login

方法4: OAuth アプリケーションの権限取消と再承認

  1. GitHub で 設定 → アプリケーション にアクセス
  2. 「承認済み OAuth Apps」で「Git Credential Manager」や「GitHub for VSCode」などを検索
  3. 該当アプリケーションの権限を取り消す(Revoke)
  4. 再度 Git 操作を実行して再認証を行う

方法5: SSH 認証への切り替え

HTTPS 認証で問題が解決しない場合、SSH 認証に切り替える方法もあります:

bash
# SSH URL を取得してリモートURLを変更
git remote set-url origin git@github.com:organization/repo.git

WARNING

SSH キーが適切に設定されていることを確認してください。SSH キーの設定方法については GitHub のドキュメントを参照してください。

詳細な手順(Windows の場合)

以下は Windows で Credential Manager を使用する詳細な手順です:

Windows Credential Manager を使用する手順
  1. コントロールパネルを開く
  2. 「ユーザーアカウント」を選択
  3. 「資格情報マネージャー」をクリック
  4. 「Windows 資格情報」を選択
  5. 「汎用資格情報」セクションで GitHub 関連の資格情報を削除
  6. Git Bash で git fetchgit pull を実行
  7. 自動的にブラウザが開き、再認証プロセスが開始されます

予防策とベストプラクティス

  1. 定期的な認証情報の更新: 定期的に gh auth refresh を実行して認証情報を更新しましょう
  2. 適切な credential helper の設定: git config --global credential.helper manager-core で最新の credential helper を使用しましょう
  3. 組織のSSO承認確認: GitHub の設定で、個人アクセストークンに組織のSSO承認がされているか確認しましょう

まとめ

Git Credential Manager の OAuth アプリケーション再承認エラーは、主に以下の方法で解決できます:

  1. GitHub CLI を使用した再認証
  2. 認証情報マネージャーからの資格情報削除
  3. OAuth アプリケーションの権限取消と再承認
  4. SSH 認証への切り替え

どの方法を選ぶ場合も、組織のセキュリティポリシーに準拠していることを確認してください。特に企業環境では、IT部門に相談することをお勧めします。