반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리

Authentication

2012. 9. 6. 21:08 | Posted by 솔웅


반응형

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을 중복해서 사용하지 않도록 주의하셔야 됩니다. 만약 중복 되면 문제가 생깁니다.


각 authority는 여러 attribute들이 필요합니다. 그리고 authority type에 따라 더 필요할 수도 있습니다. configuration file에 대한 좀 더 자세한 정보를 원하시면 Configuration를 참조하세요.


아래 내용들은 모든 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 하기 위한 중요한 요구사항들을 잘 살펴 보시기 바랍니다.



반응형