# SCIMプロビジョニングを設定する

IT管理者向け：Microsoft Entra IDまたはOktaから、DraftPilotアカウントの作成、更新、停止を自動で行い、ディレクトリの部署をワークスペースとペルソナに対応付ける方法です。

SCIMプロビジョニングを使うと、DraftPilotをディレクトリと同期した状態に保てます。有効にすると、IDプロバイダーが次の処理を行います。

-   アプリにユーザーを割り当てると、DraftPilotアカウントを **作成** します。
-   ディレクトリでユーザーの名前やメールアドレスが変わると、それを **更新** します。
-   ユーザーの割り当てを解除、無効化、または削除すると、アカウントを **停止** します。再度割り当てると、アカウントを再有効化します。
-   DraftPilotで設定したグループのアクセス対応付けに基づき、部署に応じて **ワークスペースとペルソナを付与** します。

このガイドでは、Microsoft Entra ID(旧Azure AD)とOktaについて説明します。DraftPilotはSCIM 2.0のUsers APIを実装しているため、その他のSCIM 2.0クライアントも同じURLとトークンで接続できます。

SCIMはアカウントを作成しますが、サインインは行いません。プロビジョニングされたユーザーが職場のアカウントでサインインできるよう、[SAMLシングルサインオン](/ja/knowledge-base/saml-and-okta-single-sign-on)と組み合わせて使ってください。

## 始める前に

次のものが必要です。

-   **DraftPilotの管理者アカウント。** [組織の設定](https://app.draftpilot.ai/organization-settings?tab=scim)(Organization settings)を開けるのは、組織の管理者だけです。
-   **IDプロバイダーの管理者権限。** エンタープライズ アプリケーション(Entra ID)またはアプリ統合(Okta)でプロビジョニングを構成できる権限が必要です。
-   **SCIMプロビジョニングを含むDraftPilotのプラン。** **SCIMプロビジョニング**(SCIM provisioning)タブに **お問い合わせ**(Contact us)ボタンが表示されている場合、お客様の組織ではまだSCIMが有効になっていません。**お問い合わせ** をクリックするか、[support@draftpilot.ai](mailto:support@draftpilot.ai) にメールでご連絡いただければ、有効にします。

有効にする前に知っておいていただきたい点：

-   **招待はディレクトリ側で管理されるようになります。** IDプロバイダーが初めて接続した時点で、DraftPilotの「ユーザー」(Users)ページにある招待ボタンは無効になり、管理者には *「ユーザーのプロビジョニングはSCIMで管理されています。ユーザーを招待するにはIT部門にお問い合わせください。」*(User provisioning is managed via SCIM. Contact your IT team to invite users.)と表示されます。後で手動で招待する必要が生じた場合は、[support@draftpilot.ai](mailto:support@draftpilot.ai) にご依頼ください。
-   **新しいユーザーには、アカウントの作成時にDraftPilotからウェルカムメールが届きます。**
-   **新しいユーザーには、組織の既定のサインイン方法が適用されます。** SSOを利用している組織では、SAMLシングルサインオンです。プロビジョニングされたユーザーにパスワードの入力を求められる場合は、[トラブルシューティング](#プロビジョニングされたユーザーにパスワードの入力を求められる)をご覧ください。
-   **既存のアカウントはそのまま使われます。** 同じメールアドレスのDraftPilotアカウントがすでにある場合、SCIMは重複したアカウントを作成せず、既存のアカウントを引き継ぎます。

## コピーするDraftPilotの値

| 項目 | EU | US |
| --- | --- | --- |
| テナントの URL(Tenant URL)、SCIMコネクターのベースURL(SCIM connector base URL) | `https://api.draftpilot.ai/v1/scim` | `https://api-us.draftpilot.ai/v1/scim` |
| シークレット トークン(Secret token) | **SCIMプロビジョニング** タブで生成 | **SCIMプロビジョニング** タブで生成 |

DraftPilotは、トークンを `Authorization: Bearer <token>` ヘッダーで受け取ります。Entra IDとOktaでは、このヘッダーが自動で追加されます。

組織のデータがホストされているリージョンの列を使ってください。わからない場合は、**SCIMプロビジョニング** タブの **SCIMエンドポイントURL**(SCIM endpoint URL)をコピーしてください。ここには常にお客様のリージョンのURLが表示されます。トークンは、発行されたリージョンでのみ有効です。

## SCIMトークンを生成する

1.  ブラウザーでDraftPilotにサインインし、[組織の設定 > SCIMプロビジョニング](https://app.draftpilot.ai/organization-settings?tab=scim)を開きます。
2.  **SCIMプロビジョニングを設定**(Set up SCIM provisioning)の下にある **SCIMトークンを生成**(Generate SCIM token)をクリックします。
3.  **SCIMエンドポイントURL** と **SCIMトークン**(SCIM token)をコピーします。

トークンはパスワードと同じように扱ってください。トークンを持っている人は誰でも、お客様の組織でアカウントを作成したり停止したりできます。

**SCIMトークンを再生成**(Regenerate SCIM token)を実行すると新しいトークンが作成され、古いトークンはただちに無効になります。新しいトークンをIDプロバイダーに貼り付けるまでプロビジョニングは停止するため、再生成は、すぐにトークンを更新できる場合か、トークンが漏えいしたおそれがある場合にだけ行ってください。

## Microsoft Entra IDのプロビジョニングを設定する

[SAMLシングルサインオン](/ja/knowledge-base/saml-and-okta-single-sign-on)用に作成したDraftPilotのエンタープライズ アプリケーションにプロビジョニングを追加できます。そうすると、同じ割り当てでサインインとプロビジョニングの両方を管理できます。SAMLを使用しない場合は、ギャラリー以外のアプリケーションを新しく作成します。**エンタープライズ アプリケーション**(Enterprise applications)で **新しいアプリケーション > 独自のアプリケーションの作成**(New application > Create your own application)をクリックし、**ギャラリーに見つからないその他のアプリケーションを統合します (ギャラリー以外)**(Integrate any other application you don't find in the gallery (Non-gallery))を選びます。

### DraftPilotに接続する

1.  アプリケーションで **プロビジョニング**(Provisioning)を開き、**新しい構成**(New configuration)(または **作業の開始**(Get started))をクリックします。
2.  **プロビジョニング モード**(Provisioning Mode)を **自動**(Automatic)に設定します。
3.  **管理者資格情報**(Admin Credentials)で、次の値を入力します。
    -   **テナントの URL**(Tenant URL)：DraftPilotのSCIMエンドポイントURL
    -   **シークレット トークン**(Secret Token)：DraftPilotのSCIMトークン
4.  **テスト接続**(Test Connection)をクリックし、保存します。

### 属性マッピングを確認する

1.  **マッピング**(Mappings)を開きます。
2.  **Microsoft Entra ID グループをプロビジョニングする**(Provision Microsoft Entra ID Groups)を開き、**有効**(Enabled)を **いいえ**(No)に設定して保存します。DraftPilotはSCIMグループを使用しないため([グループにアクセス権を付与する](#グループにワークスペースとペルソナへのアクセス権を付与する)を参照)、グループをプッシュしても意味がありません。
3.  **Microsoft Entra ID ユーザーをプロビジョニングする**(Provision Microsoft Entra ID Users)を開き、次のマッピングを確認します。通常は既定値のままで問題ありません。

| DraftPilot(SCIM)の属性 | Entra IDのソース属性 | 備考 |
| --- | --- | --- |
| `userName` | `userPrincipalName` | ユーザーのUPNがメールアドレスと異なる場合は、ソースを `mail` に変更してください。DraftPilotは、この属性からアカウントのメールアドレスを更新します。 |
| `emails[type eq "work"].value` | `mail` | アカウントの作成時に、DraftPilotアカウントのメールアドレスになります。 |
| `active` | `Switch([IsSoftDeleted], ...)` | アカウントを停止、再有効化します。既定値のままにしてください。 |
| `displayName` | `displayName` | |
| `name.givenName` | `givenName` | |
| `name.familyName` | `surname` | |
| `urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department` | `department` | ワークスペースとペルソナの対応付けに使われます。 |

Entra IDから送信されるその他の属性(役職、電話番号、上司など)は、DraftPilotでは無視されます。

アカウントのメールアドレスは、SAMLサインインで送信されるメールアドレスと一致している必要があります。一致しないと、ユーザーはサインインできません。テナントでUPNとメールアドレスが異なる場合は、`userName` を `mail` からマッピングしてください。そうしないと、後の更新でDraftPilotのメールアドレスがUPNに置き換わったり、ディレクトリでのメールアドレスの変更がDraftPilotに反映されなくなったりする可能性があります。

### プロビジョニングの対象を選ぶ

1.  **プロビジョニング > 設定**(Provisioning > Settings)で、**スコープ**(Scope)を **割り当てられたユーザーとグループのみを同期する**(Sync only assigned users and groups)に設定します。
2.  **ユーザーとグループ**(Users and groups)で、DraftPilotを利用するユーザーまたはグループを割り当てます。グループを割り当てると、そのメンバーがプロビジョニングされます。Entra IDは、入れ子になったグループのメンバーはプロビジョニングしません。

### テストしてから開始する

1.  **オンデマンドでプロビジョニング**(Provision on demand)をクリックし、テスト用のユーザーを選んで **プロビジョニング**(Provision)をクリックします。Entra IDに各ステップと、DraftPilotが返したエラーがあればその内容が表示されます。
2.  DraftPilotで[「ユーザー」ページ](https://app.draftpilot.ai/users)を開き、想定どおりのワークスペースにユーザーが表示されていることを確認します。
3.  **プロビジョニング** に戻り、**プロビジョニングの状態**(Provisioning Status)を **オン**(On)にして保存します。

Entra IDは、最初のサイクルで対象範囲内の全員をプロビジョニングし、その後は約40分ごとに変更を同期します。変更をすぐに反映したい場合は、**オンデマンドでプロビジョニング** を使ってください。

## Oktaのプロビジョニングを設定する

DraftPilotは、Oktaのユーザープロビジョニング(ユーザーの作成、プロファイル更新のプッシュ、ユーザーの非アクティブ化と再アクティブ化)に対応しています。Oktaの **グループをプッシュ**(Push Groups)には対応していません。代わりに[部署の対応付け](#グループにワークスペースとペルソナへのアクセス権を付与する)を使ってください。

[SAMLシングルサインオン](/ja/knowledge-base/saml-and-okta-single-sign-on)用に作成したDraftPilotのSAMLアプリにプロビジョニングを追加します。

### SCIMを有効にする

1.  Okta管理コンソール(Okta Admin Console)で、DraftPilotアプリを開きます。
2.  **一般**(General)タブの **アプリの設定**(App Settings)で **編集**(Edit)をクリックし、**プロビジョニング**(Provisioning)を **SCIM** に設定して **保存**(Save)をクリックします。

### DraftPilotに接続する

1.  **プロビジョニング** タブを開き、**統合**(Integration)を選んで **編集** をクリックします。
2.  次の値を入力します。
    -   **SCIMコネクターのベースURL**(SCIM connector base URL)：DraftPilotのSCIMエンドポイントURL
    -   **ユーザーの一意の識別子フィールド**(Unique identifier field for users)：`userName`
    -   **サポートされているプロビジョニングアクション**(Supported provisioning actions)：**新規ユーザーをプッシュ**(Push New Users)と **プロファイルの更新をプッシュ**(Push Profile Updates)。**新規ユーザーとプロファイルの更新をインポート**(Import New Users and Profile Updates)は任意です。**グループをプッシュ** はオフのままにします。
    -   **認証モード**(Authentication Mode)：**HTTPヘッダー**(HTTP Header)
    -   **認可**(Authorization)：DraftPilotのSCIMトークン
3.  **コネクター構成をテスト**(Test Connector Configuration)をクリックし、結果を閉じてから **保存** をクリックします。

### Oktaの動作を選ぶ

1.  **プロビジョニング** タブで **アプリへ**(To App)を選び、**編集** をクリックします。
2.  **ユーザーを作成**(Create Users)、**ユーザー属性を更新**(Update User Attributes)、**ユーザーを非アクティブ化**(Deactivate Users)を有効にし、**保存** をクリックします。
3.  同じページの属性マッピングで、ワークスペースへのアクセスの基準にするOktaの値を `department` にマッピングします(例：`user.department`)。`department` 属性がない場合は、**プロファイルエディター**(Profile Editor)で外部名前空間 `urn:ietf:params:scim:schemas:extension:enterprise:2.0:User` を指定して追加します。

### ユーザーを割り当てる

1.  **割り当て**(Assignments)タブを開きます。
2.  まずテスト用のユーザーを割り当て、DraftPilotの[「ユーザー」ページ](https://app.draftpilot.ai/users)に表示されることを確認します。
3.  その後、残りのユーザーまたはグループを割り当てます。

Oktaでユーザーの割り当てを解除するか、ユーザーを非アクティブ化すると、DraftPilotアカウントが停止されます。

## グループにワークスペースとペルソナへのアクセス権を付与する

DraftPilotは、IDプロバイダーが各ユーザーについて送信する **部署**(department)の値(SCIMエンタープライズ拡張の `department` 属性)に基づいてアクセス権を割り当てます。SCIMのグループメンバーシップは読み取らないため、ディレクトリのグループとDraftPilotのアクセス権を結び付けるのは部署の値です。

### 対応付けを追加する

1.  **SCIMプロビジョニング** タブで、**グループのアクセス対応付け**(Group access mappings)に移動します。
2.  **グループの値（department）**(Group value (department))に、IDプロバイダーが送信するとおりに部署を入力します(例：`Legal`)。大文字と小文字は区別されません。
3.  **ワークスペース**(Workspace)と **ロール**(Role)を選びます。ロールは **閲覧者**(Viewer)または **編集者**(Editor)です。
4.  組織でペルソナを使用している場合は、**ペルソナ**(Persona)も選びます。使用しない場合は **ペルソナなし**(No persona)のままにします。
5.  **対応付けを追加**(Add mapping)をクリックします。

同じ部署にさらにワークスペースを付与するには、その部署の下にある **+ ワークスペースを追加**(+ Add workspace)をクリックします。ペルソナは、部署ごとに1つ設定できます。**グループを削除**(Remove group)をクリックすると、その部署の対応付けがすべて削除されます。

### 対応付けの適用方法

-   **部署が一致する新しいユーザー：** 対応付けられたすべてのワークスペースに、対応付けられたロールで参加し、対応付けられたペルソナが付与されます。既定のワークスペースには参加しません。
-   **一致する部署がない新しいユーザー：** 組織の既定のワークスペースに **閲覧者** として参加します。ただし、DraftPilotサポートがお客様の組織で既定のワークスペースへの割り当てを無効にしている場合は除きます。
-   **後で部署が変わった場合：** IDプロバイダーがその変更を送信すると、ユーザーは新しい部署のワークスペースに追加されます。新しい部署にペルソナが設定されていれば、ペルソナもそれに変わります。
-   **ワークスペースへのアクセス権は追加されるだけです。** 部署を変更したり対応付けを削除したりしても、ユーザーがワークスペースから外れることはありません。アクセス権を削除するには、「ユーザー」ページで削除するか、ディレクトリからユーザーを停止してください。

対応付けは、ユーザーが作成されたときと、IDプロバイダーがユーザーの部署を送信するたびに適用されます。ユーザーのプロビジョニング後に対応付けを追加した場合は、次にそのユーザーの部署が送信されたとき(部署を変更した後や、プロビジョニングを再開した後など)に反映されます。

### グループメンバーシップを部署に反映する

既定では、Entra IDはユーザーの **部署**(Department)プロファイル フィールドを送信し、Oktaは `department` にマッピングした値を送信します。グループが部署と一致しない場合は、次の方法があります。

-   **Entra ID** では、DraftPilotアプリケーションにアプリ ロールを定義し、グループをそのロールに割り当てたうえで、`department` マッピングのソースを式 `SingleAppRoleAssignment([appRoleAssignments])` に変更できます。これで、各ユーザーについて、所属グループに応じたロールが送信されます。ユーザーごとに送信できる値は1つだけなので、各ユーザーに割り当てるロールは1つにしてください。
-   **Okta** では、グループごとに必要な値を返す式から `department` をマッピングします。

## アカウントの扱い

| ディレクトリでの操作 | DraftPilotでの結果 |
| --- | --- |
| ユーザーをアプリに割り当て | アカウントを作成(または同じメールアドレスの既存アカウントを引き継ぎ)、ウェルカムメールを送信、ワークスペースとペルソナを適用 |
| 名前またはメールアドレスを変更 | 名前を更新。メールアドレスは `userName`(Entra ID)または `emails`(Okta)から更新。管理者がDraftPilotでユーザーに別の表示名を設定している場合は、その名前が維持されます。 |
| 部署を変更 | 新たに対応付けられたワークスペースを追加し、新しい部署のペルソナを適用 |
| ユーザーの割り当てを解除、無効化、または削除 | アカウントを停止。ユーザーはただちにアクセスできなくなります。作業内容は保持されます。 |
| ユーザーを再度割り当て、または再度有効化 | アカウントを再有効化 |

SCIMがDraftPilotアカウントを削除することはありません。停止するだけです。

## トラブルシューティング

### テスト接続が「Invalid token」で失敗する

-   トークンが正しくコピーされていないか、その後トークンが再生成されています。**SCIMプロビジョニング** タブから現在のトークンをコピーしてください。
-   テナントの URLが別のリージョンのものです。トークンは、発行されたリージョンのURLでのみ有効です。

### 「SCIM provisioning is not enabled for this organization」と表示される

お客様のプランにSCIMが含まれていません。有効にするには、[support@draftpilot.ai](mailto:support@draftpilot.ai) にメールでご連絡ください。

### 「Invalid email format」と表示される

ユーザーの `emails` 属性または `userName` 属性に、有効なメールアドレスがありません。ディレクトリでユーザーの `mail` とUPNを確認してください。

### ユーザーが想定したワークスペースに追加されない

-   IDプロバイダーが送信した部署の値を確認してください。Entra IDでは、**オンデマンドでプロビジョニング** で送信される属性を確認できます。この値は、大文字と小文字の違いを除き、DraftPilotの **グループの値（department）** と一致している必要があります。
-   対応付けを追加する前にユーザーがプロビジョニングされていた場合は、そのユーザーの部署をもう一度送信する必要があります。
-   対応付けはアクセス権を追加するだけです。すでに既定のワークスペースに参加していたユーザーは、そのまま残ります。

### プロビジョニング ログに「Remove operation not supported」と表示される

DraftPilotはSCIMの `remove` 操作に対応していません。この操作は、ディレクトリで属性がクリアされたときに一部のIDプロバイダーが送信するものです。アカウント自体には影響しません。属性をクリアするのではなく何らかの値を設定するか、その属性がDraftPilotにとって重要でなければ、エラーを無視してください。

### プロビジョニングされたユーザーにパスワードの入力を求められる

プロビジョニングされたユーザーには、組織の既定のサインイン方法が適用されます。SSOを使用させたい場合は、[SAMLシングルサインオン](/ja/knowledge-base/saml-and-okta-single-sign-on)を設定し、**シングルサインオン（SSO）**(Single sign-on (SSO))タブの **ユーザーをSSOに移行**(Migrate users to SSO)を使用してください。そのうえで、新しいユーザーが最初からSSOを使えるよう、既定のサインイン方法をSAMLシングルサインオンに設定するよう [support@draftpilot.ai](mailto:support@draftpilot.ai) にご依頼ください。

### 管理者がユーザーを招待できなくなった

SCIMが有効になると、これは想定どおりの動作です。アカウントを持つユーザーはディレクトリで決まります。代わりに、IDプロバイダーでその人をアプリに割り当ててください。手動での招待に戻したい場合は、サポートにお問い合わせください。

## お困りの場合

組織名、IDプロバイダー、プロビジョニング ログに表示されたエラーを添えて、[support@draftpilot.ai](mailto:support@draftpilot.ai) までメールでご連絡ください。SCIMトークンは絶対に送らないでください。トークンが漏えいしたおそれがある場合は、再生成してください。
