2011-10-17 3 views
41

나는 webapp을 만들고 있는데 장고와 피라미드 중 하나를 선택해야합니다. 나는 피라미드와 함께 가기로 결정했다.피라미드의 사용자 인증

나는 피라미드 좋은 보이는 자신의 인증/권한 부여 프레임 워크와 함께 제공됩니다 이해합니다. 그러나 사용자/그룹/권한이 정의 된 Pyramid는 어디에도 보지 못했습니다. 장고에서는 이러한 것들이 무료로 제공됩니다.

내가 SQLAlchemy의를 사용하고 있는데 이미 내가 가져올 수있는 내장 유사한 사용자/그룹/권한이 있는지 궁금 해서요. 차라리 이러한 객체/매핑 및 암호 해시/소금 정의를 직접 정의하지는 않겠습니다. 이러한 것들의

Django's definitions

모든 내가 필요 꽤 많이 있습니다.

사람이 내 뭔가 내가 사용할 수있는 포인트? 또는 내 자신을 굴릴 필요가 있습니까?

답변

62

피라미드는 훨씬 유연한 인증 시스템을 갖추고 있습니다. 그리고 네, Django의 사용자/그룹/사용 권한 개념과 같은 간단한 것을 원하면 유연하지 않을 수 있습니다.

데이터를 저장하는 방법이나 사용하는 ORM에 대한 가정이 없으므로 Pyramid에는 "사용자"개체가 없으므로 contrib.auth와 같은 사용자가 없습니다. PYPI에서 찾을 수있는 cryptacular 또는 passlib과 같은 라이브러리를 사용하여 암호를 직접 해시/염화해야합니다.

피라미드의 시스템 내에서 사용자/그룹/권한을 원하는만큼 그룹을 사용 권한에 매핑하는 __acl__이있는 RootFactory를 정의하면 매우 간단합니다. 권한은보기에 할당되므로 대개 꽤 정적입니다. 그룹 (Pyramid가 "주체"라고 부르는 것)을 동적으로 구현할 수도 있습니다.

나는뿐만 아니라 shootout demo로, 피라미드 wiki2 tutorial 보는 게 좋을 것.

은 SQLAlchemy의를 사용하려는 경우 피라미드 내에서 허가와 지원을 위해도 몇 타사 패키지가 있습니다. apex은 더 완전한 스택 솔루션이고 ziggurat_foundations은 SQLAlchemy보다 낮은 수준의 계층이므로 응용 프로그램에 대한 사용자 및 그룹을 설정하는 데 도움이됩니다.

귀하의 질문은 상당히 까다로 우며 권한 부여는 "어려운 문제"이므로 여기에서 그만두고 피라미드 자습서에서부터 여러 가지 타사 예제에 이르기까지 이미 존재하는 자습서와 리소스를 되풀이하지 않도록하십시오. 특별한 질문이 있으시면 다른 질문에 자유롭게 질문하십시오.

+0

감사합니다. 좋은 정보입니다. 내가 장고의 구현 (그리고 repsonse도 함께)에서 보았을수록,이 질문은 SQLAlchemy에 묶여 있어야하는 'User'관련 객체가 있기 때문에 SQLAlchemy 질문에 더 많은 것을 알게되었다. – lostdorje

+2

총격전 데모 포인터를 가져 주셔서 감사합니다. 전체 사용자 및 그룹 모델 및 전체 테스트 세트로 작성되었습니다. –

+0

고급 사용자를 위해 모든 것을 (또는 부분적으로) 날려 버리고 대체 할 수있을지라도 인증 측면에서 더 많은 사전 제작 된 것이 있다면 좋을 것입니다. 사용자 정의 솔루션을 위해 주변에서 구현해야하는 작업을 문서화하는 한 스토리지 시스템을 사용하지 않고 사용자 개념을 가질 수 있습니다. –