다음을 통해 공유


사용자 지정 클레임 규칙을 사용하는 경우

클레임 발급 엔진이 프로그래밍 방식으로 클레임을 생성, 변환, 통과 및 필터링하는 데 사용하는 프레임워크인 클레임 규칙 언어를 사용하여 AD FS(Active Directory Federation Services)에서 사용자 지정 클레임 규칙을 작성합니다. 사용자 지정 규칙을 사용하여 표준 규칙 템플릿보다 더 복잡한 논리를 포함하는 규칙을 만들 수 있습니다. 다음을 수행하려는 경우 사용자 지정 규칙을 사용하는 것이 좋습니다.

  • SQL(구조적 쿼리 언어) 특성 저장소에서 추출된 값을 기준으로 클레임을 보냅니다.

  • 사용자 지정 LDAP 필터를 사용하여 LDAP(Lightweight Directory Access Protocol) 특성 저장소에서 추출된 값을 기준으로 클레임을 보내려는 경우

  • 사용자 지정 특성 저장소에서 추출된 값을 기준으로 클레임을 보내려는 경우

  • 들어오는 클레임이 두 개 이상 있는 경우에만 클레임을 보내려는 경우

  • 들어오는 클레임 값이 복잡한 패턴과 일치하는 경우에만 클레임을 보내려는 경우

  • 들어오는 클레임 값을 복잡하게 변경하여 클레임을 보내려는 경우

  • 실제로 클레임을 보내지 않고 이후 규칙에서만 사용하기 위해 클레임을 만들려는 경우

  • 둘 이상의 들어오는 클레임 내용에서 나가는 클레임을 생성하려는 경우

나가는 클레임의 클레임 값이 들어오는 클레임 값을 기반으로 해야 하지만 추가 콘텐츠도 포함해야 하는 경우에 사용자 지정 규칙을 사용할 수도 있습니다.

클레임 규칙 언어는 규칙 기반입니다. 조건 부분과 실행 부분이 있습니다. 클레임 규칙 언어 구문을 사용하여 조직의 요구에 맞게 클레임을 열거, 추가, 삭제 또는 수정할 수 있습니다. 이러한 각 부분이 어떻게 작동하는지에 대한 자세한 내용은 클레임 규칙 언어의 역할을 참조하세요.

다음 섹션에서는 클레임 규칙에 대한 기본 사항을 소개합니다. 또한 사용자 지정 클레임 규칙을 사용하는 경우에 대한 세부 정보를 제공합니다.

클레임 규칙 정보

클레임 규칙은 들어오는 클레임을 사용하고 조건을 적용한 다음(x이면 y임) 조건 매개 변수에 따라 나가는 클레임을 생성하는 비즈니스 논리 인스턴스를 나타냅니다.

Important

  • AD FS 관리 스냅인에서는 클레임 규칙 템플릿을 사용해야만 클레임 규칙을 만들 수 있습니다.
  • 클레임 규칙은 클레임 공급자(예: Active Directory 또는 다른 페더레이션 서비스)에서 직접 들어오거나 클레임 공급자 트러스트에 대한 수락 변환 규칙 출력에서 들어오는 클레임을 처리합니다.
  • 클레임 규칙은 지정된 규칙 집합 내의 시간 순서대로 클레임 발급 엔진에 의해 처리됩니다. 규칙에 우선 순위를 설정하여 지정된 규칙 집합 내의 이전 규칙에 의해 생성된 클레임을 더욱 구체화하거나 필터링할 수 있습니다.
  • 클레임 규칙 템플릿에서는 항상 들어오는 클레임 유형을 지정해야 합니다. 그러나 단일 규칙을 사용하여 동일한 클레임 유형 내의 여러 클레임 값을 처리할 수 있습니다.

클레임 규칙 및 클레임 규칙 집합에 대 한 정보를 자세한 참조 규칙의 역할 클레임합니다. 규칙은 처리 하는 방법에 대 한 자세한 내용은 참조 클레임 엔진의 역할합니다. 자세한 내용은 클레임 규칙 집합을 처리 하는 방법을 참조 하십시오 클레임 파이프라인의 역할합니다.

이 규칙을 만드는 방법

이 규칙을 만들려면 먼저 클레임 규칙 언어를 사용하여 작업에 필요한 구문을 작성한 다음 AD FS 관리 스냅인의 클레임 공급자 트러스트 또는 신뢰 당사자 신뢰 속성에서 사용자 지정 규칙을 사용하여 클레임 보내기 템플릿에 제공된 텍스트 상자에 결과를 붙여넣습니다.

이 규칙 템플릿에서는 다음 옵션을 제공합니다.

  • 클레임 규칙 이름 지정

  • AD FS 클레임 규칙 언어를 사용하여 하나 이상의 선택적 조건 및 발급 문을 입력합니다.

이 템플릿을 사용하여 사용자 지정 규칙을 만드는 방법에 대한 자세한 내용은 AD FS 배포 가이드의 사용자 지정 규칙을 사용하여 클레임을 보내는 규칙 만들기를 참조하세요.

클레임 규칙 언어의 작동 방식을 제대로 이해하려면 해당 규칙에 대한 속성에서 규칙 언어 보기 탭을 클릭하여 스냅인에 이미 있는 다른 규칙의 클레임 규칙 언어 구문을 봅니다. 이 섹션의 정보와 이 탭의 구문 정보를 사용하여 고유한 사용자 지정 규칙을 생성하는 방법을 파악할 수 있습니다.

클레임 규칙 언어를 사용 하는 방법에 대 한 자세한 내용은 참조 클레임 규칙 언어의 역할합니다.

클레임 규칙 언어 사용

예제: 사용자의 이름 특성 값을 기반으로 하여 이름과 성을 결합하는 방법

다음 규칙 구문은 지정된 특성 저장소에 있는 특성 값의 이름과 성을 결합합니다. 정책 엔진은 각 조건에 대한 일치 항목의 카티전 곱을 형성합니다. 예를 들어, 이름 {"Frank", "Alan"} 및 성 {"Miller", "Shen"}의 출력은 {"Frank Miller", "Frank Shen", "Alan Miller", "Alan Shen")이 됩니다.

c1:[type == "http://exampleschema/firstname" ]
&&  c2:[type == "http://exampleschema/lastname",]
=> issue(type = "http://exampleschema/name", value = c1.value + "  " + c2.value);

예: 사용자에게 부하 직원이 있는지 여부에 따라 관리자 클레임을 발급하는 방법

다음 규칙은 사용자에게 부하 직원이 있는 경우에만 관리자 클레임을 발급합니다.

c:[type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"] => add(store = "SQL Store", types = ("http://schemas.xmlsoap.org/claims/Reports"), query = "SELECT Reports FROM dbo.DirectReports WHERE UserName = {0}", param = c.value );
count([type == "http://schemas.xmlsoap.org/claims/Reports"] ) > 0 => issue(= "http://schemas.xmlsoap.org/claims/ismanager", value = "true");

예: LDAP 특성을 기준으로 PPID 클레임을 발급하는 방법

다음 규칙은 LDAP 특성 저장소에 있는 사용자의 windowsaccountnameoriginalissuer 특성에 따라 PPID(Private Personal Identifier) 클레임을 발급합니다.

c:[Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"]
 => issue(store = "_OpaqueIdStore", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier"), query = "{0};{1};{2}", param = "ppid", param = c.Value, param = c.OriginalIssuer);

이 쿼리에 대한 사용자를 고유하게 식별하는 데 사용할 수 있는 공통 특성은 다음과 같습니다.

  • user SID

  • windowsaccountname

  • samaccountname