다음을 통해 공유


관리 코드 양식 서식 파일의 보안 모델

InfoPath 관리 코드 양식 서식 파일은 관리되지 않는 양식 서식 파일에서 실행하는 스크립트와 같은 보안 수준을 지원하며 .NET Framework의 CLR(공용 언어 런타임)에서 실행되는 관리 코드에 적용되는 추가 코드 액세스 보안 기능도 지원합니다.

InfoPath 관리 개체 모델 보안 수준

다음 표에서는 스크립트 개체 모델 멤버의 보안 수준과 관리 코드 양식 서식 파일에서 개체 모델 멤버를 사용할 때 각 수준에 대해 요구되는 권한 집합 간의 관계에 대해 설명합니다.

개체 모델 보안 수준

설명

요구되는 권한 집합

0

무제한 액세스할 수 있습니다.

없음

2

현재 양식이 열려 있는 도메인과 동일한 위치에서 실행되거나 다른 도메인에 대한 권한이 있는 양식에서만 액세스할 수 있습니다.

없음

3

완전히 신뢰할 수 있는 양식에서만 액세스할 수 있습니다.

FullTrust

참고 사항참고 사항

보안 수준 "1"이 현재 InfoPath COM 서버에서 사용되고 있지 않거나 나중에 사용하도록 예약되어 있습니다.

중요

개체 모델 수준 0과 2는 관리 코드를 포함하므로 권한 집합을 요구하지 않지만 다음 섹션에서 설명하는 도메인 액세스 보안 수준에 대해 정의된 대로 동작합니다.

Microsoft.Office.InfoPath 및 Microsoft.Office.Interop.InfoPath.SemiTrust 어셈블리에 의해 노출되는 각 개체 모델 멤버의 보안 수준은 Microsoft.Office.InfoPathMicrosoft.Office.Interop.InfoPath.SemiTrust 네임스페이스의 해당 멤버에 대해 설명하는 도움말 항목의 주의 섹션에 지정되어 있습니다.

InfoPath 도메인 액세스 보안 수준

InfoPath 응용 프로그램에 의해 노출된 COM 서버에 적용되는 개체 모델 보안 수준과 관련하여 InfoPath에서는 양식 서식 파일 위치, 양식 배포 방법 및 디자인 모드에 구성된 설정에 따라 적용되는 3가지 보안 수준을 정의합니다. 이 3가지 보안 수준은 다음 표에 정의되어 있습니다.

도메인 액세스 보안 수준

설명

제한

양식 서식 파일 외부에서는 통신할 수 없습니다. 이 보안 수준은 해로운 양식을 통해 사용자 컴퓨터의 데이터가 악의적인 공격자에게 전송되지 못하도록 합니다. 이 보안 모드에서 실행하는 경우 사용자 지정 작업창, 데이터 연결(전자 메일 전송 제외), ActiveX 컨트롤, 관리 코드 양식 코드, 역할 및 워크플로 같은 기능을 사용할 수 없습니다. 관리 코드 양식 서식 파일은 제한 도메인에서 실행할 수 없습니다. 양식 옵션 대화 상자의 보안 및 신뢰 범주에서 관리 코드 양식 서식 파일이 자동으로 보안 수준 결정으로 설정되어 있으면 양식 서식 파일에서 코드를 실행하기 위해 항상 도메인 보안 액세스 수준 이상이 필요합니다.

중요 참고 사항중요
제한 도메인(예: 전자 메일 첨부 파일로 보낸 InfoPath 양식)에서 양식을 여는 경우 관리 코드 양식 서식 파일에 대해 만들어진 관리 코드 어셈블리가 로드되거나 실행되지 않습니다. 전자 메일 첨부 파일로 배포하려는 양식 서식 파일에는 위에 열거한 기능을 제외해야 하며 양식 서식 파일에 양식 코드가 있는 경우 양식 코드는 JScript 또는 VBScript로 구현해야 하고 보안 수준이 0인 개체 모델 멤버만 사용해야 합니다.

도메인

Microsoft Internet Explorer에서 정의한 보안 영역 중 해당 위치에 따라 양식을 제한합니다. 예를 들어 양식이 로컬 인터넷 영역에 있으면 내부 도메인에 있는 다른 데이터와 통신할 수 있지만 다른 도메인에서는 데이터를 가져올 수는 없습니다. Microsoft Internet Explorer 보안 영역의 위치에 따라 스크립팅 작업에 안전하지 않다고 표시된 ActiveX 컨트롤을 실행해도 되는지 여부가 결정됩니다.

전체 신뢰

양식을 사용할 컴퓨터에 대해 전체 신뢰 권한으로 양식을 실행할 수 있습니다. 이 보안 수준은 컴퓨터의 신뢰할 수 있는 루트 게시자와 일치하는 서명으로 디지털 서명한 양식으로 작업하는 경우나 양식 정의 파일(.xsf)에서 양식을 설치하고 xDocumentClass 요소의 requireFullTrust 특성을 "yes"로 설정하는 설치 프로그램을 만드는 경우에만 사용할 수 있습니다. 이 설정을 사용하면 양식에서 파일 시스템에 액세스하는 속성 및 메서드와 같이 개체 모델 보안 수준 3이 필요한 개체 모델 호출에 액세스할 수 있으며, 좀 더 제한된 보안 수준에서 실행할 때 나타나는 특정 보안 확인 메시지가 표시되지 않도록 할 수 있습니다.

기본적으로 InfoPath 양식은 양식 서식 파일에서 사용되는 기능 및 양식 서식 파일이 배포되는 위치와 방법에 따라 "제한" 또는 "도메인" 보안 수준을 자동으로 선택하도록 구성되어 있습니다. 예를 들어 전자 메일 첨부 파일로 배포되는 양식 서식 파일은 자동으로 "제한" 보안 수준으로 구성됩니다. 보안 설정은 사용자와 데이터를 보다 강력하게 보호하기 위해 "제한"부터 시작해서 최대한 제한적으로 설정됩니다. 관리 코드가 포함된 양식 서식 파일이 보안 수준을 자동 선택하도록 설정되어 있으면 양식 서식 파일에서 코드를 실행하기 위해 항상 도메인 보안 액세스 수준 이상이 필요합니다. 다음 절차를 사용하면 디자인 타임에 이 설정을 수동으로 재정의하여 양식에 보다 적절한 보안 수준을 선택할 수 있습니다.

양식의 보안 수준 지정

  1. InfoPath 양식 디자이너에서 양식을 열고 파일 탭과 정보를 차례로 클릭한 다음 양식 옵션을 클릭합니다.

  2. 양식 옵션 대화 상자에서 보안 및 신뢰 범주를 클릭합니다.

  3. 자동으로 보안 수준 결정(권장) 확인란의 선택을 취소합니다.

  4. 원하는 보안 수준을 선택합니다.

참고

  • 관리 코드 양식 서식 파일에 대해 제한 보안 수준을 선택하면 양식 코드에서 사용하는 개체 모델 멤버에 관계없이 양식 코드가 로드되지 않으며 실행되지도 않습니다. 이 보안 수준은 주로 전자 메일을 사용하여 배포되는 InfoPath 양식을 위한 것입니다.

  • 전체 신뢰 보안 수준을 선택하면 디지털 서명을 하거나 양식을 설치하고 등록해야 합니다. 자세한 내용은 방법: 코드가 포함된 InfoPath 양식 서식 파일 배포를 참조하십시오.

다음 표에는 InfoPath 보안 모델이 요약되어 있습니다. 첫 번째 열에는 양식에 지정되거나 필요한 수준이 나열되어 있습니다. 두 번째와 세 번째 열은 양식의 위치에 대한 URN 또는 URL 식별자가 있는지 여부를 지정합니다. 나머지 열에서는 실행이 허용된 대상을 지정합니다. 관리되는 코드 양식 서식 파일에 대한 배포 시나리오 및 권한 설정에 대한 자세한 내용은 이 도움말의 뒷부분에 나오는 "공용 언어 런타임 코드 액세스 보안 기능"을 참조하십시오.

양식에 필요한 수준

URN 식별자

URL 식별자

스크립팅 작업에 안전하지 않다고 표시된 ActiveX

도메인 간 액세스

관리 코드

개체 모델 보안

제한

X

ActiveX 없음

실패

양식은 로드되지만 관리 코드가 실행되지 않음

0

도메인(Internet Explorer 제한된 사이트 영역)

실행되지 않음

실행되지 않음

실행되지 않음

실행되지 않음

실행되지 않음

실행되지 않음

도메인(Internet Explorer 인터넷 영역)

X

실패

실패

실행되지 않음

0

도메인(Internet Explorer 로컬 인트라넷 영역)

X

실패

확인 메시지

로컬 인트라넷 권한으로 관리 코드가 실행됨

2

도메인(Internet Explorer 신뢰할 수 있는 사이트 영역)

X

확인 메시지

가능

인터넷 권한으로 관리 코드가 실행되고 크로스 도메인 액세스가 허용됩니다. 양식이 신뢰할 수 있는 사이트 영역에 있더라도 인터넷 영역 권한이 적용됩니다.

2

도메인(Internet Explorer 로컬 컴퓨터 영역)

X

X

확인 메시지

실패

로컬 인트라넷 권한으로 관리 코드가 실행됨

2

전체 신뢰

X

X

가능

가능

전체 신뢰

3

중요

위에서 "스크립팅 작업에 안전하지 않다고 표시된 ActiveX" 및 "도메인 간 액세스" 열의 설명은 Microsoft Internet Explorer에 대한 기본 보안 설정을 가정합니다. 사용자가 보안 설정을 변경하면 InfoPath도 그에 따라 동작합니다. 예를 들어 로컬 인트라넷 영역에서 도메인 간의 데이터 소스 액세스사용으로 설정되어 있으면 표에 설명된 것처럼 도메인 간 액세스를 허용하라는 메시지가 사용자에게 표시되지 않습니다.

공용 언어 런타임 코드 액세스 보안 기능

InfoPath 관리 코드 양식 서식 파일을 컴파일하면 양식 코드 논리의 구현을 포함하는 전용 관리 코드 어셈블리가 만들어집니다.

.NET Framework에서 관리 코드 어셈블리는 기본적으로 로컬 컴퓨터에서 실행되는 경우 전체 신뢰 권한이 부여되고 인트라넷에서 실행되는 경우에는 전체 신뢰 권한이 부여되지 않습니다. 보안 정책에 대해 좀 더 세분하여 제어하고 인트라넷에서 InfoPath 관리 코드 양식 서식 파일을 완전히 신뢰할 수 있는 양식으로 실행하는 옵션을 제공하기 위해 InfoPath에서는 다음 보안 아키텍처를 구현합니다.

  • InfoPath 응용 프로그램은 .NET Framework CLR(공용 언어 런타임)을 호스팅합니다.

  • InfoPath에서 호스트하는 CLR에서는 각 관리 코드 양식 서식 파일이 다른 응용 프로그램 도메인에서 실행됩니다. 이러한 환경에서는 관리 코드를 실행하기 위한 격리, 언로드, 보안 경계가 제공됩니다.

  • InfoPath에서는 양식 서식 파일 및 해당 위치의 URL과 연결된 신뢰 수준에 따라 응용 프로그램 도메인에 대한 기본 보안 정책을 설정합니다.

  • 기본적으로 로컬 컴퓨터(내 컴퓨터 영역 코드 그룹)에서 실행하는 관리 코드 양식 서식 파일은 전체 신뢰(로컬 인트라넷 영역 권한)보다 낮은 수준의 권한을 갖게 됩니다. 전체 신뢰 권한을 가지려면 양식을 등록하거나 신뢰할 수 있는 인증서로 디지털 서명해야 합니다.

관리 코드 양식 서식 파일의 응용 프로그램 도메인에 대해 설정된 기본 보안 정책을 사용하면 다른 .NET 보안 제한뿐 아니라 InfoPath 도메인 액세스 보안 수준도 적용됩니다. 좀 더 유연성을 제공하기 위해 InfoPath 보안 시스템에서는 "InfoPath 양식 서식 파일"이라는 .NET 코드 액세스 보안 코드 그룹을 인식합니다. 사용자의 컴퓨터에 이 코드 그룹이 있으면 보안 구성과 그 안에 포함된 모든 하위 코드 그룹이 응용 프로그램 도메인에 적용됩니다.

중요

  • InfoPath 양식 서식 파일 코드 그룹은 관리 코드 양식 코드 어셈블리 자체에만 적용됩니다. 따라서 InfoPath 관리 코드 양식 코드에 전체 신뢰 권한 집합을 부여했지만 양식 서식 파일 자체를 설치하고 등록(또는 디지털 서명)하여 전체 양식 서식 파일을 완전히 신뢰할 수 있도록 만들지 않은 경우 양식 코드에서 보안 수준 3 개체 모델 멤버를 호출하면 실패합니다.

  • 해시, 강력한 이름 또는 게시자 증명 정보를 사용하여 양식 서식 파일 프로젝트의 멤버 자격 상태를 확인하는 제한된 권한 집합으로 구성된 어셈블리를 참조하거나 명시적으로 로드(Assembly.Load)하는 경우 양식 서식 파일에서 어셈블리를 로드하고 실행합니다.

InfoPath 양식 서식 파일 코드 그룹을 만들고 구성하는 방법에 대한 자세한 내용은 방법: 관리 코드 양식 서식 파일의 보안 설정 구성을 참조하십시오.

다음 표에서는 관리 코드 양식 서식 파일에 적용되는 배포 시나리오와 권한 집합에 대해 간략하게 설명합니다.

배포 시나리오

권한 집합

참고

양식 서식 파일이 로컬 컴퓨터에 게시되고 개발자가 Visual Studio를 사용하여 양식 코드를 작성하고 디버깅합니다.

로컬 인트라넷 권한 집합

GAC(전역 어셈블리 캐시)에 설치되고 AllowPartiallyTrustedCallersAttribute 특성이 표시된 어셈블리에는 전체 신뢰 권한 집합이 부여됩니다.

기본적으로 로컬 컴퓨터에서 실행하는 양식 서식 파일에는 전체 신뢰 권한 집합이 부여되지 않습니다. 전체 신뢰 권한이 필요한 개체 모델 멤버에 대한 호출과 기능을 사용하는 양식 서식 파일을 개발하는 동안 방법: 전체 신뢰가 필요한 관리 코드 양식 서식 파일 디버깅 및 미리 보기를 참조하십시오.

양식 서식 파일은 로컬 컴퓨터에 게시되고 로컬 컴퓨터에 대한 전체 신뢰 권한 집합이 필요한 사용자 지정 어셈블리를 참조합니다.

로컬 인트라넷 권한 집합

GAC(전역 어셈블리 캐시)에 설치되고 AllowPartiallyTrustedCallersAttribute 특성이 표시된 어셈블리에는 전체 신뢰 권한 집합이 부여됩니다. 사용자 지정 어셈블리에는 로컬 인트라넷 권한 집합이 부여됩니다.

양식 서식 파일 코드에서 사용하기 위해 외부 어셈블리를 참조하려면 개발자가 InfoPath 양식 서식 파일 코드 그룹을 사용하여 양식 서식 파일 코드에서 참조하는 외부 어셈블리에 전체 신뢰나 적절한 권한 집합을 부여해야 합니다. InfoPath에서는 GAC(전역 어셈블리 캐시)에 설치된 어셈블리가 아닌 외부 어셈블리는 모두 인정하지 않습니다. 개발자는 My_Computer_Zone 코드 그룹에서 부여된 권한이지만 이미 어셈블리를 신뢰할 수 있는 경우에도 InfoPath 양식 서식 파일 코드 그룹을 사용하여 필요한 권한을 명시적으로 어셈블리에 부여해야 합니다.

양식 서식 파일이 파일 공유 위치, SharePoint 양식 라이브러리 또는 웹 서버와 같은 로컬 인트라넷의 공유 위치에 게시됩니다.

로컬 인트라넷 권한 집합

GAC(전역 어셈블리 캐시)에 설치되고 AllowPartiallyTrustedCallersAttribute 특성이 표시된 어셈블리에는 전체 신뢰 권한 집합이 부여됩니다.

양식 서식 파일이 Internet Explorer에서 신뢰할 수 있는 사이트로 지정된 파일 공유 위치, SharePoint 양식 라이브러리 또는 웹 서버와 같은 공유 위치에 게시됩니다.

인터넷 권한 집합

Microsoft 및 ECMA에서 서명한 어셈블리에는 전체 신뢰 권한 집합이 부여됩니다.

CLR 코드 액세스 보안은 Internet Explorer에서 신뢰할 수 있는 사이트로 지정된 사이트에 인터넷 권한 집합만 부여합니다. 이 정책은 InfoPath에서도 적용됩니다. 이러한 점이 신뢰할 수 있는 사이트 영역에 게시할 때 더 높은 수준의 권한을 받는 양식 코드에 대한 스크립트를 사용하는 InfoPath 양식 서식 파일과 다릅니다.

양식 서식 파일이 다운로드되거나 인터넷 위치에서 복사됩니다.

기본값은 없음입니다. 양식 서식 파일의 관리 코드 어셈블리가 로드되지 않고 실행되지도 않습니다.

참고 항목

작업

방법: 관리 코드 양식 서식 파일의 보안 설정 구성

개념

방법: 전체 신뢰가 필요한 관리 코드 양식 서식 파일 디버깅 및 미리 보기