クロスドメイン ID 管理システム (SCIM)
Liferay DXP 2024.Q1+
SCIM(System for Cross-domain Identity Management)は、ユーザープロビジョニングを自動化するオープンスタンダードです。 つまり、これはユーザーIDを作成、更新、無効化するための標準的な方法である。 SCIMは、異なるアプリケーション間でユーザー/グループデータを同期させるための、RFCに準拠した統一的な方法を提供します。 それは以下から構成されます
- ユーザーとグループを表すための定義済みスキーマ。 詳細については、 ユーザーリソーススキーマ および グループリソーススキーマ を参照してください。
- これらのユーザーとグループに対してCRUD操作を実行し、同期を維持するためのRESTful API。 詳細については、 SCIM ユーザー API の基本 および SCIM グループ API の基本 を参照してください。
SCIMを使用すると、自社アプリケーションとLiferayなどのサービスプロバイダーとの間で、ユーザーID情報を安全に交換するプロセスを自動化できます。 これは、会社が複数のアプリケーションを使用しており、独自の実装を行わずにユーザーデータを同期させたい場合に役立ちます。
技術規格および仕様
Liferayは、ベンダー固有の拡張機能よりも標準化された動作を優先します。 このアプローチは、同じ仕様を実装するIDプロバイダーとの相互運用性を促進する。 ベンダー拡張機能は動作する可能性がありますが、オプションとして扱われ、LiferayのコアSCIM実装の一部ではありません。
以下の仕様では、キーワード「MUST」、「MUST NOT」、「REQUIRED」、「SHALL」、「SHALL NOT」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「MAY」、「OPTIONAL」は、 RFC 2119 に記載されているとおりに解釈されます。
SCIMサービスプロバイダの動作については、仕様書で MUST (および同等の用語)とマークされた要件が実装され、サポートされます。 SHOULD または MAY とマークされた要件のサポートは、バージョンによって異なります。
| 仕様 | Description | Liferayで実装 | リンク |
|---|---|---|---|
| SCIMコアスキーマ(RFC 7643) | ユーザー、グループ、およびサービスプロバイダ構成データを表現するための標準スキーマを定義します。 | サービスプロバイダーに対するすべての 必須 要件が実装され、サポートされています。 | RFC 7643 |
| SCIMプロトコル(RFC 7644) | SCIMリソースのプロビジョニング、更新、およびクエリに使用されるHTTP操作と動作を定義します。 | サービスプロバイダーに対するすべての 必須 要件が実装され、サポートされています。 | RFC 7644 |
サポートされているオプション機能
Liferay では、 MUST とマークされていない仕様要件の一部が実装されています。
-
PATCH
/GroupsRFC 7644 - セクション3.5.2(パッチによるリソースの変更)で定義されているようにサポートされている。 SCIMグループAPIの基本 を参照してください。 -
リソースのクエリ ユーザー および グループでサポートされています。これは RFC 7644 – セクション 3.4 (リソースの取得) で定義されています。
-
フィルタリング RFC 7644 - セクション3.4.2.2(フィルタリング)で定義されているようにサポートされる。 サポートされているフィルター:
/Users:externalId、userName/グループ:表示名
-
サービスプロバイダ検出エンドポイント
GET /ServiceProviderConfig、GET /Schemas、およびGET /ResourceTypesは、 RFC 7644 – セクション 4 (サービスプロバイダ構成エンドポイント) で定義されています。
サポートされているIDプロバイダー
Liferayは、同じSCIM仕様要件に準拠するIDプロバイダーとの相互運用性をサポートしています。 一般的に利用されているプロバイダーは以下のとおりです。
- マイクロソフト エントラ
- オクタ
- CyberArk Identity
- Ping ID (UnboundID)
- ワンログイン
SCIMクライアントの登録
-
グローバルメニュー (
) を開き、 コントロールパネル → インスタンス設定 → セキュリティ → SCIM に移動します。 -
OAuth 2アプリケーション名フィールドに名前を入力してください。
ここに入力された名前は、SCIMクライアントIDを生成するために使用されます。 このIDは、ユーザーとグループをSCIMクライアントにリンクするために使用されます。 SCIM クライアント名が
Test SCIM Clientの場合、生成される SCIM クライアント ID はSCIM_test-scim-clientです。 -
マッチャーフィールドを
ユーザー名またはメールアドレスに設定します。SCIMクライアントはこのフィールドを使用して、サービスプロバイダと接続されたアプリケーション内のユーザーデータを照合します。 これにより、プロビジョニングに関する問題を回避し、データの重複を防ぐことができます。

-
アクセストークン欄は最初は空欄です。 生成 をクリックし、 OK をクリックして、フィールドにアクセストークンを入力します。 アクセストークンは、取り消されない限り1年後に期限切れとなります。 アクセストークンを生成するのが今回が初めてでない場合、既存のトークンは上書きされますが、有効期限は最長でさらに10日間です。 この猶予期間を利用して、クライアントアプリケーションで新しいトークンを設定できます。
Authorizationリクエストヘッダーにアクセストークンを設定することで、SCIM API を呼び出すことができます。 すべてのアクセストークンを取り消すには、 取り消し をクリックし、 OKをクリックします。 -
[保存]をクリックします。
スケジューラは毎日実行され、 SCIM_ というプレフィックスで始まるすべての OAuth 2 アプリケーションを取得します。 アクセストークンの有効期限が30日以内、10日以内、または1日以内の場合、すべての管理者にLiferay内および電子メールで通知されます。 上記ページには、管理者に対し有効期限前に新しいトークンを生成するよう指示する警告メッセージも表示されます。
SCIMの設定を保存すると、OAuth 2アプリケーションがプロビジョニングされます。 このアプリはクライアント認証情報フローを使用しており、現在ログインしているユーザーがデフォルトのクライアント認証情報ユーザーになります。 SCIMアクセストークンを生成すると、このユーザーが生成されたトークンの所有者になります。 このトークンを使用して行われたすべての活動は、このユーザーに遡って追跡可能です。 SCIM構成を保存する前に、適切な権限と特権を持つユーザーを作成するか、既存のユーザーを使用するようにしてください。 デフォルトのSCIMユーザーを別のユーザーに変更したい場合は、以下の手順を参照してください。
デフォルトのSCIMユーザーを変更する
-
グローバルメニュー (
) を開き、 コントロールパネル → OAuth 2 管理 に移動します。 -
先に生成したSCIMクライアントIDに基づいてアプリを検索してください。
-
クライアント資格情報ユーザーセクションまでスクロールダウンし、 をクリックしてを選択します。
-
適切な権限と特権を持つユーザーを選択してください。 ユーザーが既にサインインしている場合は、 サインイン済みのユーザーを使用 をクリックします。
-
[保存]をクリックします。
SCIMクライアントのリセット
Liferay DXP 2024.Q4+/Portal GA129+ ベータ版機能
新しいSCIMクライアントを登録するには、既存のクライアントをリセットして、SCIMクライアントデータと生成されたOAuth 2トークンを削除する必要があります。
-
グローバルメニュー (
) を開き、 コントロールパネル → インスタンス設定 → セキュリティ → SCIM に移動します。 -
リセット をクリックし、次に OK をクリックします。
これにより、アクセストークン、マッチャーフィールド、およびOAuth 2アプリケーション名の各フィールドがクリアされます。 また、SCIMクライアントに関連付けられているOAuth 2アプリケーションも削除されます。