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

SCIMの設定

System for Cross-domain Identity Management(SCIM)仕様は、クラウドベースのアプリケーションおよびサービスにおけるユーザーIDの管理を容易にすることを目的としています。

Bitriseでは、OktaおよびMicrosoft Entra ID向けにSCIMプロビジョニングをサポートしています。

SCIMプロビジョニングには、検証済みドメインとSCIMの認証情報(SCIMのベースURLと認証トークン)が必要です。Bitriseでこれらを設定する手順は、OktaとEntra IDのどちらでも同じです。

  1. BitriseにLog inし、左側のナビゲーションバーにカーソルを合わせます。

  2. Workspaceメニューで、正しいworkspaceが選択されていることを確認します。

  3. Settingsを選択します。

  4. 左側でSingle sign-onを選択します。

  5. 検証済みドメインを設定する。

  6. SCIMタブを選択します。

  7. SCIM credentialsセクションで、IdPでConnectをクリックしてIdPでConnectダイアログを開きます。

  8. SCIMの認証情報を保存します。ダイアログには次の項目が表示されます。

    • SCIMのベースURL。
    • SCIMの認証トークン。

    両方をコピーして保存してください。SCIMプロビジョニングにはこれらの情報が必要です。IDプロバイダーに貼り付けたら、その旨を確認するチェックボックスを選択し、Doneをクリックします。

    Oktaについては、SCIMプロビジョニングガイドをご確認ください。

SCIMによるworkspaceおよび製品ロールの管理Click to copy link​

デフォルトでは、SCIM経由でプロビジョニングされたすべてのユーザーにViewerロールが付与され、製品へのアクセス権は付与されません。IdPがSCIMのroles属性をサポートしている場合、Workspaceと製品ロールの割り当てを自動化し、最初から適切なアクセス権でユーザーをプロビジョニングできます。

利用可能なworkspaceロールClick to copy link​

SCIMの値WorkspaceロールDescription
workspace:workspace_viewerViewer新規メンバーのデフォルトロールです。Workspaceのリソースを閲覧できますが、アプリやプロジェクトを作成することはできません。
workspace:workspace_contributorContributor新しいアプリやプロジェクトを作成できます。Workspace settingsの変更やメンバーの管理はできません。
workspace:workspace_managerManagerWorkspace settingsの変更、メンバーの管理、インテグレーションとインフラストラクチャの管理ができます。

権限の詳細については、Workspacesにおけるロールと権限をご覧ください。

利用可能な製品ロールClick to copy link​

SCIMの値Product roleDescription
rde:rde_adminRDE UserWorkspaceでRemote Dev Environmentセッションを作成および管理できます。

プロジェクトレベルのBitrise CIおよびRelease Managementロールは、SCIM経由で割り当てることはできません。代わりにCollaborationページで設定してください。Workspacesにおけるロールと権限をご覧ください。

これら3つの値のみがSCIMで受け付けられます。Workspaceが独自のworkspaceレベルロールを定義している場合は、カスタムworkspaceロールとSCIMをご覧ください。

ロール割り当ての仕組みClick to copy link​

各ロールエントリのvalueフィールドは<family>:<role_name>の形式を使用し、familyはworkspaceまたはrdeのいずれかです。IdPを設定して、以下のいずれかの形式でSCIMリクエストにroles属性を含めるようにしてください。

User creation and full update (POST and PUT):

リクエストボディのトップレベル属性としてrolesを含めます。

{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"userName": "[email protected]",
"roles": [
{ "value": "workspace:workspace_manager" },
{ "value": "rde:rde_admin" }
]
}
Partial update (PATCH, roles in value object):

Oktaなど一部のIdPは、明示的なpathを指定せずに、valueオブジェクト内にネストしたロールを送信します。

{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
"Operations": [
{
"op": "replace",
"value": {
"roles": [
{ "value": "workspace:workspace_contributor" }
]
}
}
]
}
Partial update (PATCH, explicit path):

Microsoft Entra IDなど他のIdPは、明示的なpathフィールドを使用します。typeフィールドは任意であり、Bitriseでは無視されます。

{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
"Operations": [
{
"op": "replace",
"path": "roles",
"value": [
{ "value": "workspace:workspace_manager" }
]
}
]
}

Bitriseは、これら3つの形式すべてを自動的に処理します。

important

SCIMリクエストにroles属性が含まれている場合、Bitriseはそれを完全なロール割り当てとして扱い、ユーザーの現在のロールを置き換えます。これはすべてのfamilyに適用され、送信したものだけに限りません。workspace:ロールのみをリストしたリクエストはユーザーのRDEアクセスを削除し、rde:rde_adminのみをリストしたリクエストはユーザーのworkspaceロールをViewerに戻します。ユーザーが保持すべきすべてのロールを送信してください。

リクエストにrolesがまったく含まれていない場合、既存のロール割り当ては変更されません。空のroles配列は、ユーザーをデフォルトのViewerロールに戻し、製品へのアクセス権を削除します。

カスタムworkspaceロールとSCIMClick to copy link​

メンバーのworkspaceロールは、Workspaceが定義するカスタムロールにすることもできます。作成方法と割り当て方法については、カスタムロールをご覧ください。SCIM経由でメンバーをプロビジョニングする際に留意すべき点が2つあります。

  • IdPはカスタムロールを割り当てられません。 roles属性は3つの組み込み値のみを受け付けます。リクエストがそれ以外を指定した場合、Bitriseはそれを拒否し、メンバーは既存のロールを保持します。
  • SCIMのプッシュはカスタムロールを置き換えます。 メンバーが一度に持てるworkspaceロールは1つのため、IdPが送信する組み込みロールは、Bitrise上で誰かが割り当てたカスタムロールを含め、メンバーが以前保持していたロールを置き換えます。空のroles配列も同様に、メンバーをViewerに戻します。

メンバーにカスタムロールを保持させたい場合は、そのメンバーに対するSCIMリクエストからroles属性を除外してください。Bitriseは、rolesが存在する場合にのみworkspaceロールを変更します。