メインコンテンツまでスキップ

CI 連携と OIDC 認証

GitHub Actions から Takumi Guard を組織に紐づけて利用する場合、GitHub OIDC プロバイダを用いてワークフローの出自を特定し、事前に許可された GitHub 組織からのリクエストであることを検証します。検証に成功するとアクセストークンが発行され、そのトークンを伴う npm install のダウンロードログが組織に紐づけて記録されます。CI 環境に長期有効なシークレットを保存する必要はありません。

認証の流れ

GitHub Actions はワークフロー実行時に OIDC トークンを発行できます。このトークンには、ワークフローを実行した GitHub 組織やリポジトリの情報が含まれています。Shisho Cloud の STS(Security Token Service)がこのトークンの署名と出自を検証し、事前に許可リストに追加された GitHub 組織からのリクエストであれば、Takumi Guard 用の短命なアクセストークンを発行します。

アクセストークン

検証に成功すると、STS は短命なアクセストークンを発行します。このトークンには、ダウンロードの帰属先となる Shisho Cloud 組織や、ジョブが実行された GitHub リポジトリ・ワークフローの情報が含まれます。

Takumi Guard はこのトークンを検証し、npm install で発生したダウンロードを組織に紐づけて記録します。ジョブ完了後にトークンは自動的に期限切れとなるため、漏洩リスクが最小限に抑えられます。アクセストークンのデフォルト有効期限は 30 分です(最大 24 時間まで設定可能)。

Bot ID について

Bot ID はシークレットではなく、許可リストを検索するための公開参照キーです。ワークフローファイルに直接コミットできます。実際の認証は GitHub OIDC プロバイダによるトークンの署名検証と許可リストの照合によって行われるため、Bot ID 単体ではアクセストークンを取得できません。