このガイドでは、DevinにおけるSSO (シングルサインオン) の導入からIdPグループの設定まで、SSO (シングルサインオン) のライフサイクル全体をEnterprise管理者向けに説明するとともに、SCIMを利用せずにDevinがユーザーのプロビジョニングをどのように処理するかを解説します。 プロバイダ別の設定手順については、Okta、Azure AD、SAML、またはGeneric OIDCを参照してください。Documentation Index
Fetch the complete documentation index at: https://docs.devinenterprise.com/llms.txt
Use this file to discover all available pages before exploring further.
1. SSO (シングルサインオン) の設定
SSO (シングルサインオン) アプリケーションの作成
| Connection Type | Protocol | What to Provide |
|---|---|---|
| Okta | OIDC (Okta Workforce Identity) | Okta ドメイン、クライアント ID、クライアントシークレット、スコープ |
| Azure AD | OIDC (Microsoft Entra ID) | Azure AD ドメイン、クライアント ID、クライアントシークレット |
| SAML | SAML 2.0 (any IdP) | サインイン URL、X.509 署名証明書 |
| Generic OIDC | OIDC | Discovery URL、クライアント ID、クライアントシークレット、スコープ |
また、Devin が IdP から提供されるどのメールアドレスを信頼すべきか判断できるよう、確認済みのメールドメインも共有してください。
セットアップ後の動作
- SSO (シングルサインオン) 接続がお客様のDevin Enterpriseに紐付けられます
- ログイン時の自動メンバー追加 が有効になり、SSO (シングルサインオン) 経由で認証したユーザーは自動的にお客様のEnterpriseに追加されます
- お客様のメールドメインが信頼済みとして登録され、それらのドメインのメールアドレスのみ受け付けられます
- グループベースのロール割り当て (RBAC) が有効になり、ログイン時に送信されるIdPグループをDevinのロールにマッピングできるようになります
- 既定のソーシャルログイン (Google、GitHub) が無効になり、SSO (シングルサインオン) が必須の認証方法になります
ユーザーのログインフロー
- ユーザーがお使いのDevin URLにアクセスします
- 設定済みのIdP (Okta、Azure AD など) にリダイレクトされます
- ユーザーが通常どおり認証します
- 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
| アクション | API エンドポイント |
|---|---|
| すべてのメンバーを一覧表示 | GET /v2/enterprise/members |
| ユーザーをメールで一括招待 | POST /v2/enterprise/members/invite |
| メンバーを削除 | DELETE /v2/enterprise/members/{user_id} |
| メンバーのロールを一括更新 | PATCH /v2/enterprise/members/roles |
| メンバーのロールを移行 | PATCH /v2/enterprise/members/migrate-roles |
| すべてのロールを一覧表示 | GET /v2/enterprise/roles |
| すべての IdP グループを一覧表示 | GET /v2/enterprise/groups |
| IdP グループを事前作成 | PUT /v2/enterprise/groups |
| グループの org への割り当てを取得 | GET /v2/enterprise/groups/{group_name} |
2. SCIMを使わない場合のDevinの仕組み
ユーザープロビジョニング: ログイン時のみ
| SCIM あり | Devin (SCIM なし) | |
|---|---|---|
| ユーザーが作成される方法 | ユーザーが割り当てられると、IdP が直ちにアプリにユーザー作成を反映する | ユーザーは、初回の SSO (シングルサインオン) ログイン後、または UI もしくは API 経由で手動招待された後にのみ Devin 上に作成される |
| 発生するタイミング | 管理者がユーザーにアプリを割り当てる → 数秒以内にユーザーが表示される | 管理者がユーザーにアプリを割り当てる → ユーザーがログインするまで、Devin では何も起こらない |
| 事前プロビジョニング | ユーザーがアプリを初めて利用する前に、アカウントの準備が完了している | 管理者が Devin の UI または API で明示的に招待しない限り、事前プロビジョニングは行われない |
ユーザーのプロビジョニング解除: 手動のみ
| SCIM あり | Devin (SCIM なし) | |
|---|---|---|
| ユーザーの削除方法 | IdP がユーザーを無効化または削除すると、アプリがそのユーザーを即座に無効化 | IdP でユーザーを無効化または削除しても、Devin 側では何も起こらない |
| オフボーディング | オフボードされた従業員は数分以内にアクセスを失う | オフボードされた従業員は、Devin から手動で削除され、かつセッションの有効期限が切れるまでアクセスを保持する |
| コンプライアンス | コンプライアンス対応を自動化 — 孤立したアカウントは発生しない | 管理者が両方のシステムを管理しない限り、孤立したアカウントが発生するリスクがある |
グループ同期: ログイン時のみで、リアルタイムではない
| SCIMあり (グループプッシュ) | Devin (SCIMなし) | |
|---|---|---|
| 同期のタイミング | IdP がグループメンバーシップの変更をリアルタイムで反映 | グループが同期されるのは、ユーザーのログイン時のみ |
| グループへの追加 | 管理者がユーザーをグループに追加 → アプリに即座に反映される | 管理者がユーザーをグループに追加 → Devin が認識するのは、ユーザーの次回ログイン時 |
| グループからの削除 | 管理者がユーザーをグループから削除 → アプリに即座に反映される | 管理者がユーザーをグループから削除 → Devin には次回ログインまで以前のメンバーシップが表示される |
| 基準となる情報源 | IdP が常に基準となる情報源 | IdP が基準となる情報源なのはログイン時のみ — ログインとログインの間にずれが生じることがある |
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 に近い」動作の推奨設定
Identity Provider を設定する(基準となる情報源)
- グループを定義します:
Devin-Admins、Devin-Backend、Devin-Frontendなど - ユーザーをグループに割り当てます
- 「Starts with:
Devin-」でフィルタした SAML/OIDC のグループクレームを設定します
Devin はログインのたびに同期します
ユーザーが SSO (シングルサインオン) (シングルサインオン) 経由でログインすると、Devin は自動的に以下を実行します:
- 新規ユーザーの場合は自動で作成します
- グループを完全同期します (新しいグループを追加し、不要になったグループを削除します)
- グループから role および org へのマッピングを即座に適用します
これにより得られること
- グループ構成とメンバーシップの単一の基準となるIdP
- ログインのたびにグループベースのアクセス制御を自動で適用
- 通常はSCIMが担う部分を補完する、APIによるプロビジョニング/デプロビジョニング
- すべてのログインとメンバーシップの変更に対する完全な監査証跡
現在の制限事項
- ログイン間でのグループのリアルタイム同期 — グループはユーザーのログイン時にのみ更新されます
- プロビジョニング解除時のセッションの即時失効 — セッションは有効期限が切れるまで継続します
- suspend/reactivate のような IdP 主導のライフサイクルイベント はサポートされていません
