github apps を調べた
23時に寝て5時半に起きた。何度か夜中にも起きた。起きてからドラクエタクトやってた。
oauth apps と github apps⌗
いまお仕事で ci/cd の改善をやっていて、その一環としてリポジトリをまたがったパイプライン処理を検討している。 ci/cd で使うような認可の仕組みとして github には oauth apps と github apps の2種類がある。
私はどちらも全く関わったことがなかったので、仕組みがイメージできる oauth apps を使えばよいのだろうと調べ始めた。しかし、一通り調べてみて会社の開発における ci/cd に使うなら github apps の方が適していることがわかった。両者がどう違うのかもドキュメントに記載されている。最初にこのドキュメントを読めば oauth apps を調査する必要はなかった。
具体的には、oauth apps は user の権限を認可する仕組みで、github apps は organization の権限を認可する仕組みと言える。github apps も oauth によるユーザー認証もできる上にアプリ自身の認証もできる。さらにアクセスできるリポジトリも制限できることから github actions などで、特定のリポジトリに対してのみアクセス可能なトークンを取得するには github apps の方が向くというわけだ。oauth でユーザーが認可するときに scope を指定するが、その scope を organization が設定できるといったところが github apps と oauth との違いにみえる。取得できる token の有効期限にもその考え方の違いが出ている。
- oauth apps
- ユーザー/デバイス認証
- 認可コード: 15分
- アクセストークン: 無期限
- ユーザー/デバイス認証
- github apps
- installation 認証
- 認可jwt: 10分
- installation トークン: 1時間
- ユーザー/デバイス認証
- 認可コード: 15分
- アクセストークン: 8時間
- installation 認証
Read other posts