2013-12-11 4 views
0

나는 여분의 시간 프로젝트 장난있어 주로 새로운 물건 :방법은 멀티 테넌트 API의 보안/인증을 처리하는

이 멀티 테넌트가있는 시스템에 대한 REST API를 설계 포함을 시도 . "상위"엔티티 인 "조직"이 있다고 가정하면 각 요청을 인증하는 데 사용되는 API 키가 할당 될 수 있습니다. 그래서 각 요청마다 우리는 조직을 연관시킵니다.

이제 API 사용자가 목록을 가져오고 싶다고 말하면 해당 조직에 속한 사용자 만 반환해야합니다. 실제 구현 인 데이터베이스에 대한 쿼리는 매우 간단합니다. 그러나 접근 방식은 재미 있다고 생각합니다.

데이터베이스를 쿼리 할 때마다 필터링을 구현할 수 있지만 더 나은 방법은 조직에 속한 엔티티에 대한 모든 쿼리와 같이 모든 "조직"관련 쿼리에 적용되는 일반적인 사전 쿼리입니다. 잘못된 엔터티가 반환되는 것을 피하는 것이 전부입니다. 데이터베이스를 분리 할 수는 있지만 가능하지 않다면 어떻게 접근 할 것입니까?

지금은 NancyFX와 RavenDB를 사용하므로 해당 스택에 대한 의견은 높이 평가할 수 있지만 일반적인 아이디어와 모범 사례는 매우 환영합니다.

+1

당신은 세입자 당 별도의 데이터베이스를 사용하여 생각 해 봤나? RavenDB는 임베디드 버전을 사용하지 않는 한 서버 당 여러 데이터베이스를 지원합니다. –

+0

+1 별도의 데이터베이스. 하나의 데이터베이스에 여러 임차인을 갖는 것은 큰 단점을 가지고 있습니다. 처음에 추가 된 복잡성 - 작성하는 코드의 거의 모든 부분이 다중 임대를 고려해야합니다. 둘째로 위험 - 한 임차인의 데이터가 다른 임차인에게 실수로 표시 될 위험이 있습니다. –

답변

관련 문제