Backlog の 2段階認証環境で Git HTTPS 接続を 1Password の credential helper で快適に管理する

Backlog の 2段階認証環境で Git HTTPS 接続を 1Password の credential helper で快適に管理する

2026.03.05

こんにちは!クラスメソッドオペレーションズ AWS テクニカルサポートチームの大高です。

今回は、2段階認証を設定した Backlog の Git リポジトリに HTTPS で接続する際に、認証情報を 1Password で管理する方法についてご紹介したいと思います。

はじめに

個人用のツールを Backlog の Git リポジトリで管理しようとしたのですが、Backlog の新プランでは 2段階認証が設定できるようになっており、私はこれを有効にしていました。

2段階認証を有効にすると、通常のパスワードで Git の HTTPS 接続ができなくなります。
SSH 接続も試みたのですが、うまく接続できなかったため、Backlog が提供している「特別なパスワード」を利用した HTTPS 接続を試してみました。

また、認証情報をそのまま Git の設定ファイルに書くのはセキュリティ上好ましくないため、1Password に格納して、Git の credential helper 経由で取得するようにしました。

前提条件

  • Backlog アカウントで 2段階認証を設定済み(新プラン)
  • 1Password アプリがインストール済み
  • 1Password CLI がインストール済みかつサインイン済み
  • macOS 環境(credential helper はシェルスクリプトで作成)

1Password CLI のインストール

1Password CLI がインストールされていない場合は、以下のコマンドでインストールできます。

brew install 1password-cli

インストール後、1Password アプリと CLI を連携させておきます。
1Password アプリの設定から「開発者」→「コマンドラインインターフェース(CLI)」→「1Password CLIと連携」を有効にしておきます。

https://developer.1password.com/docs/cli/get-started/

やってみた

では、設定をすすめていきます。

Backlog の「特別なパスワード」を発行する

まずは Backlog にログインし、個人設定の「パスワード」から「特別なパスワード」を発行します。

  1. Backlog にログインし、右上のユーザーアイコン →「個人設定」を開く
  2. 「パスワード」メニューを選択
  3. 「新しいパスワードを発行」セクションで、メモ(用途の説明)を入力し、「Git (https)」の権限にチェックを入れて「登録」
  4. 発行されたパスワードを控えておく(このあと 1Password に格納します)

1Password に認証情報を格納する

発行した「特別なパスワード」を 1Password に格納します。
ここでは「Nulab Apps」というアイテム名で登録しています。

フィールド
アイテム名 Nulab Apps
ユーザー名 Backlog のログイン ID(メールアドレス)
backlog_git_password 発行した「特別なパスワード」

backlog_git_password はカスタムフィールドとして追加します。
フィールドの種類は「パスワード」にしておくと、値が隠蔽されて安全です。

Git credential helper スクリプトを作成する

1Password CLI を利用して認証情報を取得する credential helper スクリプトを作成します。

https://git-scm.com/book/ja/v2/Git-のさまざまなツール-認証情報の保存

https://developer.1password.com/docs/cli/reference/management-commands/item/#item-get

mkdir -p ~/bin
vim ~/bin/git-credential-backlog

スクリプトの内容は以下のようにしました。
なお、1Password CLI でのアイテム取得時(op item get)に、アイテム名を「Nulab Apps」としていますが、これは適宜利用しているアイテム名に変更ください。

#!/bin/bash
# Backlog用 git credential helper (1Password使用)

if [[ "$1" == "get" ]]; then
  while IFS= read -r line || [[ -n "$line" ]]; do
    [[ -z "$line" ]] && break
    [[ "$line" =~ ^host=(.*)$ ]] && host="${BASH_REMATCH[1]}"
  done

  if [[ "$host" == *"backlog.jp"* ]]; then
    username=$(op item get "Nulab Apps" --fields username 2>/dev/null)
    password=$(op item get "Nulab Apps" --fields backlog_git_password --reveal 2>/dev/null)
    echo "username=$username"
    echo "password=$password"
  fi
fi

スクリプトに実行権限を付与します。

chmod +x ~/bin/git-credential-backlog

このスクリプトによって、Git から get アクションで呼び出された際に、標準入力から host を読み取り、backlog.jp が含まれる場合のみ 1Password から認証情報を取得して返されるようになります。

Git の credential helper を設定する

最後に ~/.gitconfig に Backlog 専用の credential helper を設定します。

git config --global credential.https://xxxxx.backlog.jp.helper ~/bin/git-credential-backlog

設定後に以下で確認しておきます。

git config --list | grep credential

以下のような出力が含まれていれば、設定完了です。

credential.https://xxxxx.backlog.jp.helper=/Users/xxxxx/bin/git-credential-backlog

動作確認

設定が完了したら、実際に Backlog の Git リポジトリを clone してみます。

git clone https://xxxxx.backlog.jp/git/YOUR_PROJECT/your-repo.git

1Password のロックが解除されていれば、パスワード入力なしで認証が完了し、clone されます。
ロックがかかっている場合は、1Password アプリでロックを解除すると clone できるはずです。

まとめ

Backlog の新プランで 2段階認証を設定している場合は、通常のパスワードによる HTTPS 接続ができなくなりますが、「特別なパスワード」を利用することで HTTPS 接続が可能です。

また、認証情報を Git の設定ファイルに直書きするのではなく、1Password に格納して credential helper 経由で取得することで、セキュリティを保ちながら快適に Git 操作ができるようになるのでオススメです。

どなたかのお役に立てば幸いです。それでは!

クラスメソッドオペレーションズ株式会社について

クラスメソッドグループのオペレーション企業です。

運用・保守開発・サポート・情シス・バックオフィスの専門チームが、IT・AI をフル活用した「しくみ」を通じて、お客様の業務代行から課題解決や高付加価値サービスまでを提供するエキスパート集団です。

当社は様々な職種でメンバーを募集しています。

「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、クラスメソッドオペレーションズ株式会社 コーポレートサイト をぜひご覧ください。※2026 年 1 月 アノテーション㈱から社名変更しました

この記事をシェアする

FacebookHatena blogX

関連記事