Skip to main content

OIDC 認証

概要

Bitriseでは、OIDCを使用すると、ワークフローに長期間有効な認証情報を埋め込むことなく、ビルドを外部システム(AWS、GCP、Azure、コンテナレジストリ、シークレット管理、アーティファクトストアなど)で認証できます。

OpenID Connect (OIDC) は、OAuth 2.0 フレームワーク上に構築されたアイデンティティ認証レイヤーです。これにより、アプリケーション間でシングル・サインオンを使用するなど、サード・パーティー・アプリケーションがエンド・ユーザーの身元を確認できるようになります

OIDC は、認証操作の結果とユーザーの ID に関する情報を提供する ID トークン (通常は JSON Web トークンまたは JWT) を発行することで機能します。認証結果とユーザー情報に関するデータはクレームと呼ばれます

トークンを受け取るサービスは、トークンのクレームをOIDCポリシーと照らし合わせて評価します。トークンの要求がポリシーと一致すればリクエストは許可され、一致しない場合は拒否されます。

BitriseはOIDCトークンの使用を以下の2つの方法でサポートしています。

  • BitriseビルドがAWS、GCP、Azure、コンテナレジストリ、シークレット管理、アーティファクトストアなどの外部システムに対して認証されるようにします。

  • 外国のOIDCトークンを使用してBitriseへの認証を行い、有効期限が短いBitriseトークンを受け取ること。

OIDC による外部サービスへの認証

OIDC を使用すると、ワークフローに長期間有効な認証情報を埋め込むことなく、ビルドを外部システム (AWS、GCP、Azure、コンテナレジストリ、シークレット管理、アーティファクトストアなど) で認証できます。Bitriseは、ビルド番号、コミットハッシュ、リポジトリスラッグ、アプリスラッグ、ワークフロー名などのクレームを使用して、特定のビルドに関連する1つ以上のIDトークンを発行できます

これらのトークンは以下のとおりです。

  • 特定のビルドインタラクションに対して発行されるため、サードパーティのサービスはその実行のみを対象とするアクセスを許可できます。

  • 潜在的な暴露による影響を最小限に抑えるため、寿命が短い。

  • OIDCを受け入れるフェデレーションサービスで利用可能。たとえば、Bitrise OIDCトークンを一時的なクラウド認証情報と交換できます。

ビルド用の ID トークンをリクエストする

OIDCトークンを使用してBitriseビルドからサービスへの認証を行うには、トークンを取得してからサービスと認証情報を交換する必要があります。Bitriseはプロセスの一部を処理するステップを提供しています。

OIDC ID トークンの取得ステップ

以下のサービスでは、ビルドで OIDC トークンを使用してください。 OIDC ID トークンを取得 ステップ 1。このステップにより、ワークフローとパイプラインは、シークレットをリポジトリやビルド設定に保存しなくても、実行時にクラウドリソースまたは外部サービスへの一時的かつ監査可能なアクセスをリクエストできます

を設定 トークン・オーディエンス 入力してステップを設定します。これは、トークンを使用してアクセスしたいサービスの URL でも、サービスが提供する特定の ID でもかまいません。

2025-11-12-get-oidc-token-step.png

このステップは、キーを含む環境変数をエクスポートします。 BITRISE_IDENTITY_TOKENには、トークンの関連情報が含まれています。これを使用して、アクセスしたいサービスと認証情報を交換します。

特定のサービスの専用ステップ

ザ・ OIDC アイデンティティートークンの取得 Step では任意のサービスの OIDC トークンを取得できますが、認証情報の交換は行いません。一部のサービスでは、プロセス全体を処理するステップを用意しています。

  • Google クラウドプラットフォーム (GCP) による認証: サービスアカウントキーを使用して Google 認証トークンを生成し、GCP に対して認証します。

  • アマゾンウェブサービス (AWS) による認証: AWS IAM ID プロバイダーに基づいて ID トークンを生成します。ガイドの全文はこちらでご覧いただけます AWS 向け OIDC.

OIDC トークンの情報

ビットライズはOIDCトークンに以下の情報を含んでいます。

制限事項

Bitriseは一般的なIDプロバイダーと見なされているため、AWSがトークンから保持しているクレームは2つだけです。 aud そして sub。これらはポリシーでのみ使用できます。

クレームフィールドの詳細については、 AWS ドキュメント

1. OIDC 情報

Name

Description

aud

カスタマイズ可能なオーディエンスフィールド

sub

ID トークンの作成をトリガーしたサブジェクト

の中になります app:APP_SLUG:workflow:WORKFLOW フォーマット。

exp

トークンの有効期限

iat

トークンの生成時間

iss

トークンを発行した人

jti

トークンの固有識別子

nbf

現在の時刻

sha

Git コミットハッシュ

repository_url

アプリに関連付けられている Git リポジトリの URL

repository_owner

Git リポジトリの所有者

repository_slug

Git リポジトリスラッグ

app_slug

アプリスラッグ

workspace_slug

ワークスペーススラッグ

trigger_by

どのエンティティがビルドをトリガーしたか

branch

構築中のブランチ

branch_dest

PR ターゲットブランチ

tag

ビルドをトリガーしたタグ

build_number

ビルド番号

workflow

トリガーされたワークフローの名前


OIDCによるビットライズへの認証

Bitriseは、外部OIDCトークンを使用してBitriseへの認証と短期間のBitriseの受信をサポートしています ワークスペースアクセストークン。発行されたトークンはBitriseのトラストポリシーと照合されます

Bitriseトークンを受け取ったサービスは、基本的に、トラストポリシーで定義された特定のアクションを実行できるワークスペースの一時的なメンバーになります。たとえば、特定のリポジトリの特定のブランチでトリガーされたビルドからデータを受け取ることができます

信託政策

OIDC 信頼ポリシーは、誰を信頼するか、どのような条件で、OIDC トークンを検証するかを定義します。Bitriseのトラストポリシーでは以下を定義しています

  • ビットライズが信頼するOIDC発行体です。当社のトラストポリシーに発行者として記載されていないOIDCプロバイダーからのクレームは自動的に拒否されます

  • 有効期間が短いトークンの有効期間:有効期間。

  • アクセスレベル:ワークスペースとプロジェクトで付与される役割と権限。

  • トークンの照合ルール:照合する必要があるクレーム。たとえば、クレームにはリポジトリ、リポジトリのブランチ、トリガーすべきワークフローなどを含めることができます。マッチングルールは JSON 形式です。

OIDC トークンのリクエスト

ポリシーが正常に作成されると、Bitriseは固有のポリシーIDを自動的に生成します。このポリシー ID はすべてのトークンリクエストに含める必要があります

サービスがOIDCトークンを送信して有効期間の短いBitriseワークスペースアクセストークンをリクエストすると、Bitriseはリクエスト内のポリシーIDを対応する信頼ポリシーと照合し、その信頼ポリシーの一致ルールを確認します。ルールが OIDC トークンの要求と一致すれば、有効期間の短いトークンが付与されます