Entra IDSCIM
Bitriseは、Microsoft Entra IDを使用したSCIM 2.0による自動ユーザーおよびグループプロビジョニングをサポートしています。設定が完了すると、Entra IDがworkspaceメンバーシップの正式なソースとなります。ユーザーとグループの割り当ては自動的にBitriseにプッシュされ、Entraでユーザーを削除するとBitriseでのアクセスが無効になります。
SCIMの要件Click to copy link
- SCIMのプロビジョニングには、Enterpriseプランが必要です。
- SCIMを有効にする前に、BitriseとEntra IDの間でSAML SSO設定済みである必要があります。
- 検証済みドメインが必要です。ドメインの検証には最大72時間かかる場合があります。少なくとも1つのドメインが検証されるまで、SCIMの認証情報は生成できません。
- Bitrise workspaceオーナーとEntra ID管理者の両方が、設定作業中に利用可能である必要があります。
SCIMの設定Click to copy link
設定は次の3つの手順で構成されます。
BitriseでSCIM認証情報を生成するClick to copy link
-
BitriseにLog inし、左側のナビゲーションバーにカーソルを合わせます。
-
Workspaceメニューで、正しいworkspaceが選択されていることを確認します。
-
Settingsを選択します。
-
左側のメニューからSingle sign-onを選択します。
-
SCIMタブを選択します。
-
IdPとConnectをクリックします。
-
ダイアログに表示される両方の値をコピーして保存します。
- SCIM base URL
- SCIM authentication token
ダイアログを閉じると、このトークンは再表示されません。トークンを紛失した場合は再生成できますが、再生成すると直前のトークンは直ちに無効になります。
Entra IDでSCIMプロビジョニングを設定するClick to copy link
BitriseはEntra IDのギャラリーアプリではありません。Microsoftの非ギャラリーアプリケーションでSCIMを設定するチュートリアルを使用し、次のBitrise固有の値を適用してください。
- テナントURL: SCIMのベースURL。
- Secretトークン: SCIMの認証トークン。
- 一意の識別子フィールド:
userName(ユーザーのメールアドレスにマッピング)。
Provisioning Modeを設定する際は、Automaticを選択します。Bitriseにプッシュするユーザーとグループを制御するには、Sync割り当て済みのユーザーとグループのみを使用します。
Bitrise上のWorkspaceメンバーシップはグループを通じて管理されます。Entra IDがBitrise内のグループメンバーシップを管理できるようにするには、グループプロビジョニング(Push Groups)を有効にする必要があります。これを行わないと、ユーザーはプロビジョニングされてもグループには追加されません。
接続の確認Click to copy link
Entra IDのプロビジョニング設定でTest Connectionをクリックします。これによりBitriseの/ServiceProviderConfigエンドポイントにクエリが送信され、認証情報が有効であることが確認されます。テストが成功すると、Entra IDがBitriseに到達し、正しく認証できることを意味します。
属性マッピングClick to copy link
BitriseはSCIM 2.0のCore User SchemaおよびCore Group Schema(RFC 7643/7644)を実装しています。Entra IDのデフォルトの属性マッピングは、カスタム変換なしで動作します。
サポートされるユーザー属性:
userName: ユーザーの一意の識別子。Entra IDはこれをユーザーのUser Principal Name(UPN)にマッピングします。通常はメールアドレスと一致しますemails: ユーザーのメールアドレスname.givenName: first namename.familyName: last nameactive: ユーザーが有効かどうか。デプロビジョニングするにはfalseに設定しますexternalId: Entra IDによって割り当てられる、ユーザーの不変の一意なID。ユーザーのUPNが変更されても値は変わりません
サポートされるグループ属性:
displayName: Entra ID内のグループ名members: グループ内のユーザーのリスト
roles属性によるworkspaceロールの割り当てについては、SCIMによるworkspaceとプロダクトロールの管理を参照してください。
グループの動作Click to copy link
Nameの一致: Entra IDがグループをプッシュすると、Bitriseは同じ名前の既存グループにリンクするか、新しいグループを作成します。一致判定は大文字・小文字を区別し、完全一致で行われます。ios_devとiOS Devは異なるグループとして扱われます。同期を有効にする前に、Entra IDのグループ名が既存のBitriseのグループ名と完全に一致していることを確認してください。
Entra IDがメンバーシップの正式なソースになる: Entra IDがグループを同期すると、そのグループのメンバーシップが制御されます。Bitriseで手動追加されたメンバーのうち、対応するEntra IDのグループに存在しないユーザーは、次回の同期時に削除されます。
Protectedグループ: Global AccessグループおよびSAMLのデフォルトグループは、SCIM経由で削除できません。意図しないメンバーシップの変更を避けるため、これらのグループはEntra IDの同期対象から除外してください。
ユーザープロビジョニングの動作Click to copy link
メールによるアクティベーション手順が不要: 検証済みドメイン上でSCIMによりプロビジョニングされたユーザーは、直ちに確認済みの有効な状態で作成されます。Bitriseからのメールアクティベーションリンクは送信されません。初回ログイン時には、Entra IDのSSOフローに直接リダイレクトされます。
Defaultworkspace role: SCIMによってプロビジョニングされたすべてのユーザーには、デフォルトでWorkspace Viewerロールが付与されます。このロールにはBitrise CIプロダクトへのアクセス権は含まれません。プロビジョニング時に別のロールを割り当てるには、Entra IDでroles属性を設定します。SCIMによるworkspaceとプロダクトロールの管理を参照してください。
デプロビジョニングの動作Click to copy link
Entra IDでユーザーの割り当てを削除した場合、またはEntra IDがPATCH active:falseまたはDELETEリクエストを送信した場合:
- ユーザーはworkspace、およびその中のすべてのグループから同時に削除されます。
- 個人アクセストークンは有効なまま残りますが、workspace内のすべてのリソースへのアクセス権を失います。
- ワークフローとシークレットは保持され、自動的には再割り当てされません。
- シートは直ちに解放されます。
デプロビジョニングされたユーザーの再プロビジョニング: デプロビジョニングされたユーザーのアカウントは削除されず、workspaceから削除されるだけです。同じメールアドレスでSCIM経由の再プロビジョニングはサポートされており、Entra IDで再度割り当てられると、通常どおりSCIM経由でグループメンバーシップを管理できます。
既存のworkspaceメンバーの移行Click to copy link
SCIMはプッシュベースです。Bitriseは、Entra IDから送信されたリクエストに対してのみ処理を行います。Entra IDで割り当てられていない既存のworkspaceメンバーには変更が加えられず、workspace内にそのまま残ります。
メンバーとグループを含む既存のworkspaceを移行するには:
- SCIMを有効にする前に、関連するすべてのメールドメインを検証します。
- Entra IDのグループ名を、既存のBitriseのグループ名と完全に一致させます。
- Entra IDでSync割り当て済みのユーザーとグループのみを指定してSCIMを有効にします。
- まず小規模なパイロットグループを割り当ててエンドツーエンドで検証し、その後段階的に拡大します。
ドライランやプレビューモードはありません。段階的なパイロットアプローチが実質的な代替手段となります。
未検証ド メイン上のユーザーClick to copy link
メールアドレスのドメインがBitriseで検証されていないユーザーは、SCIM経由で管理できません。プロビジョニングまたは変更を試みても拒否されます。ドメインが検証されるまで、これらのユーザーはEntra IDの割り当て対象から除外してください。
追加のドメインを検証するには、Workspace Settingsに移動し、Domainの検証の下で各ドメインを追加します。各ドメインは個別に検証する必要があります。