다음을 통해 공유


워크플로 서비스에 대한 보안 지침

워크플로 서비스를 만들고 배포할 때 사용할 보안 지침은 다음과 같습니다.

  • 클라이언트와 서비스 또는 서비스와 유지 데이터베이스 간에 통신할 때 서명되고 암호화된 메시지를 사용하여 악의적인 사용자가 네트워크를 통해 전송된 데이터를 읽거나 수정하지 못하게 합니다. 메시지 보호 수준에 대한 자세한 내용은 Understanding Protection Level를 참조하십시오.

  • 인증이나 권한 부여에 대화 ID나 인스턴스 ID 대신 보안 주체 권한과 클레임을 사용합니다. 보안 주체 권한과 클레임에 대한 자세한 내용은 How to: Restrict Access With the PrincipalPermissionAttribute을 참조하십시오.

  • 신뢰할 수 있는 소스의 ACL과 서명된 어셈블리를 사용하여 악의적인 사용자가 워크플로 서비스를 가장하지 못하게 합니다.

  • 난독 처리에 대한 지침을 수행하여 악의적인 사용자가 워크플로 서비스 어셈블리를 디스어셈블하고 바인딩 정보나 그 안에 정적으로 정의된 속성 값(또는 둘 다)을 읽지 못하게 합니다.

  • 액세스하지 못하게 유지 데이터베이스를 잠그고 데이터베이스 감사를 수행하여 액세스 위반이 있는지 검토합니다. serialize된 데이터를 파일 시스템에 저장하는 경우 ACL과 파일 감사를 사용합니다.

  • 클라이언트의 채널 팩터리 캐시에 공개적으로 액세스할 수 없도록 하여 악의적인 사용자가 응용 프로그램 내 도메인 사용자 계정을 사용하여 채널 팩터리 캐시를 수정하고 클라이언트를 다른 워크플로 서비스로 리디렉션하지 못하게 합니다.

  • ACL을 사용하여 모든 구성 파일을 보호하고 connectionStrings 요소에 저장된 연결 문자열을 선택적으로 암호화하여 악의적인 사용자가 데이터베이스 연결에 사용하는 연결 문자열을 발견하지 못하게 합니다.

  • IIS에서 실제 워크플로 마크업과 .rules 파일을 배포하는 대신 ASP.NET VirtualPathProvider를 사용하여 데이터베이스 기반 파일을 사용하는 것을 고려합니다.

  • 워크플로 서비스를 호스팅하는 프로세스에 최소한의 권한 집합을 제공하고 관리 권한으로 프로세스(IIS 응용 프로그램 풀)를 실행하지 않습니다.

  • 사용자 지정 활동, 사용자 지정 호스팅 서비스, 사용자 지정 디스패치 구성 요소 등의 타사 구성 요소가 모두 신뢰할 수 있고 응용 프로그램의 전체적인 보안 체계를 따르는지 확인합니다.

  • HTTP.sys에 MaxFieldLength 레지스트리 키를 사용하여 서비스가 클라이언트에서 받는 http 헤더의 크기를 조절합니다. 이렇게 하면 악의적인 사용자가 서버에 전송되는 메시지에 크기가 큰 HTTP 컨텍스트 쿠키를 연결할 수 없습니다. 이 레지스트리 키 설정에 대한 자세한 내용은 IIS에 대한 Http.sys 레지스트리 설정을 참조하십시오.

  • EncryptandSign 또는 Https 전송 프로토콜을 사용하여 악의적인 사용자가 클라이언트와 서비스 간의 전송 중에 기밀 컨텍스트 헤더 또는 쿠키 정보를 읽지 못하게 합니다.

  • 세션 전송에 컨텍스트 바인딩을 사용하는 경우 세션 수명 중에 ID를 변경할 수 없음을 이해합니다.

참고 항목

기타 리소스

워크플로 서비스 및 영속 서비스에 대한 보안 고려 사항

Footer image

Copyright © 2007 by Microsoft Corporation. All rights reserved.