1. SSO (シングルサインオン) の設定
SSO (シングルサインオン) アプリケーションの作成
また、Devin が IdP から提供されるどのメールアドレスを信頼すべきか判断できるよう、確認済みのメールドメインも共有してください。
セットアップ後の動作
- SSO (シングルサインオン) 接続がお客様のDevin Enterpriseに紐付けられます
- ログイン時の自動メンバー追加 が有効になり、SSO (シングルサインオン) 経由で認証したユーザーは自動的にお客様のEnterpriseに追加されます
- お客様のメールドメインが信頼済みとして登録され、それらのドメインのメールアドレスのみ受け付けられます
- グループベースのロール割り当て (RBAC) が有効になり、ログイン時に送信されるIdPグループをDevinのロールにマッピングできるようになります
- 既定のソーシャルログイン (Google、GitHub) が無効になり、SSO (シングルサインオン) が必須の認証方法になります
ユーザーのログインフロー
- ユーザーがお使いのDevin URLにアクセスします
- 設定済みのIdP (Okta、Microsoft Entra ID など) にリダイレクトされます
- ユーザーが通常どおり認証します
- IdPがユーザー情報とグループ所属情報をDevinに送信します
- Devinは自動的に以下を行います:
- 初回ログイン時にはユーザーのアカウントを作成します (ジャストインタイムプロビジョニング)
- デフォルトのEnterprise Memberロールを割り当てます
- IdPグループ所属情報を同期し、新しいグループを追加して滞留したグループを削除します
- ログインをEnterpriseの監査ログに記録します
セルフサービスによる管理
IdP グループ管理
- ユーザーログインを通じて同期されたすべてのグループを閲覧する
- グループを Enterprise 全体のロールに割り当てる (例: 「
Engineering-Adminsの全員に Enterprise Admin ロールを付与する」) - グループを特定の org に特定のロールで割り当てる (例: 「
Team-Backendに Backend org で Member 権限を付与する」) - 複数の org にまたがってグループを一括で追加/削除する
- 各グループがいくつの org に割り当てられているかを閲覧する
メンバー管理
- 所属するIdP グループを含む、Enterprise のすべてのメンバーを閲覧する
- メールで新しいメンバーを招待する
- メンバーのロールを変更する
- メンバーを削除する
カスタムロール
- 細かな権限を設定したカスタムロールを作成
- カスタムロールを個々のユーザーまたはIdPグループに割り当て
自動化向け API
2. SCIMを使わない場合のDevinの仕組み
ユーザープロビジョニング: ログイン時のみ
新入社員をオンボーディングする際、管理者は事前に招待する (Settings → Enterprise → Members → Invite、または API 経由) か、初回ログイン時に自動的にプロビジョニングさせることができます。
ユーザーのプロビジョニング解除: 手動のみ
グループ同期: ログイン時のみで、リアルタイムではない
管理者が誰かの IdP グループを変更した場合 (たとえば Engineering から Sales に移動した場合) 、Devin に反映されるのは、そのユーザーが再度ログインしたときです。それまでは、ユーザーは以前のグループベースのロールと組織へのアクセスを保持します。
SCIM の代替となる組み込み機能
- ジャストインタイム プロビジョニング — ユーザーは初回の SSO (シングルサインオン) (シングルサインオン) ログイン時に、デフォルトの Enterprise ロールで自動的に作成されます
- ログインごとの完全なグループ同期 — ユーザーがログインするたびに、Devin はそのユーザーの IdP グループとの差分を完全に確認し、新しいグループを追加し、不要になったグループを削除します
- グループベースの RBAC — Devin の設定で、IdP グループを Enterprise ロールや org へのアクセスにマッピングでき、次回のログイン時に反映されます
- 自動化のための V2 API — 招待、削除、一括でのロール変更をスクリプト化して、プロビジョニング/プロビジョニング解除のギャップを埋められます
- 監査ログ — すべてのログインが記録されるため、誰が Devin にアクセスしたかを確認できます
3. IdP 管理グループの設定
前提情報: SCIM Groups と IdP Groups
- SCIM Groups: 下流のアプリが、どのグループが存在するかを IdP に伝えます (IdP はそれらを「インポート」します) 。グループ構成の基準となるのはアプリです。IdP は、アプリで定義されたそれらのグループにユーザーを同期します。
- IdP Groups (Devin で利用するもの): IdP が基準となります。グループは IdP のディレクトリで定義され、グループの所属情報はログイン時に SAML/OIDC のクレームを通じて Devin に渡されます。
ステップ 1: IdP でグループを定義する
- Directory → Groups に移動します
- Devin のアクセスレベルに対応するグループを作成します (例:
Devin-Engineering,Devin-Admins,Devin-DataScience) - ユーザーをこれらのグループに割り当てます
ステップ 2: IdP アプリでグループクレームを設定する
SAML 接続の場合
- Applications → [Devin App] → SAML Settings → Edit に移動します
- Group Attribute Statements で、以下を追加します:
- Name:
groups - Filter: “Starts with” →
Devin-(または、より複雑なパターンには “Matches regex” を利用します)
- Name:
- これにより、IdP は一致するグループ名を SAML アサーションに含めます
OIDC 接続の場合
- Applications → [Devin App] → Sign On → Edit に移動します
- OpenID Connect ID Token → Groups claim type で「Filter」を選択します
- フィルターが Devin のグループに一致するよう設定します (例: 「Starts with」 →
Devin-)
ステップ 3: Devin でグループをロールと組織にマッピングする
Devin UIで
- Settings → Enterprise → Identity Provider Groups
- そのグループのメンバーが1人でもログインすると、グループが自動的に表示されます
- グループをクリック → Enterprise レベルのロール (例: Enterprise Admin またはカスタムロール) を割り当てます
- グループをクリック → 特定のorgに、特定のorgレベルのロールを割り当てます
API 経由 (事前設定または自動化向け)
- ユーザーがログインする前にグループを事前作成:
PUT /v2/enterprise/groups - グループとその org への割り当てを一覧表示:
GET /v2/enterprise/groups
ステップ4: 他のアプリでSCIM Groupsから移行する場合
- 他のアプリでSCIM Group Importingを停止します:
- IdPでアプリのProvisioning → Integrationタブを開き、“Import Groups” のチェックを外します
- これにより、下流アプリがグループの基準となるものではなくなります
- IdP Directoryで対応するグループを作成します:
- Directory → Groupsに移動し、下流アプリに存在していたグループを反映したグループを作成します
- ユーザーをそれらのIdPネイティブなグループに割り当てます
- Group Pushを設定します (対応しているアプリの場合) :
- アプリのIdP設定で、Push Groupsタブ → グループ名で検索 → 既存の下流グループにリンクします
- これにより、IdPがアプリ内のメンバーシップを上書きし、IdPが唯一の基準となるものになります
- Devinはログインアサーションからグループを直接読み取るため、Group Pushは不要です
- 他のアプリでSCIM Group Syncを無効化します:
- 下流アプリが再び基準となるものとして扱われないよう、“Import Groups” がオフのままであることを確認します
主な注意点
IdP でグループ名を変更した場合
IdP でグループ名を変更した場合
グループ名が変更されると、Devin はそれを新しいグループとして扱います。以前のグループのロールマッピングは自動的には引き継がれないため、Devin の設定で新しいグループ名を再設定する必要があります。
グループに追加されても、すぐに Devin にアクセスできるわけではありません
グループに追加されても、すぐに Devin にアクセスできるわけではありません
Devin にマッピングされた IdP グループにユーザーを追加しても、そのユーザーがログインするまではアクセス権は付与されません。
グループから削除されても、すぐに Devin のアクセスは削除されません
グループから削除されても、すぐに Devin のアクセスは削除されません
ユーザーを IdP グループから削除しても、そのユーザーの Devin へのアクセスはすぐには取り消されません。次回ログイン時に Devin が同期を行い、滞留したグループメンバーシップを削除します。グループ外で直接割り当てられたメンバーシップには影響しません。
グループ名は完全一致である必要があります
グループ名は完全一致である必要があります
IdP のグループ名は、Devin が認識する名前と完全に一致している必要があります。大文字と小文字は区別されます。
ネストされたグループには対応していません
ネストされたグループには対応していません
Devin はネストされたグループや階層型グループをサポートしていません。IdP から親グループが送信されても、子グループのメンバーは自動的には含まれません。各グループを明示的に割り当てる必要があります。
「SCIM に近い」動作の推奨設定
1
Identity Provider を設定する(基準となる情報源)
- グループを定義します:
Devin-Admins、Devin-Backend、Devin-Frontendなど - ユーザーをグループに割り当てます
- 「Starts with:
Devin-」でフィルタした SAML/OIDC のグループクレームを設定します
2
Devin はログインのたびに同期します
ユーザーが SSO (シングルサインオン) (シングルサインオン) 経由でログインすると、Devin は自動的に以下を実行します:
- 新規ユーザーの場合は自動で作成します
- グループを完全同期します (新しいグループを追加し、不要になったグループを削除します)
- グループから role および org へのマッピングを即座に適用します
3
任意: V2 API で自動化する
SCIM で補いきれない部分を埋めるために、定期実行ジョブを設定します:
- IdP API からアクティブなユーザーを取得します
GET /v2/enterprise/membersから Devin のメンバーを取得しますPOST /v2/enterprise/members/inviteで新入社員を招待しますDELETE /v2/enterprise/members/{user_id}で退職者を削除します
これにより得られること
- グループ構成とメンバーシップの単一の基準となるIdP
- ログインのたびにグループベースのアクセス制御を自動で適用
- 通常はSCIMが担う部分を補完する、APIによるプロビジョニング/デプロビジョニング
- すべてのログインとメンバーシップの変更に対する完全な監査証跡
現在の制限事項
- ログイン間でのグループのリアルタイム同期 — グループはユーザーのログイン時にのみ更新されます
- プロビジョニング解除時のセッションの即時失効 — セッションは有効期限が切れるまで継続します
- suspend/reactivate のような IdP 主導のライフサイクルイベント はサポートされていません

