Git Credential Manager の OAuth アプリケーションの再承認方法
問題点
GitHub で SAML SSO が有効化された組織のリポジトリに対して Git 操作を実行すると、以下のエラーが発生することがあります:
$ 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
) がインストールされている場合、以下のコマンドで簡単に再認証できます:
gh auth login
または、認証情報を明示的に更新する場合は:
gh auth refresh
TIP
GitHub CLI がインストールされていない場合は、公式サイトからインストールしてください。
方法2: 認証情報マネージャーのクリア
Windows
- コントロールパネルを開く
- 「ユーザーアカウント」→「資格情報マネージャー」→「Windows 資格情報」を選択
- 「汎用資格情報」セクションで
git:
で始まる GitHub 関連の資格情報を削除
macOS
- Keychain Access(キーチェーンアクセス)アプリを開く
- 「パスワード」カテゴリを選択
github.com
関連の項目を検索して削除
Linux
# 資格情報ストアファイルを開く
git credential-store --file ~/git.store
# 問題のある資格情報を削除してから再試行
方法3: Git Credential Manager コマンドの使用
Windows では、以下のコマンドで明示的に再認証をトリガーできます:
git credential-manager github login
macOS では:
$(git config --global credential.helper) github login
方法4: OAuth アプリケーションの権限取消と再承認
- GitHub で 設定 → アプリケーション にアクセス
- 「承認済み OAuth Apps」で「Git Credential Manager」や「GitHub for VSCode」などを検索
- 該当アプリケーションの権限を取り消す(Revoke)
- 再度 Git 操作を実行して再認証を行う
方法5: SSH 認証への切り替え
HTTPS 認証で問題が解決しない場合、SSH 認証に切り替える方法もあります:
# 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 を使用する手順
- コントロールパネルを開く
- 「ユーザーアカウント」を選択
- 「資格情報マネージャー」をクリック
- 「Windows 資格情報」を選択
- 「汎用資格情報」セクションで GitHub 関連の資格情報を削除
- Git Bash で
git fetch
やgit pull
を実行 - 自動的にブラウザが開き、再認証プロセスが開始されます
予防策とベストプラクティス
- 定期的な認証情報の更新: 定期的に
gh auth refresh
を実行して認証情報を更新しましょう - 適切な credential helper の設定:
git config --global credential.helper manager-core
で最新の credential helper を使用しましょう - 組織のSSO承認確認: GitHub の設定で、個人アクセストークンに組織のSSO承認がされているか確認しましょう
まとめ
Git Credential Manager の OAuth アプリケーション再承認エラーは、主に以下の方法で解決できます:
- GitHub CLI を使用した再認証
- 認証情報マネージャーからの資格情報削除
- OAuth アプリケーションの権限取消と再承認
- SSH 認証への切り替え
どの方法を選ぶ場合も、組織のセキュリティポリシーに準拠していることを確認してください。特に企業環境では、IT部門に相談することをお勧めします。