2012-10-22 2 views
3

Azure에서 보안 아키텍처에 접근하는 방법에 대한 조언을 얻으려고합니다.Azure 멀티 테넌트 보안 - Azure 연합 SQL, 인증서 등

배경 :

우리는 극도로 보안 (개인적으로 중요한 데이터를) 할 필요가 푸른에 멀티 테넌트 (multi-tenant) 응용 프로그램을 구축을 찾고 있습니다. 표준 브라우저와 휴대 기기에서 앱에 액세스 할 수 있습니다.

보안 액세스 유형 : 우리는 사용자/액세스 유형의 세 가지 유형이

...

1 - 이상 일반 이전 사용자/암호 HTTPS입니다 좋은, 모두 일반, 비 개인 SQL에 접근 플러스 호스트 파일

2 - user/pass https이지만 사용자 컴퓨터/장치에 설치 될 인증서를 통한 사용자 인증이 필요합니다. 이 수준의 사용자는 데이터베이스와 업로드 된 파일 모두에서 암호화 된 중요한 데이터에 액세스해야합니다.

3 - 동일 (2)하지만 약 2 개 요소 인증의 추가와 함께 (우리는 다른 것들에 대한 YubiKey을 사용했다 -뿐만 아니라 전화 OTP 제공으로 보일 수 있습니다)

대부분의 사용자는에 액세스 할 수 있습니다 자신의 세입자 데이터베이스이지만 우리는 선택한 세입자 데이터에 대한 액세스가 필요한 "계정 관리자"유형의 사용자가 있으므로 해당 사용자는 그들이 서비스하는 세입자 당 하나의 인증서 복사본이 필요하거나 일종의 마스터를 사용해야합니다 증명서.

데이터베이스 유형 : 푸른 연합 SQL의 (a) 우리는 단순히 각 테이블에서 "TenentID"키를 하나의 응용 프로그램을 쓰기 때문에 갈 수있는 좋은 방법입니다 것보기의 멀티 테넌트 (multi-tenant) 관점에서

, 로그인 후 우리를 위해 격리를 처리하는 전역 필터를 설정합니다. (b) 백그라운드에서 Azure 연합 SQL이 실제로 임차인마다 별도의 SQL 데이터베이스 인스턴스를 유지한다는 것을 알고 있습니다. (참조 : http://msmvps.com/blogs/nunogodinho/archive/2012/08/11/tips-amp-tricks-to-build-multi-tenant-databases-with-sql-databases.aspx)

누구나 어떤 링크 파일 공유 설정 및 관리, SQL 및 파일 데이터 암호화, 사용자 인증 등의 작업과 관련하여 조언을 제공 할 수 있습니다. c. (신규 사용자 가입 사전 설정 자동화 관리).

+0

업데이트 - 여기에 전체 문제의 주위에 정보 매우 유용 세트 : http://social.msdn.microsoft.com/Forums/en-US/windowsazuredata/thread/84e53d0c-0dd3-448e-9ff8-ddd5069f9026 – aonirl

답변

1

저는 인증서를 실제로 도울 수 없지만 실제로 "마스터 인증서"가 필요합니다. Azure 웹 사이트를 사용할 계획이라면 현재 자신의 인증서를 사용할 수 없습니다.

데이터베이스 설정 관련. SAAS 응용 프로그램은 신뢰를 기반으로하므로 다른 사용자가 사용하는 데이터를 표시하거나 편집하지 않아도됩니다. 따라서 각 테이블에 TenantID를 사용하지 말 것을 강력히 제안합니다. 이로 인해 악의적 인 사용자의 공격 가능성이나 개발자의 실수가 여전히 남아 있습니다.

유일한 방법은 이러한 위험은 각 테넌트 데이터를 저장하는

  1. 광범위한 테스트
  2. 물리적 다른 테이블이 주위에 얻을 수 있습니다.

개인적으로 나는 매우 광범위한 + 자동화 된 테스트로도 악의적 인 사용자에 대해 100 % 코드 커버리지를 가질 수 없다고 생각합니다. 혼자가 아닌 것 같아요.

IMHO의 유일한 방법은 물리적으로 다른 테이블입니다.

  1. 다른 서버 : 유효하지만, 푸른
  2. 다른 데이터베이스에서 꽤 비싼 :의이 옵션을 살펴 보자 이전 옵션 유효한, 적은 관리 오버 헤드가 있지만 같은 반대 - 고가의 당신은 세입자
  3. 의 많은 경우
  4. 다른 스키마 : 해결책.
    • 만 사용자를 관리 할 필요가 ... 그것에 대해 생각하고 기본 스키마의 당신이 백까지 수 스키마의 사용 PowerShell을가
    • 당신이 몇 가지 작업과 함께 다른 데이터베이스 스키마의를 이동할 수 있습니다
    • 당신은 여전히 ​​수 필요한 경우 SQL 연합에 가입하십시오.
    • 주요 단점은 각 테넌트에 대해 데이터베이스 업그레이드를 지원해야한다는 것입니다.

는 멀티 테넌시 (multi-tenancy)에 대한 기사를 읽어 azure.com 있나요? http://msdn.microsoft.com/en-us/library/windowsazure/hh689716.aspx

+0

감사합니다 - 우리는 모든 것을 조율하는 중간에 하나의 "마스터"데이터베이스와 함께 클라이언트 당 하나의 데이터베이스를 사용하여 멀티 테넌트를 만들었습니다. 다음에 진행되는 인증서! – aonirl