の検索結果 :

×

会員登録 お問い合わせ

Drupal SCIM サーバー API エンドポイント

このドキュメントでは、SCIMによるユーザープロビジョニングとデプロビジョニングに必要なSCIMエンドポイントについて説明します。SCIMは、ユーザーのCRUD操作を自動化できる業界標準プロトコルです。 モジュールすると、DrupalサイトはSCIMサーバーとして機能できるようになります。つまり、アイデンティティプロバイダー(つまりSCIMクライアント)で行われた変更はすべてDrupalサイトと同期されます。

  • プロトコルバージョン: SCIM 2.0
  • ベースパス: ベースURL/scim
  • サポートされているリソース: ユーザー、グループ
  • データ形式: JSONの
  • 承認: ベアラートークン
  • コンテンツタイプ: アプリケーション/ json
  • 受け入れる: アプリケーション/ json

以下のAPI操作がサポートされています

ユーザーエンドポイント

グループエンドポイント

    Drupalでユーザーを無効化または削除するには、モジュールで必要な設定を有効にする必要があります。これらのオプションは、モジュールの設定ページで利用できます。

    PATCH /Users/{ユーザーID}
  • エラー:
  • エラー 状態 HTTPステータスコード
    検証例外 モジュールがアクティブ化されていないか、間違ったライセンスキーが使用されています 400
    不正な例外 認証ヘッダーが無効であるか、存在しません。 401
    リソースが見つかりません例外 指定されたユーザーは存在しません。 404
  • リクエストの例:
  • PATCH /Users/{user-id} HTTP/1.1 コンテンツタイプ: application/json 認証: Bearer { "操作": [ { "op": "置換", "パス": "アクティブ", "値": false } ] }
        
  • 応答例 - 204 No Content。
  • { "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], "id": "4", "userName": "ユーザー名", "active": , "emails": [{ "primary": true, "value": "example@example.com", "type": "work", "display": "example@example.com" }], "meta": { "resourceType": "User" } }
    
        

    既存のユーザーを取得するには、GETリクエストを送信します。 /ユーザー ユーザーIDを使用します。

    GET /Users/{ユーザーID}
  • エラー:
  • エラー 状態 HTTPステータスコード
    検証例外 モジュールがアクティブ化されていないか、間違ったライセンスキーが使用されています 400
    不正な例外 認証ヘッダーが無効であるか、存在しません。 401
    リソースが見つかりません例外 指定されたユーザーは存在しません。 404
  • リクエストの例:
  •     GET /Users/{user-id} HTTP/1.1 認証: ベアラー
  • 応答例:
    • 404お探しのページが見つかりませんでした。
    •     { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:Error" ], "detail": "ユーザーが見つかりません", "status": 404 }
      
    • 200 見つかりました。
    • { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "id": "4", "userName": "ユーザー名", "active": 1, "emails": [ { "primary": true, "value": "example@example.com", "type": "work", "display": "example@example.com" } ], "meta": { "resourceType": "User" } }
      

    このエンドポイントを使用すると、既存のユーザーリストから特定のユーザーをフィルタリングして取得できます。GETリクエストを送信することで、 /ユーザー エンドポイントにフィルターパラメータを追加することで、ユーザー名やメールアドレスなどの属性に基づいて結果を絞り込むことができます。エンドポイントはフィルター検索をサポートしていますが、1回のリクエストで返されるユーザーレコードは最大50件です。

  • エラー:
  • エラー 状態 HTTPステータスコード
    検証例外 モジュールがアクティブ化されていないか、間違ったライセンスキーが使用されています 400
    不正な例外 認証ヘッダーが無効であるか、存在しません。 401
    リソースが見つかりません例外 指定されたユーザーは存在しません。 404
    GET /ユーザー
  • クエリパラメータ:
  • 3.1 StartIndexとcount

      クエリパラメータとして startIndex と count を使用できます。startIndex は開始ID、count はクエリが返すことができる結果の最大数です。

    • リクエストの例:
    • GET /Users?startIndex=1&count=50 承認: Bearer 
      
    • 応答例:
    • { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 2, "startIndex": 1, "itemsPerPage": 2, "Resources": [ { "id": "1", "externalId": "1", "meta": { "resourceType": "User" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "userName": "example1@example.com", "displayName": "example1@example.com", "emails": { "value": "example1@example.com", "type": "work", "primary": true }, "active": true, "name": { "familyName": "", "givenName": "" }, "groups": [ "authenticated,administrator" ], "department": "" }, { "id": "13", "externalId": "13", "meta": { "resourceType": "User" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "userName": "example2", "displayName": "example2", "emails": { "value": "example2@example.com", "type": "work", "primary": true }, "active": true, "name": { "familyName": "", "givenName": "" }, "groups": [ "authenticated,administrator" ], "department": "" }, ] }
      

    3.2 ユーザー名でユーザーを検索する

    • リクエストの例:
    •  GET /Users?filter=ユーザー名 eq "admin" 
    • 応答例:
      • UserName でユーザーが見つからない場合、ユーザーが見つからなかったことを示す空のスキーマを送信します。
      • ユーザーが見つかりません - 200 Ok。

        { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 0, "startIndex": 1, "itemsPerPage": 0, "Resources": [] }
        

        ユーザーが見つかりました - 200 OK。

        { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 1, "startIndex": 1, "itemsPerPage": 10, "Resources": [ { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "id": "ユーザーのuid", "username": "admin", "emails": [ { "value": "email@gmail.com", "primary": true, "type": "work" } ] } ] }
        

    3.3 メールアドレスでユーザーを検索する

    • リクエストの例:
    • GET /Users?filter=emails[type eq "work"].value eq "email@gmail.com" 承認: Bearer
      
    • 応答例:
      • ユーザーが電子メールを提示した場合。
      • ユーザーが見つかりました - 200 OK。

        { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 1, "startIndex": 1, "itemsPerPage": 10, "Resources": [ { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "id": "ユーザーのuid", "username": "ユーザー名", "emails": [ { "value": "email@gmail.com", "primary": true, "type": "work" } ] } ] }
        
        
      • 電子メールでユーザーが見つからない場合、モジュールはユーザーが見つからなかったことを示す空のスキーマを送信します。
      • ユーザーが見つかりません - 200 Ok。

        { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 0, "startIndex": 1, "itemsPerPage": 0, "Resources": [] }
        
        

GETリクエストでユーザーが見つかった場合、PATCHまたはPUTリクエストでユーザーを更新します。見つからない場合は、POSTリクエストでユーザーを作成します。ユーザーの特定のフィールドを更新するには、 PATCH/ユーザー エンドポイント。リクエスト本文には、変更する属性とその更新後の値を含めます。

PATCH /Users/{ユーザーID}
  • エラー:
  • エラー 状態 HTTPステータスコード
    検証例外 モジュールがアクティブ化されていないか、間違ったライセンスキーが使用されています 400
    不正な例外 認証ヘッダーが無効であるか、存在しません。 401
    リソースが見つかりません例外 指定されたユーザーは存在しません。 404
  • リクエストの例:
  • PATCH/Users/{{user-id}} HTTP/1.1 コンテンツタイプ: application/json 認証: Bearer { "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations": [ { "op": "Replace", "path": "emails[type eq \"work\"].value", "value": "email@gmail.com" }, { "op": "Replace", "path": "name.familyName", "value": "familyname" } ] }
    
  • 応答例: 200 OK。
  • { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "id": "ユーザーのuid", "userName": "ユーザー名", "active": 1, "emails": [ { "primary": true, "value": "email@gmail.com", "type": "work", "display": "email@gmail.com" } ], "meta": { "resourceType": "User" } }
    

PUTリクエストを使用してユーザーを更新できます。 /ユーザー エンドポイント。このリクエストはユーザーオブジェクト全体を置き換えるため、必要なすべてのユーザー属性を本文に指定する必要があります。

PUT /Users/{{ユーザーID}}
  • エラー:
  • エラー 状態 HTTPステータスコード
    検証例外 モジュールがアクティブ化されていないか、間違ったライセンスキーが使用されています 400
    不正な例外 認証ヘッダーが無効であるか、存在しません。 401
    リソースが見つかりません例外 指定されたユーザーは存在しません。 404
  • リクエストの例:
  • PUT/Users/{{user-id}} HTTP/1.1 コンテンツタイプ: application/json 認証: Bearer { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "id": "97", "userName": "exmple", "active": 1, "emails": [ { "primary": true, "value": "exmple@example.com", "type": "work", "display": "exmple@example.com" } ], "meta": { "resourceType": "User" }, "name": { "givenName": "givenName", "familyName": "familyName", "middleName": "sdf", "honorificPrefix": "sdf" }, "displayName": "givenName familyName", "nickName": "df", "addresses": [ { "primary": true, "locality": "fdd" } ], "locale": "en-US", "externalId": "9rqltOOLI95d7", 「グループ」: [] }
    
  • 応答例: 200 ok。
  • { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "id": "97", "userName": "example", "active": 1, "emails": [ { "primary": true, "value": "example@example.com", "type": "work", "display": "example@example.com" } ], "meta": { "resourceType": "User" } }
    

6. ユーザーの作成(POST)

POSTリクエストを使用する /ユーザー エンドポイントを使用して新しいユーザーを作成します。リクエスト本文に必要なフィールドをすべて含めてください。リクエストが成功すると、201 Created とユーザーの詳細が返されます。

POST /ユーザー
  • エラー:
  • エラー 状態 HTTPステータスコード
    検証例外 モジュールがアクティブ化されていないか、間違ったライセンスキーが使用されています 400
    不正な例外 認証ヘッダーが無効であるか、存在しません。 401
    競合例外 ユーザーは既に存在します。 409
  • リクエストの例:
  • POST /Users HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"], "externalId": "abc", "userName": "example", "active": true, "emails": [{ "primary": true, "type": "work", "value": "example@example.com" }], "meta": { "resourceType": "User" }, "name": { "formatted": "名 姓", "familyName": "姓", "givenName": "名" } }
    
  • 応答例: 201 が作成されました。
  • { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" ], "externalId": "abc", "userName": "example", "active": true, "emails": [ { "primary": true, "type": "work", "value": "example@example.com" } ], "meta": { "resourceType": "User" }, "name": { "formatted": "名 姓", "familyName": "姓", "givenName": "名" }, "id": "98" }
    

その /グループ エンドポイントは、SCIMサーバー上で利用可能なグループのリストを取得するためのGETリクエストをサポートしています。この操作は、グループIDや表示名などの基本的なグループ情報のみを返します。エンドポイントはレスポンスにグループメンバーシップの詳細を含めないため、メンバーリストは常に空で返されます。

  • リクエストの例:
  • GET /Groups HTTP/1.1 認証: ベアラー
  • 応答例 - 200 ok
  • { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 4, "Resources": [ { "id": "anonymous", "meta": { "resourceType": "Group" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "displayName": "anonymous" }, { "id": "authenticated", "meta": { "resourceType": "Group" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "displayName": "authenticated" }, { "id": "administrator", "meta": { "resourceType": "Group" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "displayName": "管理者" }, { "id": "editor_admin", "meta": { "resourceType": "グループ" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "displayName": "editor_admin" } ], "startIndex": 1, "itemsPerPage": 4 }
    
    
  • サポートされているフィルター:
  • GET /Groups?filter=displayName が "administrator" である
  • リクエストの例:
  • GET /scim/Groups?filter=displayName eq "administrator" HTTP/1.1 認証: Bearer
    
  • 応答例: 200 ok。
  • 表示名を持つグループが見つかった場合。

    { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 0, "Resources": [], "startIndex": 1, "itemsPerPage": 20 }
    

/グループ/{id} 指定されたグループIDに関連付けられたグループリソースを取得します。レスポンスにはグループのメタデータのみが返されます。メンバーシップの詳細は含まれません。

  • リクエストの例:
  • GET /Groups/administrator HTTP/1.1 認証: Bearer
    
  • 応答例:
    • 見つかりました - 200 OK。

      { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "id": "管理者", "meta": { "resourceType": "グループ" }, "displayName": "管理者" }
      
      

      見つかりません - 404。

      { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:Error" ], "detail": "グループ管理者が見つかりません", "status": 404 }
      
      

使用 POST 要求する /グループ 新しいグループを作成します。グループ名(displayName)を指定する必要があります。リクエスト本文にメンバーを含めることはできますが、レスポンスでは常に空のメンバーリストが返されます。

  • エラー:
  • エラー 状態 HTTPステータスコード
    検証例外 モジュールがアクティブ化されていないか、間違ったライセンスキーが使用されています 400
    不正な例外 認証ヘッダーが無効であるか、存在しません。 401
    操作がサポートされていない例外 グループの変更は許可されていません 501
  • リクエストの例:
    • メンバーリストが含まれていないリクエスト。
    • POST /Groups HTTP/1.1 認証: ベアラー{ "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"], "externalId": "enternal-id", "displayName": "group2", "meta": { "resourceType": "Group" } }
      
    • メンバーリスト付きのリクエスト。
    • POST /Groups HTTP/1.1 コンテンツタイプ: application/json 認証: Bearer { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "displayName": "group1", "members": [ { "value": "3", "display": "admin@gmail.com" }, { "value": "2", "display": "admin2@gmail.com" } ] }
      
  • レスポンス: 201 作成されました。
  • { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "externalId": "enternal-id", "displayName": "group2", "meta": { "resourceType": "Group" }, "members": [], "id": "group2" }
    

PATCHリクエストを使用して、表示名などのグループの基本情報を更新できます。 /グループ/{グループID}このリクエストは、指定した属性のみを更新し、グループのメンバーは変更しません。更新が成功すると、204 No Content が返されます。

  • リクエストの例:
  • PATCH /Groups/group1 HTTP/1.1 認証: ベアラー 
    
    { "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations": [{ "op": "Replace", "path": "displayName", "value": "updated group1" }] }
    
  • 応答例 - 204 No Content。

その /グループ/{id} エンドポイントは、PATCHリクエストによるメンバーの追加と削除をサポートしています。リクエストボディには、追加するユーザーIDのリストを含める必要があります。このアクションはグループのメンバーの更新のみを行い、成功した場合は204 No Contentを返します。

  • リクエストの例:
    • グループにメンバーを追加します。
    • PATCH /Groups/updated group1 HTTP/1.1 コンテンツタイプ: application/json 認証: Bearer { "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations": [{ "op": "Add", "path": "members", "value": [{ "$ref": null, "value": "97" }] }] }
      
    • グループからメンバーを削除します。
    • PATCH /Groups/updated group1 HTTP/1.1 認証: ベアラー{ "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations": [{ "op": "Remove", "path": "members", "value": [{ "$ref": null, "value": "97" }] }] }
      
  • 応答例: 204 No Content。

その /グループ/{id} エンドポイントは、 DELETE リクエスト。この操作は、SCIMサーバーからグループを削除します。削除が成功すると、 204 コンテンツなし 応答はグループが削除されたことを示し、応答本文は提供されません。

  • リクエストの例:
  • DELETE /Groups/updated group1 HTTP/1.1 認証: Bearer
    
  • 応答例 - 204 No Content。

設定が成功しなかった場合は、 drupalsupport@xecurify.com。 エラー ウィンドウのスクリーンショットを送信してください。問題の解決とセットアップの手順をお手伝いします。

ADFS_sso ×
こんにちは!

助けが必要? 私たちはここにいます!

対応