2009년 3월 20일 금요일

Role, Group & Members

권한 관리부분에서 가장 큰 부분은 Role 에 속한 Actor에 대한 구분입니다.

Application에서 Role은 크게 두가지로 나뉩니다. 
1. 시스템에서 미리 정의한 System Role
2. 시스템 운영에 따른 실행 산출물에 대한 Role (Instance Role)

1번에 해당하는 것이 Administrator, Users, Guest, Process Modeler User 등이 될 것이고,
2번에 해당하는 것이 Process Owner, Project Managers - 둘 다 특정 Resource에 대해 관련있는 Role입니다.

1번은 유한한 갯수 (100개 미만),
2번은 시스템 운영에 따라 100만개도 생길 수 있습니다.

권한 관리부분에서, 특정 리소스에 대한 접근 허용 여부를 검사하기 위해서는 위의 두가지를
나누어서 검사하는 것이 좋습니다. (Instance Role 이 너무 많기 때문에)

우선 접근 검사를 하고자 할 때의 시나리오를 검토하면

1. 접근 대상이 Application의 정적인 Resource라면 System Role 만 가지고 검사하면 됩니다.
2. 접근 대상이 동적인 Instance Resource라면 System Role로 먼저 검사하고,
    다음으로 Instance Resource와 관련 있는 Role에 Actor가 소속되어 있는지만 검사하면 됩니다.

두 가지를 한꺼번에 할 경우에는 상당히 많은 량의 레코드를 검사해야 하지만,
위와 같이 두 단계로 나누게 되면 검사할 양이 상당히 줄어들게 됩니다.

다만 Instance Resource와 Instance Role 의 Association을 관리해야 하는 기능을 추가해야 하지만,
보통 Role name에 "/Resource/Manager", "/Resource/User" 등으로 이름을 사용하고, 
관련 Instance의 Natural Key를 Association 하면, 레코드 수도 줄고, 상당한 량의 작업도 감소 시킬 수 있습니다.



댓글 없음: