# Bot の信頼条件がカスタム OIDC プロバイダーに対応

Bot の信頼条件が、GitHub Actions と GitLab CI に加えて、**OIDC Discovery に対応した任意の IdP** が発行した ID トークンを受け入れられるようになりました。

Jenkins・Buildkite・CircleCI など自前で運用する CI/CD、他クラウドのワークロード ID 基盤、GitHub Enterprise Server、セルフマネージドの GitLab などから、静的な API キーなしで Bot としてサインインできます。

:::info
カスタム OIDC プロバイダーのサポートは現在ベータ版です。
仕様や挙動が予告なく変更される可能性があります。
:::

## 概要

信頼条件とは、Bot 側に設定しておく規則で、どの OIDC ID トークンをその Bot としてのサインインの証明として受け入れるかを決めるものです。これまで信頼条件が扱える発行者 (issuer) は GitHub Actions と GitLab CI の 2 つだけで、それ以外の環境では Bot の API キーを使う必要がありました。API キーは静的なシークレットであり、保管やローテーション、ログへの混入防止といった運用が欠かせません。

新しい **Custom (OIDC)** の提供元を選ぶと、信頼条件を自社の issuer に対して直接設定できます。IdP がジョブごとに短命な ID トークンを発行し、Shisho Cloud がそれを信頼条件と照合したうえで、同じく短命な、その Bot に限定された認証情報と交換します。CI 側に永続的なシークレットを置く必要はありません。

## 利用開始方法

Shisho Cloud コンソールで Bot の **信頼条件** タブを開き、信頼条件を追加して、提供元として **Custom (OIDC)** を選択してください。設定する項目は以下の 4 つです。Issuer・Subject・Audience は必須、Claims は任意です。

- **Issuer** - ID トークンの発行者を示す `https://` の URL。ポート 443 で到達でき、`/.well-known/openid-configuration` に OIDC Discovery のドキュメントを公開している必要がある。
- **Subject** - ID トークンの `sub` クレームに期待する値。完全一致の値か、`*` が任意の文字列にマッチする式（例: `repo:acme/app:*`）のいずれかを指定する。`*` のみの式は指定できない。
- **Audience** - ID トークンの `aud` クレームが含んでいなければならない値。IdP 側で `https://sts.cloud.shisho.dev` を発行するよう設定することを推奨する。こうすることで、Shisho Cloud 向けに発行したトークンが他のサービスへ再利用されるのを防げる。
- **Claims**（任意）- トークンのトップレベルの文字列クレームに対する追加条件を、最大 10 件まで指定できる。指定方法は Subject と同じ。

信頼条件を保存したあとの CI 側の流れは、GitHub Actions や GitLab CI の場合と同じです。IdP から ID トークンを取得し、`shishoctl auth signin:bot` に渡してください。

:::info 上限

カスタム OIDC の信頼条件は、1 組織につき **1 件**までです（組織内のすべての Bot を通じての合計）。GitHub Actions と GitLab CI の信頼条件に上限はありません。

2 件以上が必要な場合はサポートにご相談ください。ご契約プランによってはお応えできない場合があります。

:::

設定項目の詳細や設定例、セキュリティ上の注意点は、Bot の認証ガイドの[カスタム OIDC](/docs/ja/c/bot/authentication#custom-oidc) をご覧ください。
