SCIM API ガイド
サードパーティシステムは、System for Cross-domain Identity Management (SCIM) API を呼び出して、ユーザーディレクトリを同期できます。
本 API および本ドキュメントを利用し、連携を構築することにより、Additional API Terms and Guidelines に同意したものとみなされます。
APIの概要
System for Cross-domain Identity Management (SCIM) API は、SCIM protocol を使用して、サードパーティシステムがユーザーに代わって Indeed を呼び出し、Indeed PLUS 連携向けにユーザーディレクトリを同期できるようにします。これらのユーザーは通常、Indeed.com ユーザーから分離されたリソースグループに属します。リソースグループにより、サードパーティシステムは、ユーザーが Indeed アカウントを作成しなくても、ユーザーの作成、削除、権限の割り当てを含む直接的な管理権限を持てます。
エンドユーザーが一般消費者向けの Indeed.com アカウントを持つことはなく、Indeed に直接サインインすることもできません。サードパーティシステム経由でのみサインインし、そのシステムのコンテキスト内の API にのみアクセスします。
| サードパーティ呼び出し元 | SCIM API を呼び出して行うこと |
|---|---|
| 採用管理システム (ATS) | 採用企業のユーザーを Indeed のリソースグループにプロビジョニングし、Scout などのツールにアクセスできるようにします。 |
| Recruit 運営の求人ボード | ユーザーを Indeed にリンクし、Indeed のモデレーション機能にアクセスできるようにします。 |
| Glassdoor などのパートナー | ユーザーのリンクを管理して、Glassdoor と Indeed の間で一貫した体験を提供します。 |
サポート対象スキーマと任意スキーマについては、SCIM API schemas をご覧ください。
この連携を開始する場合や質問がある場合は、fim-team@indeed.com にお問い合わせください。
APIの手順
1. 認証する
まだパートナーでない場合は、Indeed パートナーになる (新しいウィンドウで開きます)をご覧ください。
Indeed パートナーになると、Indeed が連携用のアプリを作成します。Partner Console (新しいウィンドウで開きます) にサインインして、アプリと OAuth 認証情報(クライアント ID、シークレット、および 3-legged OAuth の認可コード)を確認します。これらの認証情報をアクセストークンと交換し、API 呼び出しを認証します。
アクセストークンを取得するには、curl (新しいウィンドウで開きます) などのコマンドラインツールや Insomnia (新しいウィンドウで開きます) などの UI ツールを使用して、次のヘッダーとボディパラメーターで https://apis.indeed.com/oauth/v2/tokens に POST リクエストを送信します。
クライアントシークレットをエンドユーザーに公開しないでください。Indeed は、バックエンドでトークンを生成することを推奨します。
curl -L 'https://apis.indeed.com/oauth/v2/tokens' \ -H 'Accept: application/json' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -d 'client_id=<client_id>' \ -d 'client_secret=<client_secret>' \ -d 'grant_type=client_credentials' \ -d 'scope=employer_access'リクエストヘッダーは次のとおりです。
リクエストボディのパラメーターは次のとおりです。
{ "access_token": "<access_token>", "scope": "employer_access", "token_type": "Bearer", "expires_in": 3600}トークンは 1 時間(3600 秒)で有効期限が切れます。トークンは 1 時間ごとに更新します。
SCIM サービスは、トークンの署名、issuer、audience、有効期限を検証します。トークンが無効または期限切れの場合、サービスは HTTP 401 Unauthorized を返します。
2. 条件でユーザーの詳細を取得する
GET https://api.indeed.com/scim/v2/Usersリクエスト元のテナントに関連付けられた Indeed アカウントの詳細を取得します。
この操作を使用して、Identity Provider (IdP) と Service Provider (SP) の間でユーザーデータを同期します。
たとえば、完全同期の際には、IdP が SP にクエリを実行し、すべての操作が完了した後に SP が IdP と一致するように、追加、削除、更新するユーザーを特定します。
この操作は最大 1 人のユーザーを返します。条件に複数のユーザーが一致する場合、この操作はエラーを返します。
リファレンス情報とリクエスト例、レスポンス例については、条件でユーザーの詳細を取得するをご覧ください。
3. ID でユーザーの詳細を取得する
GET https://api.indeed.com/scim/v2/Users/:id一意のユーザー ID で Indeed ユーザーアカウントの詳細を取得します。
この操作を使用して、プロフィール情報、ロール、グループ所属などのユーザー詳細にアクセスまたは確認します。
たとえば、IdP でユーザーが変更された場合、IdP は SP にクエリを実行して現在の SP ユーザーの状態を取得し、その後 POST または PUT コマンドを送信して SP を IdP と一致させます。
リファレンス情報とリクエスト例、レスポンス例については、ID でユーザーの詳細を取得するをご覧ください。
4. ユーザーを作成する
POST https://api.indeed.com/scim/v2/UsersIndeed アカウントを作成します。従業員が組織に加わるとき、IdP はこの操作を呼び出してユーザー情報を SP に追加します。これにより、ユーザーは初日から必要なリソースとサービスにアクセスできます。
必須フィールドと任意フィールドは次のとおりです。
| フィールド | 必須 | 任意 |
|---|---|---|
1 つのプライマリ email | ✓ | |
externalId | ✓ | |
familyName | ✓ | |
givenName | ✓ | |
locale | ✓ | |
phoneNumbers | ✓ | |
preferredLanguage | ✓ | |
timezone | ✓ | |
title | ✓ | |
username | ✓ | |
userType | ✓ | |
EmployerOrganizations | ✓ |
リファレンス情報とリクエスト例、レスポンス例については、ユーザーを作成するをご覧ください。
5. ID でユーザーを更新する
PUT https://api.indeed.com/scim/v2/Users/:idIndeed アカウントを更新します。この操作は、属性が空または省略されている場合でも、アカウント上のすべての値を上書きします。
必須フィールドと任意フィールドは次のとおりです。
| フィールド | 必須 | 任意 |
|---|---|---|
1 つのプライマリ email | ✓ | |
externalId | ✓ | |
familyName | ✓ | |
givenName | ✓ | |
locale | ✓ | |
phoneNumbers | ✓ | |
preferredLanguage | ✓ | |
timezone | ✓ | |
title | ✓ | |
username | ✓ | |
userType | ✓ | |
EmployerOrganizations | ✓ |
リファレンス情報とリクエスト例、レスポンス例については、ID でユーザーを更新するをご覧ください。