요약

  • IETF 개인 초안은 그룹과 구성원 사이의 관계를 GroupMembership 자원으로 제안한다. 고객은 허용된 관계를 필터링하고 페이지로 읽으며 특정 관계를 삭제할 수 있다.
  • 선택적 membersEmbedded 표시는 그룹 응답의 members가 완전한지 구별한다. false라면 완전성을 보장하지 않으며, true여도 요청에서 그 속성을 제외했다면 빈 그룹의 증거가 되지 않는다.

삭제 영수증과 실제 명단 사이

현행 RFC 7643은 그룹의 members 다중값 속성에 가입 관계를 담는다. 초안 작성자는 큰 그룹의 응답이 부담스러워 서비스가 이를 생략하거나 고객이 응답에서 빼는 사례를 설명한다. 그럼에도 추가와 삭제 요청은 보낼 수 있다. 서비스에 실제로 남아 있는 사람을 읽어 의도한 명단과 맞추는 작업만 어려워진다. 초안에 등장하는 규모는 작성자의 문제 제기이며, 시장 전체의 측정치로 읽을 근거는 없다.

새로운 /GroupMemberships에서는 서비스 제공자가 그룹–구성원 쌍에 불투명한 ID를 붙인다. 그룹별 전체 구성원, 한 사람의 가입 그룹, 특정 두 ID의 관계를 각각 찾을 수 있다. 같은 쌍을 두 번 생성하려면 충돌 응답을 돌려야 한다. 접근권한을 회수하는 담당자는 거대한 그룹 배열을 고치는 대신 삭제할 관계를 정확히 찾아 주소로 지정할 수 있다.

기존 응답에 붙는 작은 표시가 오해를 막는다. membersEmbedded: true는 요청이 members를 반환하도록 허용한 경우에만 현재 구성원이 모두 포함됐다는 보증이다. 고객이 그 속성을 직접 제외해 놓고 빈 응답을 보고 ‘아무도 없다’고 판정할 수 없다. false는 배열이 꽉 찼을 수도, 일부만 담았을 수도, 아예 없을 수도 있음을 뜻한다. 표시가 없으면 기존 SCIM 해석이 유지된다. 완전한 명단이 필요할 때는 새로운 자원을 그룹 ID로 걸러 읽어야 한다.

초안은 새 조회 경로가 요청한 고객에게 열람 권한이 있는 모든 가입 관계를 제공하도록 요구한다. 고객의 권한 범위가 곧 명단의 범위다. 따라서 한 고객에게 보이는 전부를 서비스 전체의 전부로 부를 수는 없다. 그룹과 구성원 ID의 동등 조건 필터, 최소 한 가지 페이지 방식도 필요하다. 중간에 가입 관계가 바뀌면 번호 기반 페이지의 경계가 밀릴 수 있어 커서를 권한다. 안정된 순서의 약속 역시 조회하는 동안 실제 관계가 그대로일 때에만 성립한다.

두 쓰기 경로가 남는다면 서비스 제공자가 양쪽을 동기화해야 한다. Group.members에서 지웠는데 독립 관계 자원에는 남아 있다면, 같은 권한에 대한 두 장부가 서로 다른 답을 준다. 그룹이나 구성원을 삭제할 때 연결된 관계도 제거하도록 초안은 요구한다. Datatracker의 상태는 아직 작업반 채택 전인 개인 초안이다. 작업반 결정과 실제 서비스에서의 양방향 일치 검증이 다음 판단 자료다.

출처: 초안 원문; IETF 상태; RFC 7643; RFC 7644; RFC 9865.