Authentication
특정 모듈에 대해서 검증된 유저만 (authenticated users) 접근이 가능하도록 할 필요가 있습니다. 또는 해당 유저에 알맞는 내용을 제공하거나 feedback에 참여하도록 허용할 수 있겠죠.
Kurogo 프레임워크는 authenticationg users와 내용에 대한 authorizing access 를 위한 기능을 제공하고 있습니다. 이런 기능을 위해서 유저별로 또는 특정한 그룹에 있는 멤버에게만 접근이나 관리의 권한을 주거나 제한하는 서비스를 제공할 수 있습니다.
Kurogo는 기존에 존재하는 identity 시스템과 같이 사용하실 수도 있습니다. 예를 들어 Active Directory, MySQL databases,
Twitter, Facebook and Google 등이 있습니다.
Setting up Authentication
Authentication은 유저의 identity를 설립하는 프로세스입니다. 이 identity의 설립은 유저가 username과 password를 제공하면서 가능합니다. 프레임워크는 그 유저이름과 패스워드를 받아서 central authority를 통해서 credential을 test 하게 됩니다. 만약 authority가 credential에 적합하면 유저는 로그인 되고 관련된 서비스나 개인 정보를 사용할 수 있게 됩니다.
쿠로고 프레임워크에 의한 Authentication는 한개 이상의 authentication authorities를 통해서 제공 됩니다. 각 authority는 기존의 authentication system에 connect 하기 위해 configure 돼 있습니다. 여러분 사이트의 필요에 따라 여러분은 거기에 맞는 private self-hosted authentication system (like an LDAP/Active Directory or database system)
or a public system (Twitter, Facebook, Google) 들을 사용하실 수 있습니다. 또한 standard authentication services (Google Apps) 같이 외부에서 제공되는 서비스를 사용해서 hybrid로 접근할 수도 있습니다. 간단하게 deploy 하려면 external service 필요없이 flat-file based system을 사용할 수도 있습니다.
각 authority는 아래와 같이 다양한 서비스를 제공할 수 있습니다.
- User authentication - either through a direct login/password form or through an external system
based on OpenID or OAuth
- User attributes - At minimum authorities should supply id, name and email information. Some authorities can provide this information to any user in their system, however others can only provide this information on the logged in user
- Group information and membership - Some authorities will also contain information on groups which allow you to logically organize users. Some authorities are designed to only contain users from their own domains, while others have the ability to utilize users from other authorities in their membership
이 모든 서비스를 다 제공할 필요는 없을 겁니다. 하나의 authority는 authentication과 information을 제공하고 다른 것은 group information을 제공하고 이렇게 여러 방법으로 사용될 수도 있습니다. 만약 여러분이 여러분의 authorization schemes에 group을 지정하지 않았다면 group information은 필요 없게 되겠죠.
Enabling Authentication
authenticating users를 지원하려면 SITE_DIR/config/site.ini 안에 있는 AUTHENTICATION_ENABLED 를 1로 세팅해야 합니다. 디폴트는 0 입니다.
Configuring Authorities
Authorities들은 SITE_DIR/config folder에 있는 authentication.ini file 에 정위 됩니다. 각 authority는 각 section에서 설정됩니다. 이 section 이름은 authority index로 사용되는 것이 좋습니다. 프레임워크에 의해 사용되는 programmatic value 죠. 이 value는 여러분이 원하는 대로 하셔도 됩니다. 다만 이전에 사용됐던 section을 중복해서 사용하지 않도록 주의하셔야 됩니다. 만약 중복 되면 문제가 생깁니다.
아래 내용들은 모든 authorities들에 필요한 값들입니다.
- TITLE - This value is used when referencing the framework to users. If there is more than one authority available to users to choose the title will direct them to the correct one.
- CONTROLLER_CLASS - This value should map to a valid subclass of AuthenticationAuthority. This defines the core behavior of the authority.
- USER_LOGIN - There are 3 possible values:
- FORM - Use the login form
- LINK - Use a login link. The authority should handle this using their login method
- NONE - This authority does not provide authentication services (i.e. just group services)
Included Authorities
Kurogo 프레임워크가 폭 넓은 세팅을 할 수 있도록 하기 위해 프로젝트는 몇가지 클래스들을 가지고 있습니다. 이 클래스들은 다양한 타입의 authentication과 authorization service들에 연결할 수 있도록 합니다. 각각은 나름대로 셋업하고 사용하기 위한 방법들이 있습니다. 아래 문서들을 잘 읽어보시고 개발하고 deploy 하기 위한 중요한 요구사항들을 잘 살펴 보시기 바랍니다.
'WEB_APP > Kurogo' 카테고리의 다른 글
AppQ - 쿠로고 웹 앱을 native app (iOS, Android) 으로 만들기 (0) | 2012.10.16 |
---|---|
Kurogo Tutorial 24 - People Module - (0) | 2012.10.10 |
Kurogo Tutorial 23 - Links Module - (0) | 2012.10.10 |
Kurogo Tutorial 22 - Content Module - (0) | 2012.10.10 |
Database Authentication (0) | 2012.09.12 |
Flat File Authentication (0) | 2012.09.06 |
Access Control and Authorization (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 |