클레임 엔진의 역할

가장 높은 수준에서 AD FS(Active Directory Federation Services)의 클레임 엔진은 페더레이션 서비스에 대한 클레임 요청을 처리하고 처리하는 데 전념하는 규칙 기반 엔진입니다. 클레임 엔진은 구성한 모든 페더레이션 트러스트 관계에서 각 규칙 집합을 실행하고 출력 결과를 클레임 파이프라인에 전달하는 일을 담당하는 페더레이션 서비스 내 유일한 엔터티입니다.

클레임 파이프라인이 클레임 흐름에 대해 더 논리적인 엔드투엔드 프로세스 개념인 반면 클레임 규칙은 클레임 규칙 실행 프로세스 동안 클레임의 흐름을 사용자 지정하는 데 사용할 수 있는 실제 관리적 요소입니다. 파이프라인 프로세스에 대 한 자세한 내용은 참조 클레임 파이프라인의 역할합니다.

다음 일러스트레이션에 표시된 것과 같이 들어오는 클레임 승인(승인 규칙), 클레임 요청자 권한 부여(권한 부여 규칙) 및 나가는 클레임 발급(발급 규칙) 작업이 조직의 모든 페더레이션 트러스트 관계에서 클레임 규칙을 통해 클레임 엔진에서 수행됩니다.

Illustration that shows the processes performed by the claims engine.

클레임 규칙 실행 프로세스

클레임 규칙을 사용하여 조직에서 클레임 공급자 트러스트 또는 신뢰 당사자 트러스트를 구성하는 경우, 해당 트러스트에 대한 클레임 규칙 집합은 클레임 엔진을 호출하여 클레임 발급 여부와 발급할 클레임을 결정하기 위해 필요한 논리를 클레임 규칙에 적용함으로써 들어오는 클레임에 대해 게이트키퍼 역할을 합니다.

다음 섹션에서는 클레임의 흐름 중 엔진에서 발생하는 각 단계를 클레임 규칙 실행 프로세스를 통해 간략히 설명합니다. 아래에 간략히 설명되어 있는 대로 각 단계는 클레임 파이프라인 프로세스에 설명된 각 스테이지에 대해 발생합니다. 이 단계에는 다음이 포함됩니다.

  • 1단계 - 초기화

  • 2단계 - 실행

  • 3단계 - 실행 결과

파이프라인 프로세스에 대 한 자세한 내용은 참조 클레임 파이프라인의 역할합니다.

1단계 - 초기화

클레임 규칙 실행 프로세스의 첫 번째 단계에서 클레임 엔진은 들어오는 클레임을 먼저 입력 클레임 집합에 추가함으로써 들어오는 클레임을 승인합니다. 입력 클레임 집합은 필요한 프로세스가 해당 데이터를 검색에 사용할 수 있도록 요구하는 동안만 임시로 데이터를 저장하는 데 사용되는 메모리의 캐시와 비슷합니다. 입력 클레임 집합 데이터는 규칙 실행이 완료된 후 삭제됩니다.

규칙 집합의 입력 클레임 집합에 클레임 추가

클레임 규칙 집합과 연결된 논리를 처리하는 동안 메모리에 임시로 클레임 데이터를 저장해야 하는 경우 입력 클레임 집합이 클레임 엔진에서 만들어집니다. 클레임 엔진은 들어오는 모든 클레임을 규칙 집합의 첫 번째 규칙으로 검색할 수 있는 입력 클레임 집합에 복사합니다.

예를 들어 아래 일러스트레이션에서 클레임 엔진은 들어오는 클레임에서 A 및 B의 클레임을 읽고 입력 클레임 집합에 복사합니다. 클레임이 입력 클레임 집합에 있게 된 다음, 클레임 엔진은 클레임 A 및 B를 클레임 규칙 집합에 있는 첫 번째 규칙의 논리에 대한 입력으로 검색하고 처리합니다.

Illustration that shows that the claims engine reads the claims of A and B from the incoming claims and copies them to the input claim set.

클레임 규칙 집합의 모든 규칙은 동일한 입력 클레임 집합을 공유합니다. 해당 집합의 각 규칙은 공유된 입력 클레임 집합에 추가하여 집합에 있는 모든 후속 규칙에 영향을 줄 수 있습니다.

2단계 - 실행

이 단계의 클레임 규칙 프로세스에서 클레임 규칙은 클레임 엔진이 시간순으로 특정 규칙 집합 내의 모든 규칙을 단계별로 한 번에 하나씩 실행할 때 처리됩니다. 규칙 집합 내의 각 규칙은 한 번만 실행되며 AD FS 관리 스냅인의 클레임 규칙 편집 대화 상자에 표시된 대로 위에서 아래로 표시되는 순서대로 실행됩니다. 규칙 집합의 맨 위에 있는 클레임 규칙이 먼저 처리된 다음 모든 규칙이 실행될 때까지 그다음 후속 규칙이 처리됩니다.

클레임 규칙 언어에서 정의된 대로 클레임 규칙은 조건 문과 발급 문의 두 부분으로 구성되어 있습니다. 클레임 엔진은 먼저 입력 클레임 집합의 데이터를 사용하여 규칙 내에 지정된 조건이 입력 클레임 집합에 포함된 클레임에 대해 true인지 여부를 확인하여 조건 부분을 처리합니다(규칙의 조건과 일치하는 클레임을 일치하는 클레임이라고 함). 일치 클레임이 있으면 클레임 엔진이 일치 클레임의 각 집합에 대해 규칙의 발급 문을 실행합니다. 규칙의 발급 문은 일치 클레임에서 다음 작업 중 하나를 수행할 수 있습니다.

  1. 일치 클레임을 출력 클레임 집합으로 복사합니다.

  2. 클레임 필드를 변환하고 입력 클레임 집합에만 또는 평가 및 출력 클레임 집합 둘 다에 새 클레임을 만듭니다.

  3. 일치 클레임을 특성 저장소에서 더 많은 정보를 조회하는 키로 사용하여 입력 클레임 집합에만 또는 입력 및 출력 클레임 집합 둘 다에 새 클레임을 만듭니다.

규칙 집합의 출력 클레임 집합에 클레임 추가

출력 클레임 집합은 처음에는 비어있는 메모리 내의 위치이며 클레임 엔진이 실행 프로세스 완료 후 출력 클레임 집합에 있는 클레임만 반환하기 때문에 중요합니다. 이는 출력 클레임 집합이 아닌 입력 클레임 집합에만 있는 모든 클레임은 나가는 클레임의 최종 집합을 계산할 때가 되면 무시된다는 의미입니다.

규칙 집합의 두 클레임 집합에 클레임 추가

규칙이 처리되면 클레임이 입력 클레임 집합에 추가되거나 규칙의 발급 문에 사용되는 문을 기반으로 입력 클레임 집합 및 출력 클레임 집합에 모두 추가됩니다. 클레임 규칙 언어는 이러한 문을 추가 또는 발급으로 나타냅니다.

추가 문이 사용된 경우 클레임은 입력 클레임 집합에만 추가되고 클레임은 실행 목적으로만 존재하며 실행이 완료되면 없어집니다. 발급 문이 사용되면 클레임이 입력 클레임 집합과 출력 클레임 집합 둘 다에 추가되고 해당 클레임은 실행이 완료되면 출력 클레임 집합에서 반환됩니다. 이러한 문에 대 한 자세한 내용은 참조 클레임 규칙 언어의 역할합니다.

규칙 집합 내 규칙의 조건 부분이 입력 클레임 집합의 어떤 클레임과도 일치하지 않는 경우 규칙의 발급 문 부분은 무시되고 따라서 클레임은 출력 클레임 집합 또는 입력 클레임 집합 어느 쪽에도 추가되지 않습니다. 다음 일러스트레이션 및 해당 단계는 클레임 엔진이 변환 규칙을 실행할 때 발생하는 일을 보여 줍니다.

Illustration that shows what happens when the claims engine executes a transform rule.

  1. 들어오는 클레임이 클레임 엔진에 의해 입력 클레임 집합에 추가됩니다.

  2. 첫 번째 규칙을 실행하는 경우 그 순간 입력 클레임 집합의 유일한 클레임인 A 및 B 클레임이 표시되고 규칙 1에 있는 규칙 논리의 조건 부분을 처리합니다.

  3. A 클레임이 입력 클레임 집합에 있으므로 규칙의 조건이 true로 확인(클레임 A와 일치)되고 새로운 C 클레임이 입력 클레임 집합과 출력 클레임 집합 둘 다에 추가됩니다.

  4. 이제 규칙 2는 A, B 및 C 클레임(입력 클레임 집합의 모든 클레임)을 논리를 처리하기 위한 입력으로 사용할 수 있습니다.

클레임 변환에 대 한 자세한 내용은 참조 클레임 변환 규칙을 사용 하는 경우합니다.

3단계 - 실행 결과

모든 규칙이 지정된 규칙 집합 내에서 실행되고 최종 클레임 집합이 출력 클레임 집합에 있으면 클레임 규칙 집합 실행의 최종 스테이지가 시작됩니다. 이 시점에서 클레임 엔진은 출력 클레임 집합의 컨텍스트를 규칙 집합 실행의 출력으로 반환합니다. 이 시점부터는 클레임 파이프라인이 맡아서 이 최종 출력을 프로세스의 다음 스테이지로 이동합니다.

클레임 파이프라인에 실행 출력 전송

클레임 엔진이 규칙 집합을 처리하는 경우 해당 규칙 집합은 해당 입력 및 출력 클레임 집합을 위해 메모리 내에 고유한 전용 위치가 있습니다. 이것은 하나의 규칙 집합에서 사용되는 입력 및 출력 클레임 집합이 다른 규칙 집합에서 사용되는 입력 및 출력 클레임 집합과는 별개임을 의미합니다.

주어진 규칙 집합에 대해 전체 프로세스(1, 2, 3단계)가 실행된 후 새로 발급된 나가는 클레임(출력 클레임 집합의 콘텐츠)은 클레임 파이프라인에서 다음 규칙 집합에 대한 입력으로 사용됩니다. 이를 통해 다음 일러스트레이션과 같이 클레임이 하나의 규칙 집합의 출력에서 다른 규칙 집합의 입력으로 흘러 갈 수 있습니다.

AD FS roles

참고 항목

발급 규칙 집합 또한 파이프라인에서 중요한 스테이지지만 위 일러스트레이션에서는 일러스트레이션을 단순화시키기 위한 목적에서 표시하지 않았습니다. 참조는 발급 규칙 집합과 클레임 파이프라인에 어떻게 부합 하는지 보여 주는 예시의 경우 클레임 파이프라인의 역할합니다.

이 경우 승인 규칙의 출력은 파이프라인에서 사용되어 승인 규칙에서 생성된 클레임의 최종 집합을 파이프라인의 두 번째 스테이지로 흐르게 하는데 이것이 권한 부여 규칙의 처리입니다. 이 시점에서 권한 부여 규칙 집합에 대해 전체 클레임 규칙 실행 프로세스(위의 1, 2, 3단계)가 다시 실행됩니다. 이 주기는 발급 규칙 집합(파이프라인의 최종 스테이지)이 완료될 때까지 계속됩니다.

마무리된 나가는 클레임이 발급 규칙 집합에 대해 엔진에서 반환되면 SAML 토큰 패키지에 포함되고 페더레이션 서비스가 해당 토큰을 클라이언트에게 다시 전송합니다.

권한 부여 규칙 처리

클레임 규칙 실행 프로세스의 2단계 중에 실행되는 클레임 규칙 집합이 권한 부여 규칙(승인 또는 발급 규칙과 다른 입력 및 출력 클레임 집합이 있음)으로 구성된 경우 해당 권한 부여 규칙이 실행되어 토큰 요청자가 요청자의 클레임에 따라 페더레이션 서비스에서 지정된 신뢰 당사자에 대한 보안 토큰을 가져올 권한이 있는지 여부를 확인합니다.

권한 부여 규칙의 목표는 사용자가 지정된 신뢰 당사자에 대한 토큰을 얻을 수 있는지에 따라 허용 또는 거부 클레임을 발급하는 것입니다. 다음 일러스트레이션에 표시된 대로 권한 부여 실행의 출력은 발급 규칙 집합이 실행될지 여부(허용 및/또는 거부 클레임의 유무에 따라)를 결정하기 위해 파이프라인에서 사용되지만 권한 부여 실행 출력 자체가 클레임 규칙 집합에 입력으로 사용되지는 않습니다.

Illustration that shows the output of the authorization execution is used by the pipeline to determine whether the issuance rule set is executed or not.

클레임 권한 부여에 대한 자세한 내용은 When to Use an Authorization Claim Rule를 참조하세요.