그룹 보안 작동 방식
피어 그룹에는 각 멤버에 GMC(그룹 구성원 인증서)라고 하는 특정 인증서가 있어야 합니다. GMC 인증서는 피어 간에 교환된 모든 레코드가 디지털 서명되도록 합니다. 피어의 공개 키는 피어 간 통신의 일부로 전달되는 구조체(PEER_CREDENTIAL_INFO 포함) 에 포함되어 있습니다.
체인에서 GMC를 발급할 수 있습니다. 예를 들어 작성자는 관리자 A에게 GMC를 발급할 수 있으며, 관리자 B에게 GMC를 발급할 수 있으며 구성원 M에게 GMC를 발급할 수 있습니다. 결과 GMC 체인은 creator-A-B-M>>>이며 길이는 4입니다. 체인 길이는 24보다 길 수 없으므로 중요합니다. 체인의 24번째 관리자가 구성원에게 GMC를 발급하려고 하면 PeerGroupIssueCredentials 또는 PeerGroupCreateInvitation 은 PEER_E_CHAIN_TOO_LONG 반환합니다.
PeerGroupIssueCredentials를 호출하여 GMC를 발급할 수도 있습니다. GMC는 GMC가 발급된 그룹의 사용자 멤버 자격을 의미하며 유한하거나 무한 수명을 가질 수 있습니다. 그룹 멤버 활동은 GMC에 지정된 수명보다 길 수 없습니다.
참고
무한 GMC 수명은 현재 1000년으로 설정됩니다.
그룹 멤버 활동은 GMC 수명에 의해 제한되며 다음을 포함합니다.
- 레코드 작업 - 피어는 그룹 멤버 자격이 만료된 후 그룹에 정보를 게시하거나 피어의 그룹 멤버 자격 수명보다 수명이 긴 레코드를 게시할 수 없습니다.
- 멤버 자격 작업 - 그룹 관리자는 그룹 관리자 멤버 자격에 지정된 날짜 이후의 수명을 가진 멤버 자격을 발급할 수 없습니다. 예를 들어 관리자가 GMC 수명 동안 남은 시간이 500시간인 경우 발급된 모든 멤버 자격은 500시간 미만이어야 합니다.
그룹 구성원은 해당 그룹 구성원을 초대하는 관리자보다 더 긴 수명을 가질 수 없으므로 관리자의 GMC 수명을 무한으로 설정하거나 매우 긴 수명 동안 설정하는 것이 좋습니다. 그룹 작성자의 수명은 기본적으로 무한합니다.
그룹 멤버 자격 갱신
GMC 수명이 만료할 준비가 된 관리자 또는 멤버의 자격 증명을 갱신하려면 다음 두 가지 옵션이 있습니다.
PeerGroupIssueCredentials를 호출하고 수명이 만료될 준비가 된 멤버의 ID를 전달합니다. 자격 증명이 NULL 로 지정되고 피어의 멤버 자격 정보를 그룹에 사용할 수 있는 경우 갱신 시간은 이전에 게시된 멤버 자격 증명에 지정된 것과 동일한 기간으로 설정됩니다. 다른 기간을 지정해야 하는 경우 새 수명 기간을 포함하는 새 PEER_CREDENTIAL_INFO 구조체를 제공해야 하고 멤버에 대해 새 GMC가 게시됩니다.
PeerGroupIssueCredentials 함수는 필요에 따라 그룹 데이터베이스에 멤버의 새 자격 증명을 자동으로 게시하는 PEER_GROUP_STORE_CREDENTIALS 플래그를 사용합니다. 멤버가 다음에 처음으로 또는 오프라인으로 전환한 후 그룹에 연결하면 멤버는 데이터베이스에서 업데이트된 GMC를 가져옵니다.
PeerGroupCreateInvitation을 호출하여 GMC 수명이 만료할 준비가 된 멤버의 ID를 전달합니다. 초대에 지정된 만료가 NULL인 경우 GMC의 수명 기간은 멤버 자격을 발급하는 관리자 GMC와 동일합니다. 작성자가 만료를 NULL로 지정하면 무한 수명이 있는 GMC가 발급됩니다.
피어가 현재 상태 수명 값 이전에 만료되는 GMC를 발급하는 경우 PeerGroupEnumMembers 호출에 의해 시작된 열거형에서 반환된 PEER_MEMBER 구조에서 피어의 주소를 사용할 수 없습니다. 이 경우 PEER_DISABLE_PRESENCE 플래그가 설정되지 않은 경우에도 현재 상태 정보가 게시되지 않기 때문에 발생합니다.