본문으로 건너뛰기

도메인이 포함된 RBAC API

도메인이 포함된 RBAC를 위한 편의 API: 도메인별로 범위가 지정된 사용자–역할 및 권한 작업. 이는 관리 API(Management API)의 부분집합입니다. 아래에서 e는 도메인 인식 모델로 로드된 Enforcer 인스턴스입니다.

참조​

e, err := NewEnforcer("examples/rbac_with_domains_model.conf", "examples/rbac_with_domains_policy.csv")

GetUsersForRoleInDomain​

주어진 도메인에서 주어진 역할을 가진 모든 사용자를 반환합니다.

res := e.GetUsersForRoleInDomain("admin", "domain1")

GetRolesForUserInDomain​

주어진 도메인에서 사용자에게 할당된 모든 역할을 반환합니다.

res := e.GetRolesForUserInDomain("alice", "domain1")

GetPermissionsForUserInDomain​

주어진 도메인에서 사용자 또는 역할의 모든 권한(정책 규칙)을 반환합니다.

res := e.GetPermissionsForUserInDomain("alice", "domain1")

AddRoleForUserInDomain​

도메인 내에서 사용자에게 역할을 할당합니다. 할당이 이미 존재하는 경우 false를 반환합니다.

ok, err := e.AddRoleForUserInDomain("alice", "admin", "domain1")

DeleteRoleForUserInDomain​

도메인 내에서 사용자의 역할을 제거합니다. 링크가 존재하지 않았던 경우 false를 반환합니다.

ok, err := e.DeleteRoleForUserInDomain("alice", "admin", "domain1")

DeleteRolesForUserInDomain​

도메인 내에서 사용자의 모든 역할을 제거합니다. 사용자가 해당 도메인에 역할이 없었던 경우 false를 반환합니다.

ok, err := e.DeleteRolesForUserInDomain("alice", "domain1")

GetAllUsersByDomain​

주어진 도메인에서 최소한 하나의 역할을 가진 모든 사용자를 반환합니다. 모델에 도메인이 없는 경우 비어 있습니다.

res := e.GetAllUsersByDomain("domain1")

DeleteAllUsersByDomain​

주어진 도메인의 모든 사용자-역할 할당을 제거합니다. 모델에 도메인이 없는 경우 false를 반환합니다.

ok, err := e.DeleteAllUsersByDomain("domain1")

DeleteDomains​

주어진 도메인들의 모든 사용자와 역할을 제거합니다. 인자가 없으면 모든 도메인을 지웁니다.

ok, err := e.DeleteDomains("domain1", "domain2")

GetAllDomains​

정책에 나타나는 모든 도메인을 반환합니다.

res, _ := e.GetAllDomains()
주의

도메인 이름에 ::를 사용하지 마세요. Casbin의 표현식 문법에서 예약되어 있습니다.

GetAllRolesByDomain​

주어진 도메인에 나타나는 모든 역할을 반환합니다.

res := e.GetAllRolesByDomain("domain1")
노트

계층 구조를 통해 상속된 역할(암시적 역할)은 포함되지 않으며, 오직 도메인 내의 직접 할당만 포함됩니다.

GetImplicitUsersForResourceByDomain​

주어진 리소스와 도메인에 대한 암시적 사용자(및 그들의 권한)를 반환합니다. 즉, 해당 도메인에서 자신의 역할을 통해 리소스에 대한 권한을 가진 사용자들입니다.

p, admin, domain1, data1, read
p, admin, domain1, data1, write
p, admin, domain2, data2, read
p, admin, domain2, data2, write
g, alice, admin, domain1
g, bob, admin, domain2

예: 아래 정책에서 GetImplicitUsersForResourceByDomain("data1", "domain1")는 domain1에서 data1에 접근할 수 있는 사용자(예: admin 역할인 alice)의 권한을 반환합니다.

ImplicitUsers, err := e.GetImplicitUsersForResourceByDomain("data1", "domain1")
노트

사용자 수준의 결과만 반환되며, 역할 이름(g 규칙의 두 번째 요소)은 나열되지 않습니다.

Comments are powered by giscus and GitHub Discussions. They load from giscus.app and GitHub only after you click the button below.