Share via


AD FS 2.0의 클라이언트 액세스 제어 정책

Active Directory Federation Services 2.0의 클라이언트 액세스 정책을 사용하면 리소스에 대한 액세스 권한을 제한하거나 사용자에게 부여할 수 있습니다. 이 문서에서는 AD FS 2.0에서 클라이언트 액세스 정책을 사용하도록 설정하는 방법과 가장 일반적인 시나리오를 구성하는 방법을 설명합니다.

AD FS 2.0에서 클라이언트 액세스 정책 사용

클라이언트 액세스 정책을 사용하도록 설정하려면 아래 단계를 수행합니다.

1단계: AD FS 서버에 AD FS 2.0 패키지용 업데이트 롤업 2 설치

AD FS(Active Directory Federation Services) 2.0 패키지용 업데이트 롤업 2를 다운로드하고 모든 페더레이션 서버 및 페더레이션 서버 프록시에 설치합니다.

2단계: Active Directory 클레임 공급자 트러스트에 5개의 클레임 규칙 추가

업데이트 롤업 2가 모든 AD FS 서버 및 프록시에 설치되면 다음 절차를 사용하여 정책 엔진에서 새 클레임 유형을 사용할 수 있도록 하는 클레임 규칙 집합을 추가합니다.

이렇게 하려면 다음 절차를 사용하여 각 새 요청 컨텍스트 클레임 유형에 대해 5개의 수락 변환 규칙을 추가합니다.

Active Directory 클레임 공급자 트러스트에서 각 새 요청 컨텍스트 클레임 유형을 통과하는 새 수락 변환 규칙을 만듭니다.

다섯 가지 컨텍스트 클레임 유형 각각에 대한 Active Directory 클레임 공급자 트러스트에 클레임 규칙을 추가하려면 다음을 수행합니다.

  1. 시작을 클릭하고 프로그램을 가리키고 관리영구 도구를 가리킨 다음 AD FS 2.0 관리를 클릭합니다.

  2. 콘솔 트리의 AD FS 2.0\Trust 관계 아래에서 클레임 공급자 트러스트를 클릭하고 Active Directory를 마우스 오른쪽 단추로 클릭한 다음 클레임 규칙 편집을 클릭합니다.

  3. 클레임 규칙 편집 대화 상자에서 수락 변환 규칙 탭을 선택한 다음 규칙 추가를 클릭하여 규칙 마법사를 시작합니다.

  4. 에 규칙 템플릿 선택 페이지의 클레임 규칙 템플릿, 선택, 통과 또는 들어오는 클레임 필터링 클릭 한 다음 확인 하 고 목록에서 다음합니다.

  5. 규칙 구성 페이지의 클레임 규칙 이름 아래에 이 규칙의 표시 이름을 입력합니다. 들어오는 클레임 유형에서 다음 클레임 유형 URL을 입력한 다음 모든 클레임 값 통과를 선택합니다.
    https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-forwarded-client-ip

  6. 규칙을 확인하려면 목록에서 규칙을 선택하고 규칙 편집을 클릭한 다음 규칙 언어 보기를 클릭합니다. 클레임 규칙 언어는 다음과 같이 표시됩니다. c:[Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-forwarded-client-ip"] => issue(claim = c);

  7. Finish를 클릭합니다.

  8. 클레임 규칙 편집 대화 상자에서 확인을 클릭하여 규칙을 저장합니다.

  9. 2~6단계를 반복하여 각 클레임에 대한 추가 클레임 규칙을 만듭니다기본 5개의 규칙이 모두 생성될 때까지 아래에 표시된 4개의 클레임 유형을 만듭니다.

    https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-application

    https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-user-agent

    https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-proxy

    https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-endpoint-absolute-path

3단계: Microsoft Office 365 ID 플랫폼 신뢰 당사자 트러스트 업데이트

아래 예제 시나리오 중 하나를 선택하여 조직의 요구 사항을 가장 잘 충족하는 Microsoft Office 365 ID 플랫폼 신뢰 당사자 트러스트에서 클레임 규칙을 구성합니다.

AD FS 2.0에 대한 클라이언트 액세스 정책 시나리오

다음 섹션에서는 AD FS 2.0에 대해 존재하는 시나리오를 설명합니다.

시나리오 1: Office 365에 대한 모든 외부 액세스 차단

이 클라이언트 액세스 정책 시나리오는 모든 내부 클라이언트에서 액세스를 허용하고 외부 클라이언트의 IP 주소를 기반으로 모든 외부 클라이언트를 차단합니다. 규칙 집합은 기본 발급 권한 부여 규칙에서 모든 사용자에 대한 액세스를 허용합니다. 다음 절차를 사용하여 Office 365 신뢰 당사자 트러스트에 발급 권한 부여 규칙을 추가할 수 있습니다.

Office 365에 대한 모든 외부 액세스를 차단하는 규칙을 만들려면

  1. 시작을 클릭하고 프로그램을 가리키고 관리영구 도구를 가리킨 다음 AD FS 2.0 관리를 클릭합니다.
  2. 콘솔 트리의 AD FS 2.0\Trust 관계 아래에서 신뢰 당사자 트러스트를 클릭하고 Microsoft Office 365 ID 플랫폼 트러스트를 마우스 오른쪽 단추로 클릭한 다음 클레임 규칙 편집을 클릭합니다.
  3. 클레임 규칙 편집 대화 상자에서 발급 권한 부여 규칙 탭을 선택한 다음 규칙 추가를 클릭하여 클레임 규칙 마법사를 시작합니다.
  4. 규칙 템플릿 선택 페이지의 클레임 규칙 템플릿에서 사용자 지정 규칙을 사용하여 클레임 보내기를 선택하고 다음을 클릭합니다.
  5. 에 규칙 구성 페이지의 클레임 규칙 이름, 이 규칙에 대 한 표시 이름을 입력 합니다. 사용자 지정 규칙에서 다음 클레임 규칙 언어 구문을 입력하거나 붙여넣습니다. exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-proxy"]) && NOT exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-forwarded-client-ip", Value=~"customer-provided public ip address regex"]) => issue(Type = "https://schemas.microsoft.com/authorization/claims/deny", Value = "true");
  6. Finish를 클릭합니다. 발급 권한 부여 규칙 목록의 모든 사용자에 대한 액세스 허용 규칙 바로 아래에 새 규칙이 표시되는지 확인합니다.
  7. 규칙을 저장하려면 클레임 규칙 편집 대화 상자에서 확인을 클릭합니다.

참고 항목

"공용 IP 주소 regex"에 대해 위의 값을 유효한 IP 식으로 바꿔야 합니다. 자세한 내용은 IP 주소 범위 식 빌드를 참조하세요.

시나리오 2: Exchange ActiveSync를 제외한 Office 365에 대한 모든 외부 액세스 차단

다음 예제에서는 Outlook을 비롯한 내부 클라이언트에서 Exchange Online을 비롯한 모든 Office 365 애플리케이션에 액세스할 수 있습니다. 스마트폰과 같은 Exchange ActiveSync 클라이언트를 제외하고 클라이언트 IP 주소로 표시된 대로 회사 네트워크 외부에 있는 클라이언트의 액세스를 차단합니다. 규칙 집합은 모든 사용자에 대한 액세스 허용이라는 기본 발급 권한 부여 규칙을 기반으로 합니다. 다음 단계를 사용하여 클레임 규칙 마법사를 사용하여 Office 365 신뢰 당사자 트러스트에 발급 권한 부여 규칙을 추가합니다.

Office 365에 대한 모든 외부 액세스를 차단하는 규칙을 만들려면

  1. 시작을 클릭하고 프로그램을 가리키고 관리영구 도구를 가리킨 다음 AD FS 2.0 관리를 클릭합니다.
  2. 콘솔 트리의 AD FS 2.0\Trust 관계 아래에서 신뢰 당사자 트러스트를 클릭하고 Microsoft Office 365 ID 플랫폼 트러스트를 마우스 오른쪽 단추로 클릭한 다음 클레임 규칙 편집을 클릭합니다.
  3. 클레임 규칙 편집 대화 상자에서 발급 권한 부여 규칙 탭을 선택한 다음 규칙 추가를 클릭하여 클레임 규칙 마법사를 시작합니다.
  4. 규칙 템플릿 선택 페이지의 클레임 규칙 템플릿에서 사용자 지정 규칙을 사용하여 클레임 보내기를 선택하고 다음을 클릭합니다.
  5. 에 규칙 구성 페이지의 클레임 규칙 이름, 이 규칙에 대 한 표시 이름을 입력 합니다. 사용자 지정 규칙에서 다음 클레임 규칙 언어 구문을 입력하거나 붙여넣습니다. exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-proxy"]) && NOT exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-application", Value=="Microsoft.Exchange.Autodiscover"]) && NOT exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-application", Value=="Microsoft.Exchange.ActiveSync"]) && NOT exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-forwarded-client-ip", Value=~"customer-provided public ip address regex"]) => issue(Type = "https://schemas.microsoft.com/authorization/claims/deny", Value = "true");
  6. Finish를 클릭합니다. 발급 권한 부여 규칙 목록의 모든 사용자에 대한 액세스 허용 규칙 바로 아래에 새 규칙이 표시되는지 확인합니다.
  7. 규칙을 저장하려면 클레임 규칙 편집 대화 상자에서 확인을 클릭합니다.

참고 항목

"공용 IP 주소 regex"에 대해 위의 값을 유효한 IP 식으로 바꿔야 합니다. 자세한 내용은 IP 주소 범위 식 빌드를 참조하세요.

시나리오 3: 브라우저 기반 애플리케이션을 제외한 Office 365에 대한 모든 외부 액세스 차단

규칙 집합은 모든 사용자에 대한 액세스 허용이라는 기본 발급 권한 부여 규칙을 기반으로 합니다. 다음 단계를 사용하여 클레임 규칙 마법사를 사용하여 Microsoft Office 365 ID 플랫폼 신뢰 당사자 트러스트에 발급 권한 부여 규칙을 추가합니다.

참고 항목

이 시나리오는 수동(웹 기반) 요청이 있는 클라이언트 액세스 정책 헤더에 대한 제한 사항 때문에 타사 프록시에서 지원되지 않습니다.

브라우저 기반 애플리케이션을 제외한 Office 365에 대한 모든 외부 액세스를 차단하는 규칙을 만들려면

  1. 시작을 클릭하고 프로그램을 가리키고 관리영구 도구를 가리킨 다음 AD FS 2.0 관리를 클릭합니다.
  2. 콘솔 트리의 AD FS 2.0\Trust 관계 아래에서 신뢰 당사자 트러스트를 클릭하고 Microsoft Office 365 ID 플랫폼 트러스트를 마우스 오른쪽 단추로 클릭한 다음 클레임 규칙 편집을 클릭합니다.
  3. 클레임 규칙 편집 대화 상자에서 발급 권한 부여 규칙 탭을 선택한 다음 규칙 추가를 클릭하여 클레임 규칙 마법사를 시작합니다.
  4. 규칙 템플릿 선택 페이지의 클레임 규칙 템플릿에서 사용자 지정 규칙을 사용하여 클레임 보내기를 선택하고 다음을 클릭합니다.
  5. 에 규칙 구성 페이지의 클레임 규칙 이름, 이 규칙에 대 한 표시 이름을 입력 합니다. 사용자 지정 규칙에서 다음 클레임 규칙 언어 구문을 입력하거나 붙여넣습니다. exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-proxy"]) && NOT exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-forwarded-client-ip", Value=~"customer-provided public ip address regex"]) && NOT exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-endpoint-absolute-path", Value == "/adfs/ls/"]) => issue(Type = "https://schemas.microsoft.com/authorization/claims/deny", Value = "true");
  6. Finish를 클릭합니다. 발급 권한 부여 규칙 목록의 모든 사용자에 대한 액세스 허용 규칙 바로 아래에 새 규칙이 표시되는지 확인합니다.
  7. 규칙을 저장하려면 클레임 규칙 편집 대화 상자에서 확인을 클릭합니다.

시나리오 4: 지정된 Active Directory 그룹에 대한 Office 365에 대한 모든 외부 액세스 차단

다음 예제에서는 IP 주소를 기반으로 내부 클라이언트에서 액세스할 수 있습니다. 지정된 Active Directory 그룹의 개인을 제외하고 외부 클라이언트 IP 주소가 있는 회사 네트워크 외부에 있는 클라이언트의 액세스를 차단합니다. 규칙 집합은 모든 사용자에 대한 액세스 허용이라는 기본 발급 권한 부여 규칙을 기반으로 합니다. 다음 단계를 사용하여 클레임 규칙 마법사를 사용하여 Microsoft Office 365 ID 플랫폼 신뢰 당사자 트러스트에 발급 권한 부여 규칙을 추가합니다.

지정된 Active Directory 그룹에 대한 Office 365에 대한 모든 외부 액세스를 차단하는 규칙을 만들려면

  1. 시작을 클릭하고 프로그램을 가리키고 관리영구 도구를 가리킨 다음 AD FS 2.0 관리를 클릭합니다.
  2. 콘솔 트리의 AD FS 2.0\Trust 관계 아래에서 신뢰 당사자 트러스트를 클릭하고 Microsoft Office 365 ID 플랫폼 트러스트를 마우스 오른쪽 단추로 클릭한 다음 클레임 규칙 편집을 클릭합니다.
  3. 클레임 규칙 편집 대화 상자에서 발급 권한 부여 규칙 탭을 선택한 다음 규칙 추가를 클릭하여 클레임 규칙 마법사를 시작합니다.
  4. 규칙 템플릿 선택 페이지의 클레임 규칙 템플릿에서 사용자 지정 규칙을 사용하여 클레임 보내기를 선택하고 다음을 클릭합니다.
  5. 에 규칙 구성 페이지의 클레임 규칙 이름, 이 규칙에 대 한 표시 이름을 입력 합니다. 사용자 지정 규칙에서 다음 클레임 규칙 언어 구문을 입력하거나 붙여넣습니다. exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-proxy"]) && exists([Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid", Value =~ "Group SID value of allowed AD group"]) && NOT exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-forwarded-client-ip", Value=~"customer-provided public ip address regex"]) => issue(Type = "https://schemas.microsoft.com/authorization/claims/deny", Value = "true");
  6. Finish를 클릭합니다. 발급 권한 부여 규칙 목록의 모든 사용자에 대한 액세스 허용 규칙 바로 아래에 새 규칙이 표시되는지 확인합니다.
  7. 규칙을 저장하려면 클레임 규칙 편집 대화 상자에서 확인을 클릭합니다.

위의 시나리오에서 사용되는 클레임 규칙 언어 구문에 대한 설명

설명 클레임 규칙 언어 구문
모든 사용자에 대한 액세스를 허용하는 기본 AD FS 규칙입니다. 이 규칙은 Microsoft Office 365 ID 플랫폼 신뢰 당사자 트러스트 발급 권한 부여 규칙 목록에 이미 있어야 합니다. => issue(Type = "<https://schemas.microsoft.com/authorization/claims/permit>", Value = "true");
이 절을 새 사용자 지정 규칙에 추가하면 요청이 페더레이션 서버 프록시(예: x-ms-proxy 헤더 포함)에서 온 것을 지정합니다.
모든 규칙에 이 항목이 포함되는 것이 좋습니다. exists([Type == "<https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-proxy>"])
요청이 정의된 허용 범위의 IP를 가진 클라이언트에서 온 요청임을 설정하는 데 사용됩니다. NOT exists([Type == "<https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-forwarded-client-ip>", Value=~"customer-provided public ip address regex"])
이 절은 액세스 중인 애플리케이션이 Microsoft.Exchange.ActiveSync가 아닌 경우 요청을 거부하도록 지정하는 데 사용됩니다. NOT exists([Type == "<https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-application>", Value=="Microsoft.Exchange.ActiveSync"])
이 규칙을 사용하면 호출이 웹 브라우저를 통해 수행되었는지 여부를 확인할 수 있으며 거부되지 않습니다. NOT exists([Type == "<https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-endpoint-absolute-path>", Value == "/adfs/ls/"])
이 규칙은 특정 Active Directory 그룹(SID 값 기준)의 유일한 사용자를 거부해야 한다고 명시하고 있습니다. 이 문에 NOT을 추가하면 위치에 관계없이 사용자 그룹이 허용됩니다. exists([Type == "<https://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid>", Value =~ "{Group SID value of allowed AD group}"])
이는 이전의 모든 조건이 충족될 때 거부를 발급하는 데 필요한 절입니다. => issue(Type = "<https://schemas.microsoft.com/authorization/claims/deny>", Value = "true");

IP 주소 범위 식 빌드

x-ms-forwarded-client-ip 클레임은 현재 Exchange Online에서만 설정된 HTTP 헤더에서 채워지며, 이 헤더는 AD FS에 인증 요청을 전달할 때 헤더를 채웁니다. 클레임 값은 다음 중 하나일 수 있습니다.

참고 항목

Exchange Online은 현재 IPV6 주소가 아닌 IPV4만 지원합니다.

단일 IP 주소: Exchange Online에 직접 연결된 클라이언트의 IP 주소

참고 항목

회사 네트워크에 있는 클라이언트의 IP 주소는 조직의 아웃바운드 프록시 또는 게이트웨이의 외부 인터페이스 IP 주소로 표시됩니다.

VPN 또는 DA(Microsoft DirectAccess)를 통해 회사 네트워크에 연결된 클라이언트는 VPN 또는 DA 구성에 따라 내부 회사 클라이언트 또는 외부 클라이언트로 표시될 수 있습니다.

하나 이상의 IP 주소: Exchange Online에서 연결 클라이언트의 IP 주소를 확인할 수 없는 경우 HTTP 기반 요청에 포함될 수 있고 시장에서 많은 클라이언트, 부하 분산 장치 및 프록시에서 지원되는 비표준 헤더인 x-forwarded-for 헤더의 값을 기반으로 값을 설정합니다.

참고 항목

클라이언트 IP 주소와 요청을 통과한 각 프록시의 주소를 나타내는 여러 IP 주소는 쉼표로 구분됩니다.

Exchange Online 인프라와 관련된 IP 주소는 목록에 표시되지 않습니다.

정규식

IP 주소 범위를 일치해야 하는 경우 비교를 수행하기 위해 정규식을 생성해야 합니다. 다음 일련의 단계에서는 다음 주소 범위와 일치하도록 이러한 식을 생성하는 방법에 대한 예제를 제공합니다(공용 IP 범위와 일치하도록 이러한 예제를 변경해야 합니다.)

  • 192.168.1.1 – 192.168.1.25
  • 10.0.0.1 – 10.0.0.14

첫째, 단일 IP 주소와 일치하는 기본 패턴은 다음과 같습니다. \b###.###.#.###\b

이를 확장하면 두 개의 서로 다른 IP 주소와 OR 식을 일치시킬 수 있습니다. \b#.#b|\b###b

따라서 두 주소(예: 192.168.1.1 또는 10.0.0.1)만 일치시킬 예제는 \b192.168.1.1\b|\b10.0.0.1\b입니다.

이렇게 하면 원하는 수의 주소를 입력할 수 있는 기술이 있습니다. 주소 범위가 허용되어야 하는 경우(예: 192.168.1.1 – 192.168.1.25) 일치는 문자별로 수행되어야 합니다. \b192.168.1. ([1-9]|1[0-9]|2[0-5])\b

참고 항목

IP 주소는 숫자가 아닌 문자열로 처리됩니다.

규칙은 다음과 같이 세분화됩니다. \b192.168.1.

192.168.1부터 시작하는 모든 값과 일치합니다.

다음은 마지막 소수점 이후 주소 부분에 필요한 범위와 일치합니다.

  • ([1-9] 1-9로 끝나는 주소와 일치
  • |1[0-9] 10-19로 끝나는 주소와 일치
  • |2[0-5]) 20-25로 끝나는 주소와 일치

참고 항목

IP 주소의 다른 부분 일치를 시작하지 않도록 괄호를 올바르게 배치해야 합니다.

192 블록이 일치하면 10 블록에 대해 비슷한 식을 작성할 수 있습니다. \b10.0.0. ([1-9]|1[0-4])\b

다음 식은 "192.168.1.1~25" 및 "10.0.0.1~14"의 모든 주소와 일치해야 합니다. \b192.168.1. ([1-9]|1[0-9]|2[0-5])\b|\b10.0.0. ([1-9]|1[0-4])\b

식 테스트

Regex 식은 매우 까다로울 수 있으므로 정규식 확인 도구를 사용하는 것이 좋습니다. "온라인 정규식 작성기"에 대한 인터넷 검색을 수행하는 경우 샘플 데이터에 대해 식을 사용해 볼 수 있는 몇 가지 좋은 온라인 유틸리티를 찾을 수 있습니다.

식을 테스트할 때 일치해야 하는 항목을 이해하는 것이 중요합니다. Exchange 온라인 시스템은 쉼표로 구분된 많은 IP 주소를 보낼 수 있습니다. 위에 제공된 식이 이 작업에 대해 작동합니다. 그러나 regex 식을 테스트할 때는 이를 고려해야 합니다. 예를 들어 다음 샘플 입력을 사용하여 위의 예제를 확인할 수 있습니다.

192.168.1.1, 192.168.1.2, 192.169.1.1. 192.168.12.1, 192.168.1.10, 192.168.1.25, 192.168.1.26, 192.168.1.30, 1192.168.1.20

10.0.0.1, 10.0.0.5, 10.0.0.10, 10.0.1.0, 10.0.1.1, 110.0.0.1, 10.0.0.14, 10.0.0.15, 10.0.0.10, 10,0.0.1

배포 유효성 검사

보안 감사 로그

새 요청 컨텍스트 클레임이 전송되고 AD FS 클레임 처리 파이프라인에 사용할 수 있는지 확인하려면 AD FS 서버에서 감사 로깅을 사용하도록 설정합니다. 그런 다음 표준 보안 감사 로그 항목의 클레임 값에 대한 인증 요청 및 검사 보냅니다.

AD FS 서버의 보안 로그에 감사 이벤트 로깅을 사용하도록 설정하려면 AD FS 2.0에 대한 감사 구성의 단계를 따릅니다.

이벤트 로깅

기본적으로 실패한 요청은 애플리케이션 및 서비스 로그 \ AD FS 2.0 \ 관리 아래에 있는 애플리케이션 이벤트 로그에 기록됩니다. AD FS에 대한 이벤트 로깅에 대한 자세한 내용은 AD FS 2.0 이벤트 로깅 설정을 참조하세요.

자세한 AD FS 추적 로그 구성

AD FS 추적 이벤트는 AD FS 2.0 디버그 로그에 기록됩니다. 추적을 사용하려면 AD FS 2.0에 대한 디버그 추적 구성을 참조 하세요.

추적을 사용하도록 설정한 후 다음 명령줄 구문을 사용하여 자세한 로깅 수준을 사용하도록 설정합니다. wevtutil.exe sl "AD FS 2.0 추적/디버그" /l:5

새 클레임 유형에 대한 자세한 내용은 AD FS 클레임 유형을 참조 하세요.