방법: Caspol.exe를 사용하여 코드 그룹 추가
샘플 그룹 추가 명령
코드 액세스 보안 정책 도구(Caspol.exe)를 사용하여 코드 그룹 계층에 코드 그룹을 추가할 때는 새 코드 그룹에 대한 멤버 자격 조건과 권한 집합을 모두 정의해야 합니다. 또한, 새 코드 그룹을 추가하는 상위 코드 그룹의 레이블 또는 이름도 정의해야 합니다. 선택적으로, 코드 그룹에 다른 플래그도 설정할 수 있습니다. 이러한 플래그에 대한 자세한 내용은 코드 액세스 보안 정책 도구(Caspol.exe)를 참조하십시오.
코드 그룹 계층에 코드 그룹을 추가하려면
명령 프롬프트에서 다음 명령을 입력합니다.
caspol [-enterprise|-machine|-user] -addgroup {parentLabel|parentName} mship pset_name [-exclusive {on|off}][-levelfinal {on|off}] [-name name] [-description description text]
–addgroup 옵션 앞에 정책 수준 옵션을 지정합니다. 정책 수준 옵션을 지정하지 않을 경우, Caspol.exe는 기본 정책 수준에 코드 그룹을 추가합니다. 컴퓨터 관리자의 경우 기본 수준은 컴퓨터 정책 수준이고, 기타 사용자의 경우 기본 수준은 사용자 정책 수준입니다. 이 명령에서
parentLabel 인수는 새 코드 그룹에 대한 상위 코드 그룹의 레이블입니다. 다른 방법으로, parentLabel 대신 상위 코드 그룹 이름(parentName)을 사용할 수 있습니다. 이 정보를 얻으려면 방법: Caspol.exe를 사용하여 코드 그룹 보기의 설명에 따라 코드 그룹을 나열합니다.
pset_name 인수는 새로운 코드 그룹과 연결될 권한 집합의 이름입니다. 명명된 권한 집합이 코드 그룹과 연결될 수 있으려면 먼저 새 코드 그룹을 추가하는 정책 수준에서 알려져야 합니다. 예를 들어, MyPset 권한 집합을 사용자 정책의 새 코드 그룹과 연결하려는 경우 MyPset 권한 집합이 이미 사용자 정책에 추가되어 있어야 합니다. 권한 집합이 미리 추가될 필요가 없는 유일한 경우는 .NET Framework에서 제공한 표준 권한 집합 중 하나를 사용하는 경우입니다. 정책 수준에 권한 집합을 추가하는 방법은 방법: Caspol.exe를 사용하여 권한 집합 추가를 참조하십시오.
mship 인수는 새 코드 그룹에 대한 멤버 자격 조건입니다. mship 인수에 대한 값 목록은 코드 액세스 보안 정책 도구(Caspol.exe)를 참조하십시오.
참고 |
---|
–addgroup 옵션을 사용하여 한 번에 둘 이상의 수준에 코드 그룹을 추가할 수 없습니다.서로 다른 코드 그룹 레이블 및 특정 권한 집합의 사용은 혼동을 불러 일으킬 수 있기 때문에 이러한 각 추가 작업은 별도로 이루어져야 합니다. |
샘플 그룹 추가 명령
다음은 가장 일반적인 코드 그룹 추가 작업 중 몇 가지를 수행하는 방법에 대한 설명입니다.
인트라넷의 코드를 대상으로 하는 코드 그룹을 추가하려면
-zone 옵션을 사용하고 멤버 값으로 Intranet을 지정합니다.
다음 명령은 Everything 권한 집합을 인트라넷의 코드와 연결합니다. 코드 그룹에는 Intranet_CG 이름도 지정됩니다. 숫자로 된 레이블 대신 이 이름을 사용하여 새로 만들어진 코드 그룹을 참조할 수 있습니다.
caspol –addgroup 1.1. –zone Intranet Everything –name "Intranet_CG"
Internet Explorer 신뢰 사이트의 코드를 대상으로 하는 코드 그룹을 추가하려면
–zone 옵션을 사용하고 멤버 값으로 Trusted를 지정합니다.
다음 명령은 LocalIntranet 권한 그룹을 신뢰할 수 있는 영역의 코드와 연결하고 새 코드 그룹을 코드 그룹 계층 루트의 자식 그룹으로 삽입합니다.
caspol -addgroup All_Code -zone Trusted LocalIntranet
특정 소프트웨어 게시자를 대상으로 하는 코드 그룹을 추가하려면
–pub 옵션을 사용하고 인증서 파일, 서명된 파일 또는 X.509 인증서의 16진수 표시를 지정합니다.
이 멤버 자격 조건이 적용되려면 소프트웨어 게시자의 파일이 제대로 서명되어야 합니다. 멤버 자격 조건은 실제 인증서 파일이나 서명된 .exe 파일을 기준으로 만들어질 수 있습니다.
FourthCoffee (FourthCoffee.cer)에 대한 인증서 파일을 사용할 수 있다고 가정하겠습니다. 다음 명령은 FourthCoffee에 의해 게시된 코드에 대한 컴퓨터 정책에 코드 그룹을 추가하고 Nothing 권한 집합을 새 그룹과 연결합니다. 코드 그룹은 루트의 자식 코드 그룹으로 추가됩니다.
caspol –machine –addgroup 1 –pub –cert FourthCoffee.cer Nothing
특정 웹 사이트의 코드를 대상으로 하는 코드 그룹을 추가하려면
–site 옵션을 사용하고 웹 사이트의 URL을 지정합니다.
참고 DNS 이름 스푸핑(spoofing)의 가능성이 있기 때문에 웹 사이트를 멤버 자격 조건으로 사용하는 것은 코드의 ID를 정확하게 식별하는 효과적인 방법이 아닙니다.가능한 경우 강력한 이름 멤버 자격 조건, 게시자 멤버 자격 조건 또는 해시 멤버 자격 조건을 사용합니다.
다음 명령은 Intranet 권한 집합을 www.microsoft.com의 코드와 연결합니다.
caspol –addgroup 1 –site www.microsoft.com Intranet
특정 URL의 코드를 대상으로 하는 코드 그룹을 추가하려면
–url 옵션을 사용하고 사이트의 URL을 지정합니다.
URL에는 http://, http:// 또는 ftp://와 같은 프로토콜이 포함되어야 합니다. 또한 와일드카드 문자(*)를 사용하여 특정 URL에서 여러 어셈블리를 지정할 수 있습니다.
참고 URL은 여러 이름을 사용하여 식별될 수 있으므로 URL을 멤버 자격 조건으로 사용하는 것은 코드의 ID를 정확하게 식별하기 위한 안전한 방법이 아닙니다.가능한 경우 강력한 이름 멤버 자격 조건, 게시자 멤버 자격 조건 또는 해시 멤버 자격 조건을 사용합니다.
caspol –user –addgroup 1 –url https://www.contoso.com/bin/* FullTrust caspol –user –addgroup 1 –url https://www.contoso.com/bin/MyAssembly.dll FullTrust
정책 수준의 다른 권한을 재정의하는 코드 그룹을 추가하려면
새 코드 그룹에 대해 –exclusive 플래그를 설정합니다.
다음 명령은 Intranet_cg 코드 그룹 아래 코드 그룹을 추가합니다. 새 코드 그룹은 영역이 신뢰된 경우 기타 코드 그룹이 부여할 수 있는 다른 모든 권한을 재정의하고 Everything 권한 집합을 부여합니다.
caspol –addgroup "Intranet_cg" –zone Trusted Everything –exclusive on
사용자 지정 멤버 자격 조건과 함께 코드 그룹을 추가하려면
–custom 옵션을 사용하여 사용자 지정 멤버 자격 조건의 XML serialization이 포함된 XML 파일을 지정합니다.
Caspol.exe는 정책에서 사용자 지정 멤버 자격 조건의 사용을 지원하므로 정책 시스템의 확장성이 높아집니다.
다음 명령은 새 코드 그룹을 사용자 정책의 루트에 추가합니다. 이 새로운 코드 그룹에는 NewMembershipCondition.xml 파일에 있는 사용자 지정 멤버 자격 조건이 포함되고 이 멤버 자격 조건과 일치하는 어셈블리에 완전한 신뢰를 부여합니다.
caspol –user –addgroup All_Code –custom NewMembershipCondition.xml FullTrust
이름 및 설명과 함께 코드 그룹을 추가하려면
–name 옵션을 사용하고 코드 그룹에 대한 이름을 지정합니다. 공백이 포함된 이름은 큰따옴표(" ")로 묶어야 합니다.
–description 옵션을 사용하여 코드 그룹에 대한 설명을 지정합니다.
나중에 이름을 사용하여 코드 그룹을 참조할 수 있습니다. 이름을 사용하면 숫자 레이블보다 정책 변경 스크립트를 더 쉽게 작성할 수 있습니다.
기본 정책은 기본 이름과 함께 제공됩니다. 관리자가 명시적으로 변경하지 않은 경우, 기본 이름을 통해 관리자는 Caspol.exe를 사용하여 정책 및 컴퓨터에 걸친 특정 코드 그룹에 더 쉽게 액세스할 수 있습니다.
다음 명령은 코드 그룹을 컴퓨터 정책의 All_Code 그룹 아래 추가합니다. 새 코드 그룹은 FourthCoffee 강력한 이름(Signed.exe에서 발견)을 확인하고 서명된 해당 모든 코드에 FullTrust를 부여합니다. 코드 그룹은 FouthCoffeeStrongName으로 명명되고 적당한 설명이 주어집니다.
caspol –machine –addgroup All_Code –strong –file signed.exe FullTrust –name FouthCoffeeStrongName –description "Code group granting trust to code signed by FourthCoffee"
참고 |
---|
둘 이상의 코드 그룹에 동일한 이름이 존재할 경우 Caspol.exe는 해당 이름으로 찾을 수 있는 첫 번째 코드 그룹으로 확인합니다.Caspol.exe는 코드 그룹의 모든 자식 그룹을 먼저 검색한 후에 동위 그룹을 검색합니다. |