검색 결과 :

×

Drupal SCIM 서버 API 엔드포인트

이 문서에서는 SCIM 사용자 프로비저닝 및 프로비저닝 해제를 활성화하는 데 필요한 SCIM 엔드포인트에 대해 설명합니다. SCIM은 사용자 CRUD(사용자 작업 자동화)를 자동화할 수 있는 업계 표준 프로토콜입니다. 모듈Drupal 사이트는 SCIM 서버 역할을 할 수 있습니다. 즉, ID 공급자(예: SCIM 클라이언트)에서 변경된 모든 내용이 Drupal 사이트와 동기화됩니다.

  • 프로토콜 버전: SCIM 2.0
  • 기본 경로: 베이스_URL/scim
  • 지원되는 리소스: 사용자, 그룹
  • 데이터 형식: JSON
  • 권한 부여: 무기명 토큰
  • 컨텐츠 타입: 응용 프로그램 / json
  • 수락 : 응용 프로그램 / json

다음 API 작업이 지원됩니다.

사용자 엔드포인트

그룹 엔드포인트

    Drupal에서 사용자를 비활성화하거나 삭제하려면 모듈에서 필요한 설정을 활성화해야 합니다. 이러한 옵션은 모듈의 구성 페이지에서 사용할 수 있습니다.

    패치 /Users/{user-id}
  • 오류 :
  • 오류 상태 HTTP 상태 코드
    유효성 검사 예외 모듈이 활성화되지 않았거나 잘못된 라이센스 키가 사용되었습니다. 400
    권한이 없는 예외 권한 헤더가 잘못되었거나 없습니다. 401
    리소스가 발견되지 않음 예외 지정된 사용자가 존재하지 않습니다. 404
  • 요청 예 :
  • PATCH /Users/{user-id} HTTP/1.1 Content-Type: application/json Authorization: Bearer { "작업": [ { "op": "교체", "경로": "활성", "값": false } ] }
        
  • 응답 예시 - 204 콘텐츠 없음.
  • { "스키마": ["urn:ietf:params:scim:schemas:core:2.0:사용자"], "id": "4", "userName": "사용자 이름", "활성": , "이메일": [{ "primary": true, "value": "example@example.com", "type": "work", "display": "example@example.com" }], "meta": { "resourceType": "사용자" } }
    
        

    기존 사용자를 가져오려면 GET 요청을 만드세요. / 사용자 사용자 ID를 사용하여.

    GET /Users/{사용자 ID}
  • 오류 :
  • 오류 상태 HTTP 상태 코드
    유효성 검사 예외 모듈이 활성화되지 않았거나 잘못된 라이센스 키가 사용되었습니다. 400
    권한이 없는 예외 권한 헤더가 잘못되었거나 없습니다. 401
    리소스가 발견되지 않음 예외 지정된 사용자가 존재하지 않습니다. 404
  • 요청 예 :
  •     GET /Users/{user-id} HTTP/1.1 권한 부여: Bearer
  • 예시 응답:
    • 404 찾을 수 없음.
    •     { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:Error" ], "detail": "사용자를 찾을 수 없습니다", "status": 404 }
      
    • 200개의 Ok가 발견되었습니다.
    • { "스키마": [ "urn:ietf:params:scim:schemas:core:2.0:사용자" ], "id": "4", "userName": "사용자 이름", "활성": 1, "이메일": [ { "기본": true, "값": "example@example.com", "유형": "작업", "디스플레이": "example@example.com" } ], "메타": { "리소스유형": "사용자" } }
      

    이 엔드포인트를 사용하면 기존 사용자 목록에서 특정 사용자를 필터링하고 검색할 수 있습니다. GET 요청을 보내면 / 사용자 엔드포인트에 필터 매개변수를 추가하면 사용자 이름 및 이메일과 같은 속성을 기준으로 검색 결과를 좁힐 수 있습니다. 엔드포인트는 필터링된 검색을 지원하지만 요청당 최대 50개의 사용자 레코드를 반환할 수 있습니다.

  • 오류 :
  • 오류 상태 HTTP 상태 코드
    유효성 검사 예외 모듈이 활성화되지 않았거나 잘못된 라이센스 키가 사용되었습니다. 400
    권한이 없는 예외 권한 헤더가 잘못되었거나 없습니다. 401
    리소스가 발견되지 않음 예외 지정된 사용자가 존재하지 않습니다. 404
    GET /사용자
  • 쿼리 매개변수:
  • 3.1 StartIndex 및 count

      startIndex와 count를 쿼리 매개변수로 허용합니다. 여기서 startIndex는 시작 ID이고, count는 쿼리가 반환할 수 있는 최대 결과 수입니다.

    • 요청 예 :
    • GET /Users?startIndex=1&count=50 권한: Bearer 
      
    • 예시 응답:
    • { "스키마": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 2, "startIndex": 1, "itemsPerPage": 2, "리소스": [ { "id": "1", "externalId": "1", "meta": { "resourceType": "사용자" }, "스키마": [ "urn:ietf:params:scim:schemas:core:2.0:사용자" ], "userName": "example1@example.com", "displayName": "example1@example.com", "emails": { "value": "example1@example.com", "type": "work", "primary": true }, "active": true, "name": { "familyName": "", "givenName": "" }, "그룹": [ "인증됨, 관리자" ], "부서": "" }, { "id": "13", "externalId": "13", "meta": { "resourceType": "사용자" }, "스키마": [ "urn:ietf:params:scim:schemas:core:2.0:사용자" ], "사용자 이름": "example2", "디스플레이 이름": "example2", "이메일": { "값": "example2@example.com", "유형": "업무", "기본": true }, "활성": true, "이름": { "가족 이름": "", "givenName": "" }, "그룹": [ "인증됨, 관리자" ], "부서": "" }, ] }
      

    3.2 사용자 이름으로 사용자 검색

    • 요청 예 :
    •  GET /Users?filter=userName eq "admin" 
    • 예시 응답:
      • UserName으로 사용자를 찾을 수 없는 경우 사용자를 찾을 수 없음을 나타내는 빈 스키마를 보냅니다.
      • 사용자를 찾을 수 없습니다 - 200 Ok.

        { "스키마": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 0, "startIndex": 1, "itemsPerPage": 0, "리소스": [] }
        

        사용자를 찾았습니다 - 200 Ok.

        { "스키마": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 1, "startIndex": 1, "itemsPerPage": 10, "리소스": [ { "스키마": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "id": "사용자의 UID", "사용자 이름": "관리자", "이메일": [ { "값": "email@gmail.com", "기본": true, "유형": "작업" } ] } ] }
        

    3.3 이메일 주소로 사용자 검색

    • 요청 예 :
    • GET /Users?filter=emails[type eq "work"].value eq "email@gmail.com" 권한: 전달자
      
    • 예시 응답:
      • 사용자가 이메일을 제시하는 경우.
      • 사용자를 찾았습니다 - 200 Ok.

        { "스키마": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 1, "startIndex": 1, "itemsPerPage": 10, "리소스": [ { "스키마": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "id": "사용자의 UID", "username": "사용자 이름", "이메일": [ { "값": "email@gmail.com", "primary": true, "유형": "작업" } ] } ] }
        
        
      • 이메일로 사용자를 찾을 수 없는 경우, 모듈은 사용자를 찾을 수 없음을 나타내는 빈 스키마를 전송합니다.
      • 사용자를 찾을 수 없습니다 - 200 Ok.

        { "스키마": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 0, "startIndex": 1, "itemsPerPage": 0, "리소스": [] }
        
        

GET 요청에서 사용자가 발견되면 PATCH 또는 PUT 요청이 수행되어 사용자를 업데이트합니다. 그렇지 않으면 POST 요청이 수행되어 사용자를 생성합니다. 다음을 사용하여 사용자의 특정 필드를 업데이트할 수 있습니다. 반점 요청 / 사용자 엔드포인트. 요청 본문에 변경하려는 속성과 업데이트된 값을 포함합니다.

패치 /Users/{user-id}
  • 오류 :
  • 오류 상태 HTTP 상태 코드
    유효성 검사 예외 모듈이 활성화되지 않았거나 잘못된 라이센스 키가 사용되었습니다. 400
    권한이 없는 예외 권한 헤더가 잘못되었거나 없습니다. 401
    리소스가 발견되지 않음 예외 지정된 사용자가 존재하지 않습니다. 404
  • 요청 예 :
  • PATCH/Users/{{user-id}} HTTP/1.1 콘텐츠 유형: application/json 권한 부여: Bearer { "스키마": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "작업": [ { "op": "바꾸기", "경로": "emails[유형 eq \"work\"].value", "값": "email@gmail.com" }, { "op": "바꾸기", "경로": "이름.가족 이름", "값": "가족 이름" } ] }
    
  • 응답 예시: 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": "사용자" } }
    

PUT 요청을 사용하여 사용자를 업데이트할 수 있습니다. / 사용자 엔드포인트. 이 요청은 사용자 객체 전체를 대체하므로, 모든 필수 사용자 속성을 본문에 제공해야 합니다.

PUT /Users/{{user-id}}
  • 오류 :
  • 오류 상태 HTTP 상태 코드
    유효성 검사 예외 모듈이 활성화되지 않았거나 잘못된 라이센스 키가 사용되었습니다. 400
    권한이 없는 예외 권한 헤더가 잘못되었거나 없습니다. 401
    리소스가 발견되지 않음 예외 지정된 사용자가 존재하지 않습니다. 404
  • 요청 예 :
  • PUT/Users/{{user-id}} HTTP/1.1 콘텐츠 유형: application/json 권한 부여: Bearer { "스키마": [ "urn:ietf:params:scim:schemas:core:2.0:사용자" ], "id": "97", "userName": "예", "활성": 1, "이메일": [ { "기본": true, "값": "exmple@example.com", "유형": "작업", "표시": "exmple@example.com" } ], "메타": { "리소스유형": "사용자" }, "이름": { "givenName": "givenName", "가족이름": "가족이름", "중간이름": "sdf", "honorificPrefix": "sdf" }, "표시이름": "givenName 가족이름", "별명": "df", "주소": [ { "기본": true, "지역": "fdd" } ], "locale": "en-US", "externalId": "9rqltOOLI95d7", "groups": [] }
    
  • 응답 예시: 200 확인.
  • { "스키마": [ "urn:ietf:params:scim:schemas:core:2.0:사용자" ], "id": "97", "사용자 이름": "예제", "활성": 1, "이메일": [ { "기본": true, "값": "example@example.com", "유형": "작업", "디스플레이": "example@example.com" } ], "메타": { "리소스 유형": "사용자" } }
    

6. 사용자 생성(POST)

POST 요청을 사용하세요 / 사용자 새 사용자를 생성하려면 엔드포인트를 사용하세요. 요청 본문에 필요한 모든 필드를 포함해야 합니다. 요청이 성공하면 201 Created와 사용자 세부 정보가 반환됩니다.

POST /사용자
  • 오류 :
  • 오류 상태 HTTP 상태 코드
    유효성 검사 예외 모듈이 활성화되지 않았거나 잘못된 라이센스 키가 사용되었습니다. 400
    권한이 없는 예외 권한 헤더가 잘못되었거나 없습니다. 401
    충돌 예외 사용자가 이미 존재합니다. 409
  • 요청 예 :
  • POST /Users HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer { "스키마": [ "urn:ietf:params:scim:schemas:core:2.0:사용자", "urn:ietf:params:scim:schemas:확장:엔터프라이즈:2.0:사용자"], "externalId": "abc", "userName": "예제", "활성": true, "이메일": [{ "기본": true, "유형": "작업", "값": "example@example.com" }], "메타": { "리소스타입": "사용자" }, "이름": { "포맷팅됨": "이름 성", "가족이름": "성", "givenName": "이름" } }
    
  • 응답 예시: 201개가 생성되었습니다.
  • { "스키마": [ "urn:ietf:params:scim:schemas:core:2.0:사용자", "urn:ietf:params:scim:schemas:확장:엔터프라이즈:2.0:사용자" ], "externalId": "abc", "userName": "예제", "활성": true, "이메일": [ { "기본": true, "유형": "작업", "값": "example@example.com" } ], "메타": { "리소스타입": "사용자" }, "이름": { "포맷팅됨": "이름 성", "가족이름": "성", "givenName": "이름" }, "id": "98" }
    

The /여러 떼 엔드포인트는 SCIM 서버에서 사용 가능한 그룹 목록을 검색하는 GET 요청을 지원합니다. 이 작업은 그룹 ID 및 표시 이름과 같은 기본 그룹 정보만 반환합니다. 엔드포인트가 응답에 그룹 멤버십 정보를 포함하지 않으므로 멤버 목록은 항상 비어 있는 상태로 반환됩니다.

  • 요청 예 :
  • GET /그룹 HTTP/1.1 권한 부여: 베어러
  • 응답 예시 - 200 ok
  • { "스키마": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 4, "리소스": [ { "id": "익명", "메타": { "resourceType": "그룹" }, "스키마": [ "urn:ietf:params:scim:schemas:core:2.0:그룹" ], "displayName": "익명" }, { "id": "인증됨", "메타": { "resourceType": "그룹" }, "스키마": [ "urn:ietf:params:scim:schemas:core:2.0:그룹" ], "displayName": "인증됨" }, { "id": "관리자", "메타": { "resourceType": "그룹" }, "스키마": [ "urn:ietf:params:scim:schemas:core:2.0:그룹" ], "디스플레이 이름": "관리자" }, { "id": "editor_admin", "메타": { "resourceType": "그룹" }, "스키마": [ "urn:ietf:params:scim:schemas:core:2.0:그룹" ], "디스플레이 이름": "editor_admin" } ], "startIndex": 1, "itemsPerPage": 4 }
    
    
  • 지원되는 필터:
  • GET /그룹?필터=디스플레이이름 eq "관리자"
  • 요청 예 :
  • GET /scim/Groups?filter=displayName eq "administrator" HTTP/1.1 권한 부여: Bearer
    
  • 응답 예시: 200 확인.
  • 표시 이름으로 그룹이 발견된 경우.

    { "스키마": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 0, "리소스": [], "startIndex": 1, "itemsPerPage": 20 }
    

/그룹/{아이디} 제공된 그룹 ID와 연결된 그룹 리소스를 검색합니다. 응답에는 그룹의 메타데이터만 반환되며, 멤버십 정보는 포함되지 않습니다.

  • 요청 예 :
  • GET /Groups/administrator HTTP/1.1 권한 부여: Bearer
    
  • 예시 응답:
    • 발견됨 - 200 OK.

      { "스키마": [ "urn:ietf:params:scim:스키마:core:2.0:그룹" ], "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 /그룹 HTTP/1.1 권한 부여: 베어러 { "스키마": ["urn:ietf:params:scim:schemas:core:2.0:그룹"], "externalId": "내부 ID", "displayName": "그룹2", "메타": { "리소스 유형": "그룹" } }
      
    • 회원목록과 함께 요청하세요.
    • POST /그룹 HTTP/1.1 콘텐츠 유형: application/json 권한: Bearer { "스키마": [ "urn:ietf:params:scim:schemas:core:2.0:그룹" ], "디스플레이 이름": "그룹1", "멤버": [ { "값": "3", "디스플레이": "admin@gmail.com" }, { "값": "2", "디스플레이": "admin2@gmail.com" } ] }
      
  • 응답: 201개 생성됨.
  • { "스키마": [ "urn:ietf:params:scim:schemas:core:2.0:그룹" ], "외부 ID": "내부 ID", "표시 이름": "그룹2", "메타": { "리소스 유형": "그룹" }, "멤버": [], "ID": "그룹2" }
    

PATCH 요청을 사용하여 표시 이름과 같은 그룹의 기본 세부 정보를 업데이트할 수 있습니다. /그룹/{그룹-ID}. 이 요청은 사용자가 제공한 속성만 업데이트하며 그룹 구성원은 변경하지 않습니다. 업데이트가 성공하면 204 콘텐츠 없음이 반환됩니다.

  • 요청 예 :
  • PATCH /Groups/group1 HTTP/1.1 권한 부여: Bearer 
    
    { "스키마": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "작업": [{ "op": "바꾸기", "경로": "디스플레이이름", "값": "그룹1 업데이트됨" }] }
    
  • 응답 예시 - 204 콘텐츠 없음.

The /그룹/{아이디} 엔드포인트는 PATCH 요청을 통해 구성원을 추가하고 제거할 수 있습니다. 요청 본문에는 추가할 사용자 ID 목록이 포함되어야 합니다. 이 작업은 그룹 구성원만 업데이트하며, 성공 시 204 콘텐츠 없음을 반환합니다.

  • 요청 예 :
    • 그룹에 멤버를 추가합니다.
    • PATCH /Groups/updated group1 HTTP/1.1 Content-Type: application/json Authorization: Bearer { "스키마": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "작업": [{ "op": "추가", "경로": "멤버", "값": [{ "$ref": null, "값": "97" }] }] }
      
    • 그룹에서 멤버를 제거합니다.
    • PATCH /Groups/updated group1 HTTP/1.1 권한: Bearer { "스키마": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "작업": [{ "op": "제거", "경로": "멤버", "값": [{ "$ref": null, "값": "97" }] }] }
      
  • 응답 예시 - 204 콘텐츠 없음.

The /그룹/{아이디} 엔드포인트는 다음을 사용하여 그룹 삭제를 지원합니다. 삭제 요청. 이 작업은 SCIM 서버에서 그룹을 제거합니다. 삭제가 성공하면 다음이 반환됩니다. 204 콘텐츠 없음 응답은 그룹이 삭제되었음을 나타내며, 응답 본문은 제공되지 않습니다.

  • 요청 예 :
  • DELETE /Groups/updated group1 HTTP/1.1 권한: Bearer
    
  • 응답 예시 - 204 콘텐츠 없음.

구성이 성공적이지 않은 경우 다음 주소로 문의해 주세요. drupalsupport@xecurify.com. 오류 창의 스크린샷을 보내주시면 문제 해결 및 설정 과정을 안내해 드리겠습니다.

ADFS_sso ×
안녕하세요!

도움이 필요하다? 우리는 바로 여기에 있습니다!

SUPPORT