2011-06-15 3 views
1

광고가 이 아닌 인 2 계층 클라이언트/서버 레거시 응용 프로그램 (SQL Server 2008 R2)에서 IPSec 또는 이와 유사한 것을 사용하지 않고 x.509 PKI 인증서를 기반으로 사용자 인증 및 권한 부여를 추가하고 싶습니다.SQL Server에서의 PKI 기반 x.509 인증서 인증?

클라이언트는 SQL Server에 연결하기 전에 기존 STS/WS-trust 서비스를 사용하여 서명 된 SAML 토큰을 얻을 수 있습니다.

SQL Server의 SSL 옵션은 지금까지 찾은 것에서는 상호 (양방향) 인증을 지원하지 않습니다. 한 가지 생각은 인증 (또는 SAML 토큰 유효성 검사)을 수행하는 사용자 지정 .NET 저장 프로 시저를 사용하고 현재 사용자가 현재 SQL Server 로그인을 '사용하도록 설정'하는 것이지만 더 나은 옵션이 반드시 있어야합니다.

이 작업을 수행하는 좋은 방법은 무엇입니까?

답변

1

레거시 클라이언트/서버에 인증서를 갱신하려는 여러 프로젝트를 보았습니다. 이를 수행하는 한 가지 방법은 SSL 인증을 담당하는 서버에 서비스를 두는 것입니다 (이 서비스와 SQL Server 간의 통신은 암호화되지 않습니다).

소요 시간에 따라이 솔루션에는 두 가지 단점이 있습니다.

가장 간단한 경우 SSL 서비스는 클라이언트 인증서가 유효하고 신뢰할 수있는 CA가 발급 한 인증서 만 확인합니다. 보다 복잡한 상황에서 SSL 서비스는 또한 클라이언트 인증서를 계정에 매핑하고 SQL Server에서 SQL 로그인을 시작합니다 (선택적으로 주기적으로 변경되는 암호 사용).

+0

정말 좋은 의견을 보내 주셔서 감사합니다! 그리고 다른 사람들이 이미 이것을 한 것을 듣는 것이 좋다. 인증 서비스는 매우 직설적이지만 연결 전에 서비스 인증이 이루어지지 않으면 데이터베이스 서버가 데이터베이스에 로그인하는 것을 '방지'하는 방법을 알 수 있습니다. 저장 procudere? – magnus

+0

방화벽이나 별도의 IP 주소를 사용하고 싶습니다. –

3

stunnel을 사용하여 인증서 인증 SSL 끝점을 만든 다음 SSL 프로토콜을 통해 Windows 인증 또는 기본 제공 SQL Server 인증을 사용할 수 있습니다.