OIDC 認証
Bitriseでは、OIDCを使用すると、ワークフローに長期間有効な認証情報を埋め込むことなく、ビルドを外部システム(AWS、GCP、Azure、コンテナレジストリ、シークレット管理、アーティファクトストアなど)で認証できます。
OpenID コネクト (OIDC) は、OAuth 2.0 フレームワークをベースにしたアイデンティティ認証プロトコルです。これにより、アプリケーション間でシングル・サインオンを使用するなど、サード・パーティー・アプリケーションがエンド・ユーザーの身元を確認できるようになります
OIDC は、認証操作の結果とユーザーの ID に関する情報を提供する JSON Web トークン (JWT) を発行することで機能します。認証結果とユーザー情報に関するデータはクレームと呼ばれます
トークンを受け取るサービスは、トークンのクレームをOIDCポリシーと照らし合わせて評価します。トークンの要求がポリシーと一致すればリクエストは許可され、一致しない場合は拒否されます。
Bitriseでは、OIDCを使用すると、ワークフローに長期間有効な認証情報を埋め込むことなく、ビルドを外部システム(AWS、GCP、Azure、コンテナレジストリ、シークレット管理、アーティファクトストアなど)で認証できます。Bitriseは、ビルド番号、コミットハッシュ、リポジトリスラッグ、アプリスラッグ、ワークフロー名などのクレームを使用して、特定のビルドに関連する1つ以上のIDトークンを発行できます
これらのトークンは以下のとおりです。
-
特定のビルドインタラクションに対して発行されるため、サードパーティのサービスはその実行のみを対象とするアクセスを許可できます。
-
潜在的な暴露による影響を最小限に抑えるため、寿命が短い。
-
OIDCを受け入れるフェデレーションサービスで利用可能。たとえば、Bitrise OIDCトークンを一時的なクラウド認証情報と交換できます。
ビルド用の ID トークンをリクエストする
OIDCトークンを使用してBitriseビルドからサービスへの認証を行うには、トークンを取得してからサービスと認証情報を交換する必要があります。Bitriseはプロセスの一部を処理するステップを提供しています。
OIDC ID トークンの取得ステップ
以下のサービスでは、ビルドで OIDC トークンを使用してください。 OIDC ID トークンを取得 ステップ 1。このステップにより、ワークフローとパイプラインは、シークレットをリポジトリやビルド設定に保存しなくても、実行時にクラウドリソースまたは外部サービスへの一時的かつ監査可能なアクセスをリクエストできます
を設定 トークン・オーディエンス 入力してステップを設定します。これは、トークンを使用してアクセスしたいサービスの URL でも、サービスが提供する特定の ID でもかまいません。

このステップは、キーを含む環境変数をエクスポートします。 BITRISE_IDENTITY_TOKENには、トークンの関連情報が含まれています。これを使用して、アクセスしたいサービスと認証情報を交換します。
特定のサービスの専用ステップ
ザ・ OIDC アイデンティティートークンの取得 Step では任意のサービスの OIDC トークンを取得できますが、認証情報の交換は行いません。一部のサービスでは、プロセス全体を処理するステップを用意しています。
-
Google クラウドプラットフォーム (GCP) による認証: サービスアカウントキーを使用して Google 認証トークンを生成し、GCP に対して認証します。
-
アマゾンウェブサービス (AWS) による認証: AWS IAM ID プロバイダーに基づいて ID トークンを生成します。ガイドの全文はこちらでご覧いただけます AWS 向け OIDC.
OIDC トークンの情報
ビットライズはOIDCトークンに以下の情報を含んでいます。
|
|
|
|---|---|
|
|
カスタマイズ可能なオーディエンスフィールド |
|
|
ID トークンの作成をトリガーしたのは誰か 注記: の中になります |
|
|
トークンの有効期限 |
|
|
トークンの生成時間 |
|
|
トークンを発行した人 |
|
|
トークンの固有識別子 |
|
|
現在の時刻 |
|
|
Git コミットハッシュ |
|
|
アプリに関連付けられている Git リポジトリの URL |
|
|
Git リポジトリの所有者 |
|
|
Git リポジトリスラッグ |
|
|
アプリスラッグ |
|
|
ワークスペーススラッグ |
|
|
どのエンティティがビルドをトリガーしたか |
|
|
構築中のブランチ |
|
|
PR ターゲットブランチ |
|
|
ビルドをトリガーしたタグ |
|
|
ビルド番号 |
|
|
トリガーされたワークフローの名前 |