やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

GitHubのAccessToken一覧を取得するバッチをつくった

GitHubのAccessToken一覧を取得するバッチをつくった

AccessToken一覧を取得するAPIを叩いてみた。セキュリティのためか、メタデータしか取得できないようだ。

入手先

GitHub MEGA

前回まで

間違ってAccessTokenを自ら公開してしまった。GitHubの機能なのか、公開したTokenは自動で削除してくれたらしい。 バッチの改善で自爆を防いだものの、再びTokenを自作するのが面倒。APIで自動化したい。

まずはTokenの一覧取得から試してみることにした。

一覧取得API

Authorizations APIを参考にした。

Basic認証のみ

AccessTokenを用いてAPIを叩いたら以下のエラーが出た。

{
  "message": "This API can only be accessed with username and password Basic Auth",
  "documentation_url": "https://developer.github.com/v3/oauth_authorizations/#oauth-authorizations-api"
}

どうやらAuthorizations APIはBasic/TwoFactor認証しか受け付けないようだ。

TwoFactor認証ではOTP必須

TwoFactor認証をONにしたアカウントだと、OTPも必要になる。 OTPを付与しないと以下のようなエラーになった。

{
  "message": "Must specify two-factor authentication OTP code.",
  "documentation_url": "https://developer.github.com/v3/auth#working-with-two-factor-authentication"
}

セキュリティのため?Token取得できず

実行結果のjsonファイルをみると、AccessTokenは空値だった。idやnameなどのメタデータのみ取得できた。おそらくセキュリティのためと思われる。

見られる機会を減らすため?

サイト上でも新規作成した直後のときしか見れない。APIでいつでも一覧を取得できてしまったらサイトで見える機会を減らしている意味がなくなるということか。

暗号化の必要性

でも、APIを叩いた時点でパスワードも判明しているから、取得できてもいい気がするのだが。

独自に管理(保存)したところから独自の手順を通すことでしかTokenを閲覧できないようにすることで、セキュリティを向上するということか? ならば、自分でtokenを保存するとき、それなりのセキュリティを確保しないと効果が半減するか。 結局、以前考えていた暗号化の必要性に立ち返る。

所感

今回のバッチは役に立たなそう。AccessTokenを新規生成するAPIを叩けばtokenを取得できるはず。次回、試してみる。