Access Control and Authorization
유저의 identity를 얻으면 그 identity 에 근거해서 제한된 모듈을 사용할 수 있도록 하는 authorize 가 가능해 집니다. Authorization은 access control lists에 의해서 이뤄 집니다. 개발자들은 아마 다른 contexts에 더 익숙하시겠죠? 예를 들어 파일 시스템 같은......
Access Control Lists
access control list 는 어떤 리소스에 접근이 가능한 이들을 정의해 놓은 rule들을 열거한 겁니다. (ALLOW rules) 물론 그 리소스에 어떤 이들의 접근을 막을지에 대해서도 정의해 놓을 수 있겠죠. (DENY rules). 룰들은 유저와 그룹별로 정의 될 수 있습니다. 여러분 사이트의 필요에 따라 혼합하거나 해서 사용하실 수 있습니다.
Access control lists SITE_DIR/config/acls.ini (site authorization)나 SITE_DIR/config/MODULE/acls.ini (module authorization)에 정의 돼 있습니다.
만약 그 site 에 access control list entry가 있다면 (in SITE_DIR/config/acls.ini), 이 조건은 모든 모듈에 적용이 될 겁니다. site가 아니라 module 이 access control list entry 를 가지고 있다면 (in SITE_DIR/config/MODULE/acls.ini), acl 룰에 맞는 유저만이 접근할 수 있게 됩니다.
아래와 같은 경우에 유저는 접근 권한을 가질 겁니다.
- They match an ALLOW rule, AND
- They do NOT match a DENY rule
이 Access control lists 는 Administration Console에서 수정될 수 있습니다.
Syntax of Access Control Lists
각각의 ACL은 acls.ini 파일에 있는 section입니다. 첫번째 ACL은 section 0 가 되고 두번째는 1 이 됩니다. 각 섹션은 key들을 가지고 있습니다.
- type: Either U (for user access, i.e. who can use the module), or A (for admin access, who can administer the module).
- action: Either A (allow) or D (deny). Deny rules always take precedence.
- scope: Either U (user), G (group) or E (everyone, i.e. ALL users, including anonymous users),
- authority: The index of the authority. For user scope this can be blank and would match a user from any authority.
- value: The particular user/group to match. For user scope this can be “*” which would match all authenticated users.
admin 모듈에 대해 만드려면 아래와 같이 될 겁니다.
[0] type = "U" action = "A" scope = "G" authority = "ldap" value = "admin" [1] type = "U" action = "A" scope = "G" authority = "ad" value = "domainadmins" [2] type = "U" action = "D" scope = "U" authority = "ad" value = "Administrator"
이 의미는 ldap authority 의 admin 그룹의 멤버들과 ad authority 의 domainadmin 그룹들에게 접근이 허용 될 겁니다. 그리고 특별히 ad authority의 Administrator 그룹에는 접근이 허용되지 않습니다.
Using the Flat-file Authority to extend other authorities
flat file authority 인 PasswdAuthentication는 다른 시스템이 아닌 웹서버에 저장돼 있는 flat-file을 사용해서 유저나 그룹들에게 접근을 허용할 수 있습니다. 이 경우는 유저가 적어서 굳이 authority 시스템을 관리하느라 시간을 낭비하고 싶지 않은 경우에 유용하게 사용 될 수 있습니다.
이러한 방법들에 대해 좀 더 알고 싶으시면 instruction을 참조하세요. 유저 login을 사용하고 싶지 않다면 USER_LOGIN을 NONE으로 세팅해 놓으세요.
'WEB_APP > Kurogo' 카테고리의 다른 글
Kurogo Tutorial 23 - Links Module - (0) | 2012.10.10 |
---|---|
Kurogo Tutorial 22 - Content Module - (0) | 2012.10.10 |
Database Authentication (0) | 2012.09.12 |
Authentication (0) | 2012.09.06 |
Flat File Authentication (0) | 2012.09.06 |
Kurogo Tutorial 21 - Emergency Module - (0) | 2012.07.12 |
Kurogo Tutorial 20 - Module Interaction - (0) | 2012.06.13 |
Kurogo Tutorial 19 - The Kurogo Object - (0) | 2012.06.12 |
Kurogo Tutorial 18 - Video Module - (0) | 2012.06.07 |
Kurogo Tutorial 17 - Calendar Module - (0) | 2012.06.01 |