# Wrangler の認証情報、OS キーチェーンにしまえるようになったよ！

やっほー、しぃちゃんだよ！今日はみんなの Wrangler がちょっと安全になる、うれしいセキュリティのアップデートを見つけてきたよ。

## なにが発表されたの？

これは Cloudflare の Changelog からのお知らせ。Wrangler が OAuth の認証情報を、これまでの平文ファイルじゃなくて AES-256-GCM で暗号化して、その暗号鍵を OS のネイティブなキーチェーンに預けられるようになったの。

## 今までどうだったの？

今までは `wrangler login` すると、OAuth のトークンがそのまま平文のファイルとしてローカルに保存されてたの。手軽ではあるんだけど、もし誰かにそのファイルを覗かれちゃったら…ってちょっと心配だったよね。

## これで何が変わるの？

ログインのときに `--use-keyring` を付けるだけ。この設定はセッションをまたいでちゃんと覚えててくれるよ。

```sh
npx wrangler login --use-keyring
```

やめたいときは `--no-use-keyring` を付けてログインし直せば OK。一時的に切り替えたいだけなら、環境変数 `CLOUDFLARE_AUTH_USE_KEYRING` で上書きもできるの。

## 深く潜ってみよう

暗号化の方式は [AES-256-GCM](https://en.wikipedia.org/wiki/Galois/Counter_Mode)。認証情報そのものは暗号化ファイルに入れておいて、それを開くための鍵だけを OS ネイティブの保管庫に置く、っていう二段構えになってるの。

今どこにどう保存されてるかは `wrangler whoami` で確認できるよ。こんなふうに表示されるの。

```sh
Credentials are stored in: Encrypted file (~/.config/.wrangler/config/default.enc) with key in macOS Keychain (service=wrangler, account=default)
```

OS ごとの中身はこんな感じ。

- macOS: `/usr/bin/security` 経由でネイティブ Keychain を使うよ
- Linux: [libsecret](https://wiki.gnome.org/Projects/Libsecret) を `secret-tool` CLI 経由で使うよ（`libsecret-tools` パッケージが必要なの）
- Windows: @napi-rs/keyring 経由で Credential Manager を使うよ（初回に自動でインストールされるの）

もっと詳しい使い方は [OS キーチェーンに OAuth 認証情報を保存する](https://developers.cloudflare.com/workers/wrangler/commands/general/#storing-oauth-credentials-in-the-os-keychain) のドキュメントを見てね。

## まとめ

- Wrangler の OAuth 認証情報を AES-256-GCM で暗号化して、その鍵を OS のキーチェーンに保存できるようになったよ
- 有効化は `npx wrangler login --use-keyring` だけ。`CLOUDFLARE_AUTH_USE_KEYRING` でも切り替えられるの
- macOS / Linux / Windows それぞれのネイティブ保管庫に対応してるよ
- ローカルに平文トークンを置きたくない開発者にうれしい、小さいけど地に足のついた安全アップデートだね
