SCIM APIガイド
サードパーティシステムは、System for Cross-domain Identity Management(SCIM)APIを呼び出してユーザーディレクトリを同期できます。
このAPIとそのドキュメントを使用して連携を構築すると、APIに関する追加の利用規約およびガイドラインに同意したことになります。
SCIM APIの概要
System for Cross-domain Identity Management(SCIM)APIは、SCIMプロトコルを使用して、サードパーティシステムがユーザーの代わりにIndeedへAPI呼び出しを行い、Indeed PLUS連携用にユーザーディレクトリを同期できるようにします。通常、こうしたユーザーは、Indeed.comのユーザーから分離されたリソースグループに属します。これらのリソースグループにより、サードパーティシステムは、ユーザー自身がIndeed上にアカウントを作成することなく、これらのユーザーに対する作成、削除、権限付与などの直接的な所有権を持つことができます。
エンドユーザーから見ると、Indeed上にアカウントを持つことはありません。サードパーティのユーザーはIndeedに直接サインインできず、サードパーティシステム経由でのみ間接的にサインインし、サードパーティユーザーのコンテキスト内でAPIにアクセスできるためです。
次の表は、SCIM APIのサードパーティ呼び出し元と、そのユースケースを示しています。
| サードパーティ呼び出し元 | SCIM APIを呼び出して行うこと |
|---|---|
| 採用管理システム(ATS) | 雇用主のユーザーをIndeedのリソースグループにプロビジョニングし、Scoutなどのツールにアクセスできるようにします。 |
| Recruit運営の求人サイト | ユーザーをIndeedに連携し、Indeedのモデレーション機能にアクセスできるようにします。 |
| Glassdoorなどのパートナー | ユーザー連携を管理し、GlassdoorとIndeedで一貫した体験を提供します。 |
SCIM APIの対応スキーマと任意スキーマに関する情報については、SCIM APIスキーマをご覧ください。
この連携を始めるにあたってのお問い合わせやご質問は、fim-team@indeed.comまでご連絡ください。
SCIM APIのOAuth
Indeedパートナーになると、Indeedが連携用のアプリを作成します。Partner Consoleにログインして、アプリとOAuth認証情報(クライアントID、クライアントシークレット、および3-legged OAuthの場合は認可コード)を確認します。認証情報をアクセストークンと交換し、API呼び出しを認証します。
次の手順を実行します。
| # | 手順 |
|---|---|
| 1. | |
| 2. | |
| 3. |
Indeedのパートナーになる
まだパートナーでない場合は、Indeedのパートナーに登録してください。
OAuth認証情報を取得する
-
ご利用のIndeedユーザーアカウントでPartner Consoleにログインします。
-
ダッシュボードで、Appsリストから対象のアプリを選択します。
アプリ詳細ページのCredentialsタブに、OAuth認証情報(クライアントIDとシークレット)が表示されます。
アクセストークンを取得する
アクセストークンを取得するには、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サービスはアクセストークンを検証し、有効期限が切れていないことを確認します。SCIMサービスは、トークンの署名、発行者、対象者、有効期限を確認します。
トークンが有効であれば、SCIMサービスはリクエストを処理し、適切なレスポンスを返します。トークンが無効または期限切れの場合、サービスはHTTP 401 Unauthorizedステータスコードを返します。
SCIM APIの操作
OAuthが完了したら、次の操作を呼び出せます。
| 操作 | 説明 |
|---|---|
| 条件でユーザー詳細を取得する | リクエスト元のテナントに関連付けられたIndeedアカウントの詳細を取得します。 |
| IDでユーザー詳細を取得する | 一意のIDで、Indeedユーザーアカウントの詳細を取得します。プロフィール情報、ロール、グループ所属など、ユーザーの詳細にアクセスまたは確認するためにこの操作を呼び出します。 |
| ユーザーを作成する | Indeedユーザーアカウントを作成します。 |
| IDでユーザーを更新する | Indeedアカウントを更新し、アカウントの変更可能なすべての値を上書きします。 |
| IDでユーザーを削除する | Indeedユーザーアカウントをハードデリートし、Indeedからユーザーのアイデンティティデータを消去します。 |
条件でユーザー詳細を取得する
GET https://api.indeed.com/scim/v2/Usersリクエスト元のテナントに関連付けられたIndeedアカウントの詳細を取得します。
この操作は、Identity Provider(IdP)とService Provider(SP)間でユーザーデータを同期するために呼び出します。
たとえば、完全同期の際には、IdPがSPに対してクエリを行い、すべての操作が完了した後にSPがIdPと一致するように、追加・削除・更新すべきユーザーを判断します。
この操作は最大1人のユーザーを返します。条件に複数のユーザーが一致する場合は、エラーを返します。
リファレンス情報とリクエスト・レスポンス例については、条件でユーザー詳細を取得するをご覧ください。
IDでユーザー詳細を取得する
GET https://api.indeed.com/scim/v2/Users/:idユーザーの一意のIDで、Indeedユーザーアカウントの詳細を取得します。
プロフィール情報、ロール、グループ所属など、ユーザーの詳細にアクセスまたは確認するためにこの操作を呼び出します。
たとえば、IdPでユーザーが変更された場合、IdPはSPに対してクエリを行い、現在のSPユーザーの状態を確認した後、POSTまたはPUTコマンドを送信してSPをIdPと整合させることができます。
リファレンス情報とリクエスト・レスポンス例については、IDでユーザー詳細を取得するをご覧ください。
ユーザーを作成する
POST https://api.indeed.com/scim/v2/Users Indeedアカウントを作成します。従業員が組織に参加した際、IdPはこの操作を呼び出してユーザー 情報をSPに追加することで、初日から必要なリソースとサービスにアクセスできるようにします。
必須フィールドと任意フィールドは次のとおりです。
| フィールド | 必須 | 任意 |
|---|---|---|
プライマリのemailを1つ | ✓ | |
externalId | ✓ | |
familyName | ✓ | |
givenName | ✓ | |
locale | ✓ | |
phoneNumbers | ✓ | |
preferredLanguage | ✓ | |
timezone | ✓ | |
title | ✓ | |
username | ✓ | |
userType | ✓ | |
EmployerOrganizations | ✓ |
リファレンス情報とリクエスト・レスポンス例については、ユーザーを作成するをご覧ください。
IDでユーザーを更新する
PUT /Users/{id}Indeedアカウントを更新し、属性が空または未指定であっても、ユーザーアカウントのすべての値を上書きします。
必須フィールドと任意フィールドは次のとおりです。
| フィールド | 必須 | 任意 |
|---|---|---|
プライマリのemailを1つ | ✓ | |
externalId | ✓ | |
familyName | ✓ | |
givenName | ✓ | |
locale | ✓ | |
phoneNumbers | ✓ | |
preferredLanguage | ✓ | |
timezone | ✓ | |
title | ✓ | |
username | ✓ | |
userType | ✓ | |
EmployerOrganizations | ✓ |
リファレンス情報とリクエスト・レスポンス例については、IDでユーザーを更新するをご覧ください。
IDでユーザーを削除する
DELETE https://api.indeed.com/scim/v2/Users/:idIndeedユーザーアカウントをハードデリートし、Indeedからユーザーのアイデンティティデータを消去します。
従業員が組織を離れる際、IdPはこの操作を呼び出してシステムからユーザーを削除できます。この操作はIndeed内のユーザーのアイデンティティデータを消去し、再有効化を防ぐことで、組織のリソースおよびサービスへのアクセスを終了させます。
この操作は、Indeedのすべてのプラットフォームにわたってユーザーのすべての個人識別情報(PII)をサニタイズするわけではありません。DELETE操作の前後に、適切な窓口を通じてGDPR関連のデータサニタイズ依頼を処理してください。両リクエストは順序に関係なく正しく処理されます。
リファレンス情報とリクエスト・レスポンス例については、IDでユーザーを削除するをご覧ください。
RFC
- RFC 3966: The tel URI for Telephone Numbers
- RFC 7642: System for Cross-domain Identity Management: Definitions, Overview, Concepts, and Requirements
- RFC 7643: System for Cross-domain Identity Management: Core Schema
- RFC 7644: System for Cross-domain Identity Management: Protocol