アクセストークンを得るためのツールを作っている
Web で開発していると、様々なサービスのアカウントでログインする機能を作ったりとかその他諸々、 OAuth2 や OIDC のお世話になることがある。
で、そういったものを利用するソフトウェアの開発に関わっていると、試しにリクエストを行うことも多々あるわけで、その度にアクセストークンを手動で取りに行くのって面倒だな、と思っていた。
実際に開発が終わってしまえば、使う分にはアクセストークンを意識することはないが、底に至るまでの間にアクセストークンがほしいなというシーンがあり、そういうときに簡単にアクセストークンを取得したいな、ということでコマンド一発でアクセストークンを取れるツールを作ってみた。
とはいっても、これはあまり汎用的に使えるものではないと思うし、とりあえず自分や自分の周囲の同じようなことをしている人が使えればいいかな、ということでサポートしている範囲は最小限です。
クライアント認証方式としては client_secret_post
と private_key_jwt
をサポートし、 authorization code grant
と client credentials grant
の2種類に対応している。
authorization code grant
の場合は普通、途中でブラウザに飛んでブラウザ上でログインをしてからツールに戻ってくるという手順になるので、そういった挙動には対応している。
ひとまず Google と GitHub では動作の確認をしている。
ただ、自分が使いたい対象の一つが、この手法では上手く動かないことがわかっており、どうも Cookie にセッション情報がないと認可リクエストを通せないようだったので、そのケースに対応している。
これはあまり正攻法ではないし、複数の問題を内包してしまう(パスワードを設定ファイルに直書きする必要があったり、 MFA に対応できなかったり)ため、これが使われることはあまり望んでいない。
(しかし自分が必要としているから対応しているので、当然自分は使う)
しばらくは自分で使ってみて、問題なさそうであれば自分の周囲の人たちに紹介してみようと思う。