고급 권한: 백엔드 인프라
Mattermost 고급 권한 백엔드 인프라 - 권한, 역할, 범위, 컨텍스트, 스킴의 개념과 데이터 구조, 기본 제공 역할 및 권한 목록을 설명합니다.
이 문서는 Mattermost의 권한에 대한 백엔드 서버 인프라를 설명하며, 설치 환경을 수정하려는 기술 관리자 또는 개발자에게만 권장됩니다. 엔티티 정의 # 권한 # 권한 은 객체에 대해 수행할 수 있는 허용된 동작을 설명합니다. 권한을 부여하는 역할이 할당된 컨텍스트에서 사용자가 수행할 수 있는 동작을 정의합니다. 역할 # 역할 은 권한이 부여되는 대상으로, 이후 컨텍스트에서 사용자에게 할당되어 해당 컨텍스트에서 할당된 권한을 부여합니다. 한 사용자는 서로 다른 컨텍스트에서 서로 다른 역할에 의해 부여된 여러 권한 집합을 가질 수 있습니다. 범위 # 권한은 특정 범위 내에 존재합니다. Mattermost 시스템에는 시스템, 팀, 채널의 세 가지 범위가 있습니다. 권한은 적용된 컨텍스트에서 하위 범위로 전파됩니다. 예를 들어, "채널" 범위의 권한이 "팀" 컨텍스트에 적용되면 해당 팀 내 모든 채널에 권한이 적용됩니다. 권한의 범위는 다음과 같이 구분됩니다: 시스템 범위 : 시스템 수준에서만 의미 있는 권한. 예: manage_oauth . 팀 범위 : 팀 수준과 시스템 수준에서 의미 있는 권한. 예: create_public_channel . 채널 범위 : 채널, 팀, 시스템 수준에서 의미 있는 권한. 예: manage_public_channel_properties . 컨텍스트 # 컨텍스트 는 범위의 인스턴스입니다. 예를 들어, "Developers Hangout"라는 채널은 채널 범위의 인스턴스입니다. 컨텍스트는 범위의 계층적 순서를 반영하는 계층 관계를 가지며, 각 컨텍스트는 하나의 부모를 가지고 여러 자식을 가질 수 있으며, 최상위 부모 컨텍스트는 시스템 컨텍스트입니다: 채널 컨텍스트는 부모 팀 컨텍스트를 가지며, 그 부모는 시스템 컨텍스트입니다. 예를 들어, "Developers Hangout" 채널은 채널 컨텍스트이며, 부모 팀 컨텍스트는 "Contributors Team"이고, 그 부모는 시스템 컨텍스트입니다. 팀 컨텍스트는 부모 시스템 컨텍스트와 자식 채널 컨텍스트를 가집니다. 예를 들어, "Contributors Team"은 팀 컨텍스트이며, 부모는 시스템 컨텍스트이고, 자식 채널 컨텍스트로는 "Developers Hangout", "Reception", "Marketing" 등이 있습니다. 특정 컨텍스트에서 사용자가 특정 동작을 수행할 수 있는지 여부를 결정할 때, 현재 컨텍스트와 그 부모 컨텍스트에서 사용자에게 할당된 모든 역할의 권한의 합집합이 계산됩니다. 이를 통해 권한이 범위 계층 구조를 따라 전파됩니다. 예를 들어, 사용자가 시스템 컨텍스트의 역할에서 manage_public_channel_properties 권한을 부여받으면, 해당 사용자는 멤버인 모든 팀의 모든 채널에서 공개 채널 속성을 관리할 수 있습니다. 스킴 # 스킴은 컨텍스트 및 모든 하위 컨텍스트의 사용자에게 적용되는 기본 역할을 정의합니다. 스킴은 특정 컨텍스트에 맞게 정의되거나, 지정되지 않은 경우 부모 컨텍스트 스킴의 관련 부분이 적용되며,