Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable token authorization #25

Merged
merged 1 commit into from
Jun 17, 2016

Conversation

k-takata
Copy link
Contributor

ユーザー名を使用しない API トークンのみによる認証を使えるようにしました。
koron/go-github#3 が必要です。

No need to use a username when using API token.
@koron
Copy link
Owner

koron commented Jun 17, 2016

ありがとうございます。ですが、今のままでは取り込みたくないです。

ポイントは幾つかあります。
ユーザー名を使用するトークンを使える機能を残すならば、ドキュメントも残すべきです。
また API トークンの取得方法をドキュメントに追加するか、
せめてポインタを追加すべきでしょう。

API トークンがユーザーにとって充分に簡単&安全であるならば
ユーザー名を使用するトークンを使える機能は削除してしまっても良いと考えます。

@koron
Copy link
Owner

koron commented Jun 17, 2016

ポインタはこれ。 https://developer.github.com/v3/#authentication

ただこれみると、トークンが漏れた場合に、そのユーザーの権限でできることはなんでもできてしまいそう。
netupvim としてはそのようなリスキーな方法を推奨も許容もしたくないです。

トークンが漏れた場合に、そのユーザーの権限でできることはなんでもでき

この件について、何か反論はありますか? @k-takata

@koron
Copy link
Owner

koron commented Jun 17, 2016

ざっくり検討した結果、次のような方針。

  1. 推奨するのはあくまでも Personal API Token を用いた方法で、ドキュメントもこちらを主体とする
  2. APIトークン(Oauth2トークン)を用いた方法も許容はする。しかし推奨はせず、ドキュメントも一言二言言及するに留める。
  3. Oauth2 トークンの設定用の口は別に用意する。Personal API Tokenを使うつもりでユーザーを設定し忘れ、意図せずOauth2トークンとして送ってしまうのを避けるため。

APIトークン=Oauth2トークンということなら上記にしようと思います。

@k-takata どうでしょうか?

@k-takata
Copy link
Contributor Author

Personal access tokenのつもりで書いていました。混乱させてすみません。
ユーザー名を使う場合のtokenと同じものですので、漏れたときのリスクは同じです。

@koron
Copy link
Owner

koron commented Jun 17, 2016

Perlsonal access token にはユーザー名が要るようですが…

Alternatively, you can use personal access tokens or OAuth tokens instead of your password

(from https://developer.github.com/v3/auth/#via-oauth-tokens)

Authorization: token に使えるのは OAuth2 トークンだけのようにも見えます。
(ref. https://developer.github.com/v3/#oauth2-token-sent-in-a-header)

僕は今まで Personal access token を Basic Auth でしか試していなかったのですが
もしかして Authorization: token で使えるのでしょうか。試してみました?

@k-takata
Copy link
Contributor Author

もしかして Authorization: token で使えるのでしょうか。試してみました?

使えます。

@k-takata
Copy link
Contributor Author

(ref. https://developer.github.com/v3/#oauth2-token-sent-in-a-header)

これに記載されているやり方に -i を追加して、

curl -i -H "Authorization: token OAUTH-TOKEN" https://api.github.com

で、OAUTH-TOKEN の部分に、personal access token を指定すると、X-RateLimit-Limit が 5000 になっていることが確認できます。なお、ここで使う token は、生成する際 "Select scopes" のチェックはすべて外してOKです。

@koron koron merged commit a9e5f53 into koron:master Jun 17, 2016
@k-takata k-takata deleted the enable-token-authorization branch June 17, 2016 13:34
@koron
Copy link
Owner

koron commented Jun 17, 2016

@k-takata 少し手を食わえてマージしました。ありがとうございました! 🙇

手を加えた内容:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants