다음을 통해 공유


AD FS 문제 해결 - 클레임 규칙 구문

클레임은 한 주체가 자신 또는 다른 주제에 대해 만드는 문입니다. 클레임은 신뢰 당사자가 발급하고 하나 이상의 값을 부여한 다음 AD FS 서버에서 발급한 보안 토큰에 패키지됩니다. 이 문서에서는 클레임 구문 및 만들기를 다룹니다. 클레임 발급에 대한 자세한 내용은 AD FS 문제 해결 - 클레임 발급을 참조하세요.

참고 항목

AD FS 도움말 사이트에서 ClaimsXRay를 사용하여 클레임 문제 해결을 지원할 수 있습니다.

클레임 규칙을 처리하는 방법

클레임 규칙은 클레임 엔진을 사용하여 클레임 파이프라인을 통해 처리합니다. 클레임 엔진은 사용자로부터의 들어오는 클레임 집합을 검사하고 각 규칙의 논리를 기준으로 클레임의 출력 집합을 생성하는 페더레이션 서비스의 논리적 구성 요소입니다.

클레임 규칙을 만드는 방법

클레임 규칙은 페더레이션 서비스 내의 각 페더레이션된 트러스트 관계에 대해 별도로 생성되며 여러 트러스트 간에 공유되지 않습니다. 규칙은 클레임 규칙 템플릿에서 만들거나 클레임 규칙 언어를 사용하여 처음부터 규칙을 작성하거나 Windows PowerShell에서 규칙을 사용자 지정할 수 있습니다.

클레임 규칙 언어의 구성 요소 이해

클레임 규칙 언어는 다음 구성 요소로 구성되며, “ =>” 연산자로 구분됩니다.

  • 조건: 입력 클레임을 확인하고 규칙의 발급 문을 실행할지 결정할 수 있습니다. 규칙 본문 부분을 실행할 때 true로 평가되어야 하는 논리 식을 나타냅니다.

  • 발급 문

예시:

c:[type == "Name", value == "domain user"] => issue(type = "Role", value = "employee");

이 클레임은 다음과 같습니다.

  • 조건 - c:[type == "Name", value == "domain user"] - Windows 계정 이름이 도메인 사용자인지 여부에 대한 입력 클레임을 평가합니다.
  • 발급 - issue(type = "Role", value = "employee") - 조건이 true이면 직원의 역할로 입력 클레임에 새 클레임을 추가합니다.

클레임 및 구문에 대한 자세한 내용은 클레임 규칙 언어의 역할을 참조하세요.

클레임 규칙 편집기

클레임을 완료하고 확인을 선택하면 클레임 규칙 편집기에서 구문 검사를 수행합니다. 따라서 잘못된 구문이 있는 경우 편집기에서 알 수 있습니다.

사용자 지정 클레임 규칙 구문이 유효하지 않다는 메시지를 보여 주는 A D F S 관리 대화 상자의 스크린샷

이벤트 로그

로그를 사용하여 클레임 문제를 해결하려고 할 때 가장 좋은 방법은 클레임 출력을 찾는 것입니다. 이벤트 로그에서 1000 및 1001 이벤트를 찾을 수 있습니다.

1000 이벤트 ID의 결과를 보여 주는 이벤트 속성 대화 상자의 스크린샷

샘플 애플리케이션 만들기

클레임을 에코하는 샘플 애플리케이션을 만들 수도 있습니다. 예를 들어 샘플 애플리케이션을 사용하고 문제를 해결하려는 클레임이 동일한 신뢰 당사자를 만들고 앱에서 해당 클레임에 관한 문제가 있는지 확인할 수 있습니다.

브라우저에 표시된 샘플 응용 프로그램의 스크린샷

좋은 샘플 웹앱은 여기에서 사용할 수 있습니다. 이 앱은 신뢰 당사자로부터 받은 클레임을 다시 에코합니다. 이를 사용하려면 다음을 통해 web.config 앱을 편집해야 합니다.

  • https://app1.contoso.com/sampapp을(를) 샘플 앱 호스팅에 사용할 URL로 변경합니다.
  • AD FS 페더레이션 서버를 가리키도록 sts.contoso.com 모든 인스턴스를 변경합니다.
  • 지문을 사용자의 지문으로 변경합니다.
  • 시나리오에 decryptionKey 적합한 값으로 대체 validationKey 합니다.

web config 파일을 보여 주는 Visual Studio Code 스크린샷

다음 블로그 문서에는 이를 설정하기 위한 훌륭한 심층적 지침이 있습니다.

다음 단계