통과 또는 필터 클레임 규칙을 사용하는 경우
이 규칙을 사용하여 특정 들어오는 클레임 형식을 취한 다음 들어오는 클레임의 값을 기반으로 어떤 결과가 발생할지 결정하는 작업을 적용해야 할 때 AD FS(Active Directory Federation Services)에서 이 규칙을 사용할 수 있습니다. 이 규칙을 사용하는 경우 규칙에서 구성하는 옵션 중 하나에 따라 다음 표의 규칙 논리와 일치하는 클레임을 통과 또는 필터링합니다.
규칙 옵션 | 규칙 논리 |
---|---|
모든 클레임 값 통과 | 들어오는 클레임 유형이 지정 된 클레임 형식 고 값이 값, 를 통해 클레임을 전달 합니다 |
특정 클레임 값만 통과 | 들어오는 클레임 유형이 지정 된 클레임 형식 고 값이 지정 된 값, 를 통해 클레임을 전달 합니다 |
특정 메일 접미사 값과 일치하는 클레임 값만 통과 | 들어오는 클레임 유형이 지정 된 클레임 형식 고 값이 접미사 값을 지정 된, 를 통해 클레임을 전달 합니다 |
특정 값으로 시작하는 클레임 값만 통과 | 들어오는 클레임 유형이 지정 된 클레임 형식 값으로 시작 하 고 지정 된 값, 를 통해 클레임을 전달 합니다 |
다음 섹션에서는 클레임 규칙의 기본 사항을 소개하고 이 규칙을 사용하는 경우에 대한 추가 정보를 제공합니다.
클레임 규칙 정보
클레임 규칙은 들어오는 클레임에 대해 조건(if x then y)을 적용하고 조건 매개 변수를 기반으로 나가는 클레임을 생성하는 비즈니스 논리의 인스턴스를 나타냅니다. 다음 목록은 이 항목을 더 읽기 전에 클레임 규칙에 대해 알아야 하는 중요한 팁을 간략하게 설명합니다.
AD FS 관리 스냅인에서 클레임 규칙 템플릿을 사용해야만 클레임 규칙을 만들 수 있습니다.
클레임 규칙은 클레임 공급자(예: Active Directory 또는 다른 페더레이션 서비스)에서 직접 들어오거나 클레임 공급자 트러스트에 대한 수락 변환 규칙 출력에서 들어오는 클레임을 처리합니다.
클레임 규칙은 지정된 규칙 집합 내의 시간 순서대로 클레임 발급 엔진에 의해 처리됩니다. 규칙에 우선 순위를 설정하여 지정된 규칙 집합 내의 이전 규칙에 의해 생성된 클레임을 더욱 구체화하거나 필터링할 수 있습니다.
클레임 규칙 템플릿에서는 항상 들어오는 클레임 유형을 지정해야 합니다. 그러나 단일 규칙을 사용하여 동일한 클레임 유형 내의 여러 클레임 값을 처리할 수 있습니다.
클레임 규칙 및 클레임 규칙 집합에 대 한 정보를 자세한 참조 규칙의 역할 클레임합니다. 규칙은 처리 하는 방법에 대 한 자세한 내용은 참조 클레임 엔진의 역할합니다. 자세한 내용은 클레임 규칙 집합을 처리 하는 방법을 참조 하십시오 클레임 파이프라인의 역할합니다.
모든 클레임 값 통과
이 작업을 사용하는 경우 지정된 클레임 유형에 대해 들어오는 모든 클레임 값이 나가는 클레임으로 통과됩니다. 예를 들어 들어오는 클레임 유형이 역할 클레임 유형으로 지정된 경우 들어오는 모든 클레임 값이 역할 나가는 클레임 유형의 새 나가는 클레임에 개별적으로 복사됩니다.
클레임 필터링
Ad FS 용어 필터링 하는 클레임 수단을 필터링 하거나 제한 들어오는 클레임 값은 특정 값만 전달 되거나를 통해 나가는 클레임으로 전송 되도록 합니다. 통과 또는 들어오는 클레임 필터링 이 함수를 가능 하 게 하는 규칙 서식 파일입니다. 이 규칙의 속성 내에서 지정된 조건을 충족하는 값만 통과되도록 들어오는 값을 필터링하는 조건을 설정할 수 있습니다.
예를 들어 이 규칙을 사용하여 들어오는 클레임 유형이 역할 클레임 유형과 일치하는 클레임만 통과시키거나 사용자 이름에 대한 클레임만 발급하고 사용자의 주민 등록 번호를 포함하는 클레임은 발급하지 않을 수 있습니다.
이 규칙과 함께 필터 조건을 사용하면 들어오는 모든 클레임을 검사하여 규칙에 설정된 조건과 일치하는 클레임을 확인합니다. 선택한 클레임 유식과 일치하는 지정된 클레임 값만 통과되도록 다른 모든 클레임은 무시됩니다.
예를 들어 다음 그림과 같이 UPN 클레임 형식으로 키가 지정되고 @fabrikam.com(으)로 끝나는 들어오는 클레임만 필터링하는 조건을 사용하여 규칙이 설정된 경우, 이 조건을 충족하지 않으면 다른 들어오는 클레임은 모두 무시됩니다. 클레임 값이 @fabrikam.com(으)로 끝나지만 클레임 형식이 메일 주소인 들어오는 클레임도 여기에 포함됩니다. 이 경우 Nick@fabrikam.com 값을 포함하는 클레임만 신뢰 당사자에게 전송됩니다.
클레임 공급자 트러스트에서 이 규칙 구성
클레임 공급자 트러스트를 사용하는 경우 클레임 공급자에서 들어오는 클레임 중 특정 제약 조건과 일치하는 클레임만 통과시키도록 이 규칙을 구성할 수 있습니다. 예를 들어 클레임 공급자의 이메일 클레임만 수락하고자 할 수 있습니다. 따라서 이 규칙 템플릿을 사용하여 클레임 공급자의 DNS(도메인 이름 시스템) 이름으로 끝나는 메일 클레임 형식을 수락할 수 있습니다.
신뢰 당사자 트러스트에서 이 규칙 구성
신뢰 당사자 트러스트를 사용하는 경우 신뢰 당사자에게 전송되는 나가는 클레임을 통과 또는 필터링하도록 이 규칙을 구성할 수 있습니다. 일부 신뢰 당사자는 특정 클레임 유형을 이해하지 못하거나 특정 클레임에 특정 신뢰 당사자에게 보내지 않아야 하는 중요한 정보가 들어 있을 수 있습니다. 이 규칙 템플릿은 특정 신뢰 당사자 트러스트에 대해 이러한 정책을 적용하는 데 도움이 될 수 있습니다.
이 규칙을 만드는 방법
이 규칙은 클레임 규칙 언어를 사용하거나 AD FS 관리 스냅인의 수신 클레임 규칙 템플릿의 통과 또는 필터링을 통해 생성할 수 있습니다. 이 규칙 템플릿은 다음과 같은 구성 옵션을 제공합니다.
클레임 규칙 이름 지정
들어오는 클레임 유형 지정
모든 클레임 값 통과
특정 클레임 값만 통과
특정 메일 접미사 값과 일치하는 클레임 값만 통과
특정 값으로 시작하는 클레임 값만 통과
이 서식 파일을 만드는 방법에 대 한 자세한 내용은 참조 하십시오. 통과 하는 규칙을 만들거나 들어오는 클레임 필터링 AD FS 배포 가이드에 있습니다.
클레임 규칙 언어 사용
클레임 값이 사용자 지정 패턴과 일치하는 경우에만 클레임을 보내야 하는 경우 사용자 지정 규칙을 사용해야 합니다. 자세한 내용은 사용자 지정 규칙을 사용하는 경우를 참조하세요.
통과 또는 필터링 규칙 구문을 생성하는 방법의 예
단순한 필터링 규칙은 위에 설명된 속성 중 하나를 기준으로 클레임을 필터링합니다. 예를 들어 다음 규칙은 모든 메일 클레임을 통과시킵니다.
c:[type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"] => issue(claim = c);
필터는 논리적 AND로 결합될 수 있습니다. 예를 들어 다음 규칙은 값이 johndoe@fabrikam.com인 모든 이메일 클레임을 수락합니다.
c:[type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", value == "johndoe@fabrikam.com "] => issue(claim = c);
위 예제에서 필터는 항상 같음 연산자를 사용했습니다. 클레임 규칙 언어는 다음과 같은 연산자를 지원합니다.
== - 같음(대/소문자 구분)
!= - 같지 않음(대/소문자 구분)
=~ - 정규식 일치
!~ - 정규식 비일치
예를 들어 다음 규칙은 접미사가 boeing.com인 로컬 페더레이션 서버에서 발급되지 않은 모든 메일 클레임을 수락합니다.
c:[type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", value =~ "^.*@boeing\.com$" , issuer != "LOCAL AUTHORITY"] => issue(claim = c);
사용자 지정 규칙을 만드는 모범 사례
다음 표에 설명된 것처럼 각 클레임의 속성 중 하나 이상에 필터를 적용할 수 있습니다.
클레임 속성 | 설명 |
---|---|
Type | 일반적으로 URI로 표시되는 클레임 유형은 클레임을 통해 전달되는 정보 종류에 대한 페더레이션 파트너 간의 암시적 규약을 반영합니다. 예를 들어 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress 형식의 클레임에는 사용자의 이메일 주소가 포함됩니다. |
값 | 클레임의 값입니다. 예를 들어 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress 형식 클레임은 johndoe@fabrikam.com 값을 가질 수 있습니다. |
ValueType | ValueType은 클레임의 값에 포함된 정보를 해석하는 방법을 나타냅니다. 일반적으로 ValueType은 http://www.w3.org/2001/XMLSchema#string(으)로 설정되지만 클레임 값에는 Base64Binary로 인코드된 데이터(예: 이미지) 또는 날짜, 부울 등이 포함될 수 있습니다. |
Issuer | 발급자는 사용자에 대한 클레임을 마지막으로 발급한 당사자를 나타냅니다. 클레임 공급자 페더레이션 서버에서 클레임을 가져오는 경우 모든 클레임의 발급자가 '로컬 권한'으로 설정됩니다. 페더레이션 공급자 페더레이션 서버가 클레임을 받은 경우 클레임의 발급자가 토큰에 서명한 클레임 공급자의 클레임 공급자 식별자로 설정됩니다. 따라서 클레임 공급자로부터 받은 클레임에 대한 규칙을 처리하는 경우 모든 클레임의 발급자가 동일한 값으로 설정됩니다. 신뢰 당사자에 대한 규칙을 작성하는 경우 발급자 속성을 사용하여 다양한 클레임 공급자에서 발생하는 클레임을 구분할 수 있습니다. |
OriginalIssuer | 이 클레임 속성은 원래 클레임을 발급한 페더레이션 서버를 전달하는 데 사용됩니다. 클레임의 발급자 속성이 토큰에 서명한 마지막 페더레이션 서버로 설정되었으므로 원래 발급자는 둘 이상의 페더레이션 서버를 통해 클레임이 전달되는 시나리오에서 유용합니다. 예를 들어 페더레이션 공급자 페더레이션 서버로부터 토큰을 수신하는 신뢰 당사자가 사용자를 인증한 특정 클레임 공급자 페더레이션 서버에 관심이 있을 수도 있습니다. |
속성 | 위에서 설명한 5가지 속성 외에도 각 클레임에는 명명된 속성을 저장할 수 있는 속성 모음이 있습니다. 이러한 속성은 토큰에 직렬화되지 않으며 단일 페더레이션 서버 범위 내에서 클레임 발급 파이프라인의 구성 요소 간에 정보를 전달하는 데만 사용됩니다. 예를 들어 클레임 공급자 규칙을 처리하는 동안 속성을 설정한 다음 신뢰 당사자 규칙에서 참조합니다. |