문제

우리의 현재 인트라넷 환경은 약간 구식입니다. 현재 스택에는 SQL 2000 데이터베이스에 대한 쿼리가있는 ASP.NET 1.1/2.0 응용 프로그램이 있습니다.

역할 보안의 경우 서버에 사용자가 추가되는 사용자 그룹이 있습니다 (테스트 및 생산 기계에서 그룹에 추가해야합니다). 이러한 사용자 그룹은 SQL 2000 자체의 사용자 역할과 동기화됩니다. 액세스 위반을 방지하기 위해 필요에 따라 저장 프로 시저에 대한 역할이 부여됩니다.

웹 애플리케이션 수준에서는 기본 인증 (Active Directory에 대한 인증)을 사용하고 신원 사과를 켜는 것입니다. 데이터베이스에 대한 연결 문자열은 통합 보안을 사용합니다. 이는 사용자가 로그인 할 때 웹 애플리케이션이 데이터베이스에 연결되는 환경을 만듭니다. 또한 일반적인 user.isinrole () 메소드를 사용하여 응용 프로그램 자체 내에서 인증을 수행 할 수 있습니다.

이것에는 몇 가지 문제가 있습니다. 첫 번째는 서버 관리자 만 시스템의 사용자 그룹에 액세스 할 수 있으므로 역할 보안을 업데이트하거나 추가 사용자 추가가 응용 프로그램 관리자의 손에 닿지 않는다는 것입니다. 또한 역할을 수행하는 유일한 방법은 SQL 2005에 잠겨있는 "XP_LOGININFO"라는 SQL 절차를 호출하는 것이 었습니다. 전체 세부 사항을 알지 못하지만 DBA는이 일반 모델이 재생되지 않는다고 말합니다. 최신 버전의 스키마의 특성을 감안할 때 SQL 2005와 함께 좋습니다.

우리는 이제 환경을 업데이트 할 준비가 된 시점에 있습니다. 우리는 더 많은 Ajax와 SQL Server 2005를 활용하기 위해 .NET 3.5 앱을 작성하는 것이 데이터베이스의 주요 환경입니다. 우리는 보안 모델을 업데이트하고 애플리케이션 관리자에게는 좀 더 유연하고 잠재적으로 Active Directory를 더 활용하려고합니다.

우리가 가진 한 가지 문제도 주어진 사용자가 여러 응용 프로그램에 액세스 할 가능성이 높으므로 중앙 집중식 솔루션을 갖는 것이 최적이므로 필요할 때 사용자를 쉽게 제거 할 수 있다는 것입니다.

이러한 종류의 환경에서 역할 보안을 유지하기위한 모범 사례는 무엇입니까?

도움이 되었습니까?

다른 팁

나는 이전에 내린 결정과 관련된 고려 사항이 그렇게 많이 바뀌 었다고 생각하지 않습니다.

스키마 주석에 대해, 이들은 데이터베이스 요소를 구성하는 데 도움이되므로 각 프로 시저/테이블을 구성하지 않고 스키마 내부의 모든 권한을 할당 할 수 있습니다.

신뢰할 수있는 서브 시스템 모델을 사용하는 대신 신원이 SQL 서버로 유입되는지 여부와 관련된 결정은 특정 시나리오에 거의 다릅니다. 즉, 나는 그런 식별을 원하지 않습니다. 일반적으로 응용 프로그램에 여전히 논리가 시행되고 있기 때문에 SP가 부분 규칙을 시행한다는 것을 의미하기 때문입니다. 이러한 이유로 인해이 접근법은 저장된 절차에서 더 많은 논리를 갖도록합니다.

컴퓨터의 사용자 그룹에 액세스 할 수있는 관리자 만 Adam (Active Directory 응용 프로그램 모드)을 살펴 보는 것을 고려하십시오. SQL Server와 통합을 지원하는지 모르겠으므로 해당 아키텍처에서 작동하는지 확실하지 않습니다. 그래도 확인할 가치가 있습니다.

귀하의 정보를 기반으로 역할을 얻을 수없는 경우, 사용자 그룹과 관련 데이터베이스 역할 사이에 밀접한 관계가 있다고 가정합니다. 사용자가 Active Directory에있는 그룹 (역할)을 얻을 수 있습니다.

결론 : Adam이 시나리오에 어떻게 적합한 지 평가하고 현재 ID 흐름 접근법 사용과 관련된 고려 사항이 남아 있는지 여부를 평가하십시오. 또한 응용 프로그램의 신원 흐름 변경에 대한 프로젝트의 영향을 고려하는 것을 잊지 마십시오.

저장소 자체가 LDAP 인 방식으로 디자인을 리팩토링하십시오. 따라서 본질적으로 사용자와 역할 객체는 광고 객체를 매핑합니다. 그런 다음 다양한 시스템 관리자를 거치지 않고 완전히 제어 할 수 있습니다. 물론 이것은 코드 상태에 따라 쉽지 않습니다. 그러나 시작하는 가장 좋은 방법은 비즈니스 객체를 광고에 대한 이러한 매핑을 달성하기 위해 작은 개념 증명을 만드는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top