조건부 액세스 제어를 사용하여 위험 관리
주요 개념 - AD FS의 조건부 액세스 제어
AD FS의 전반적인 기능은 클레임 집합이 포함된 액세스 토큰을 발급하는 것입니다. AD FS 수락 하 고 실행 한 다음 클레임에 대 한 결정은 클레임 규칙에 따라 적용 됩니다.
ADFS의 액세스 제어는 사용자 또는 사용자 그룹의 ADFS 보안 리소스 액세스 허용 여부를 결정하는 허가 또는 거부 클레임을 발급하는 데 사용되는 발급 권한 부여 클레임 규칙으로 구현됩니다. 권한 부여 규칙은 신뢰 당사자 트러스트에만 설정할 수 있습니다.
규칙 옵션 | 규칙 논리 |
---|---|
모든 사용자 허용 | 들어오는 클레임 유형이 임의의 클레임 유형이고 값이 임의의 값이면 값이 있는 클레임 발급이 허용됩니다. |
이 들어오는 클레임의 사용자에 대한 액세스 허용 | 들어오는 클레임 유형이 지정된 클레임 유형이고 값이 지정된 값이면 값이 있는 클레임 발급이 허용됩니다. |
이 들어오는 클레임의 사용자에 대한 액세스 거부 | 들어오는 클레임 유형이 지정된 클레임 유형이고 값이 지정된 값이면 값이 있는 클레임 발급이 거부됩니다. |
이러한 규칙 옵션과 논리에 대한 자세한 내용은 When to Use an Authorization Claim Rule를 참조하세요.
Windows Server 2012 R2의 ADFS에서는 사용자, 디바이스, 위치 및 인증 데이터를 비롯한 여러 요소를 사용하여 액세스 제어가 향상되었습니다. 이는 권한 부여 클레임 규칙에 다양한 클레임 유형을 사용할 수 있기 때문입니다. 즉, Windows Server 2012 R2의 ADFS에서는 사용자 ID 또는 그룹 구성원 자격, 네트워크 위치, 디바이스(워크플레이스 가입 여부, 자세한 내용은 회사 애플리케이션에서 SSO 및 원활한 2단계 인증을 위해 모든 디바이스에서 워크플레이스에 가입하기 참조) 및 인증 상태(멀티팩터 인증(MFA) 수행 여부)를 기반으로 조건부 액세스 제어를 적용할 수 있습니다.
Windows Server 2012 R2의 ADFS에서 조건부 액세스 제어는 다음과 같은 이점을 제공합니다:
사용자, 디바이스, 네트워크 위치 및 인증 상태에 따라 액세스를 허용하거나 거부할 수 있는 유연하고 명확한 애플리케이션별 권한 부여 규칙
신뢰 당사자 애플리케이션에 대한 발급 권한 부여 규칙 만들기
일반적인 조건부 액세스 제어 시나리오에 사용되는 다양한 기능의 UI 환경
고급 조건부 액세스 제어 시나리오를 위한 Rich 클레임 언어 & Windows PowerShell 지원
사용자 지정(신뢰 당사자 애플리케이션별) '액세스 거부' 메시지. 자세한 내용은 Customizing the AD FS Sign-in Pages를 참조하세요. 이러한 메시지를 사용자 지정할 수 있으면 사용자의 액세스가 거부된 이유를 설명할 수 있으며, 가능한 경우 디바이스를 작업 공간에 연결하라는 메시지를 표시하는 등의 방법으로 셀프 서비스 업데이트 관리를 지원할 수도 있습니다. 자세한 내용은 참조 SSO 및 원활한 두 번째 단계 인증에서 회사 애플리케이션에 대 한 모든 디바이스에서 작업 공간 가입합니다.
다음 표에는 조건부 액세스 제어를 구현하는 데 사용할 수 있는 Windows Server 2012 R2의 ADFS에서 사용할 수 있는 모든 클레임 유형이 나와 있습니다.
클레임 유형 | 설명 |
---|---|
이메일 주소 | 사용자의 전자 메일 주소입니다. |
이름 | 사용자의 지정된 이름입니다. |
속성 | 사용자의 고유한 이름입니다. |
UPN | 사용자의 UPN(사용자 계정 이름)입니다. |
일반 이름 | 사용자의 일반 이름입니다. |
AD FS 1 x 메일 주소 | AD FS 1.1 또는 AD FS 1.0과 상호 운용할 때 사용되는 사용자의 메일 주소입니다. |
그룹 | 사용자가 구성원으로 속해 있는 그룹입니다. |
AD FS 1 x UPN | AD FS 1.1 또는 AD FS 1.0과 상호 운용할 때 사용되는 사용자의 UPN입니다. |
역할 | 사용자의 역할입니다. |
Surname | 사용자의 성입니다. |
PPID | 사용자의 개인 식별자입니다. |
이름 ID | 사용자의 SAML 이름 식별자입니다. |
인증 타임스탬프 | 사용자가 인증된 시간 및 날짜를 표시하는 데 사용됩니다. |
인증 방법 | 사용자를 인증하는 데 사용되는 방법입니다. |
거부 전용 그룹 SID | 사용자의 거부 전용 그룹 SID입니다. |
거부 전용 주 SID | 사용자의 거부 전용 주 SID입니다. |
거부 전용 주 그룹 SID | 사용자의 거부 전용 주 그룹 SID입니다. |
그룹 SID | 사용자의 그룹 SID입니다. |
주 그룹 SID | 사용자의 주 그룹 SID입니다. |
주 SID | 사용자의 주 SID입니다. |
Windows 계정 이름 | 도메인\사용자 형식으로 된 사용자의 도메인 계정 이름입니다. |
등록된 사용자 | 사용자가 이 디바이스를 사용하도록 등록되어 있습니다. |
디바이스 식별자 | 디바이스의 식별자입니다. |
디바이스 등록 식별자 | 디바이스 등록 식별자입니다. |
디바이스 등록 표시 이름 | 디바이스 등록 표시 이름입니다. |
디바이스 OS 유형 | 디바이스의 운영 체제 유형입니다. |
디바이스 OS 버전 | 디바이스의 운영 체제 버전입니다. |
관리되는 디바이스 | 디바이스가 관리 서비스를 통해 관리됩니다. |
전달된 클라이언트 IP | 사용자의 IP 주소입니다. |
클라이언트 애플리케이션 | 클라이언트 애플리케이션의 유형입니다. |
클라이언트 사용자 에이전트 | 클라이언트에서 애플리케이션에 액세스하는 데 사용하는 디바이스 유형입니다. |
클라이언트 IP | 클라이언트의 IP 주소입니다. |
엔드포인트 경로 | 활성 클라이언트와 수동 클라이언트를 확인하는 데 사용할 수 있는 엔드포인트의 절대 경로입니다. |
프록시 | 요청을 전달한 페더레이션 서버 프록시의 DNS 이름입니다. |
애플리케이션 식별자 | 신뢰 당사자의 식별자입니다. |
애플리케이션 정책 | 인증서의 애플리케이션 정책입니다. |
기관 키 식별자 | 발급된 인증서를 서명한 인증서의 기관 키 식별자 확장입니다. |
기본 제한 | 인증서의 기본 제한 중 하나입니다. |
확장된 키 사용량 | 인증서의 확장된 키 사용 중 하나를 설명합니다. |
Issuer | X.509 인증서를 발급한 인증 기관의 이름입니다. |
발급자 이름 | 인증서 발급자의 고유 이름입니다. |
키 사용량 | 인증서의 키 사용 중 하나입니다. |
다음 날짜까지 | 이 날짜(현지 시간) 이후에는 인증서가 더 이상 유효하지 않습니다. |
다음 날짜부터 | 이 날짜(현지 시간)부터 인증서가 유효합니다. |
인증서 정책 | 인증서가 발급된 정책입니다. |
공개 키 | 인증서의 공개 키입니다. |
인증서 원시 데이터 | 인증서의 원시 데이터입니다. |
주체 대체 이름 | 인증서의 대체 이름 중 하나입니다. |
일련 번호 | 인증서의 일련 번호입니다. |
서명 알고리즘 | 인증서의 서명을 만드는 데 사용된 알고리즘입니다. |
주제 | 인증서의 주체입니다. |
주체 키 식별자 | 인증서의 주체 키 식별자입니다. |
주체 이름 | 인증서의 주체 고유 이름입니다. |
V2 템플릿 이름 | 인증서를 발급하거나 갱신할 때 사용된 버전 2 인증서 템플릿의 이름입니다. 이는 Microsoft의 특정 값입니다. |
V1 템플릿 이름 | 인증서를 발급하거나 갱신할 때 사용된 버전 1 인증서 템플릿의 이름입니다. 이는 Microsoft의 특정 값입니다. |
Thumbprint | 인증서의 지문입니다. |
X 509 버전 | 인증서의 X.509 형식 버전입니다. |
회사 네트워크 내부 | 요청이 회사 네트워크 내부에서 시작된 경우를 나타내는 데 사용됩니다. |
암호 만료 시간 | 암호가 만료되는 시간을 표시하는 데 사용됩니다. |
암호 만료 일 수 | 암호 만료 일 수를 표시하는 데 사용됩니다. |
암호 URL 업데이트 | 업데이트 암호 서비스의 웹 주소를 표시하는 데 사용됩니다. |
인증 방법 참조 | 사용자를 인증하는 데 사용되는 모든 인증 방법을 나타내는 데 사용됩니다. |
조건부 액세스 제어를 사용한 위험 관리
사용 가능한 설정을 통해 조건부 액세스 제어를 구현하여 위험을 관리할 수 있는 여러 가지 방법이 있습니다.
일반적인 시나리오
예를 들어 특정 애플리케이션에 대한 사용자의 그룹 멤버십 데이터를 기반으로 조건부 액세스 제어를 구현하는 간단한 시나리오(신뢰 당사자 트러스트)를 상상해 보세요. 즉, 페더레이션 서버에 발급 권한 부여 규칙을 설정하여 AD 도메인의 특정 그룹에 속하는 사용자가 ADFS로 보호되는 특정 응용 프로그램에 액세스할 수 있도록 허용할 수 있습니다. 이 시나리오를 구현하는 방법에 대한 자세한 단계별 지침(UI 및 Windows PowerShell 사용)은 Walkthrough Guide: Manage Risk with Conditional Access Control에서 다룹니다. 이 연습의 단계를 완료하려면 실습 환경을 설정하고 Windows Server 2012 R2에서 ADFS의 실습 환경 설정의 단계를 따라야 합니다.
고급 시나리오
Windows Server 2012 R2의 ADFS에서 조건부 액세스 제어를 구현하는 다른 예는 다음과 같습니다:
이 사용자의 ID가 MFA로 유효성이 확인된 경우에만 ADFS로 보호되는 애플리케이션에 대한 액세스를 허용합니다.
다음 코드를 사용할 수 있습니다.
@RuleTemplate = "Authorization" @RuleName = "PermitAccessWithMFA" c:[Type == "https://schemas.microsoft.com/claims/authnmethodsreferences", Value =~ "^(?i)https://schemas\.microsoft\.com/claims/multipleauthn$"] => issue(Type = "https://schemas.microsoft.com/authorization/claims/permit", Value = "PermitUsersWithClaim");
사용자에게 등록된 직장 가입 장치에서 액세스 요청이 들어오는 경우에만 ADFS로 보호되는 애플리케이션에 대한 액세스를 허용합니다.
다음 코드를 사용할 수 있습니다.
@RuleTemplate = "Authorization" @RuleName = "PermitAccessFromRegisteredWorkplaceJoinedDevice" c:[Type == "https://schemas.microsoft.com/2012/01/devicecontext/claims/isregistereduser", Value =~ "^(?i)true$"] => issue(Type = "https://schemas.microsoft.com/authorization/claims/permit", Value = "PermitUsersWithClaim");
액세스 요청이 MFA로 신원이 확인된 사용자에게 등록된 직장 가입 장치에서 오는 경우에만 ADFS로 보호되는 애플리케이션에 대한 액세스를 허용합니다.
다음 코드를 사용할 수 있습니다.
@RuleTemplate = "Authorization" @RuleName = "RequireMFAOnRegisteredWorkplaceJoinedDevice" c1:[Type == "https://schemas.microsoft.com/claims/authnmethodsreferences", Value =~ "^(?i)http://schemas\.microsoft\.com/claims/multipleauthn$"] && c2:[Type == "https://schemas.microsoft.com/2012/01/devicecontext/claims/isregistereduser", Value =~ "^(?i)true$"] => issue(Type = "https://schemas.microsoft.com/authorization/claims/permit", Value = "PermitUsersWithClaim");
액세스 요청이 MFA로 신원이 확인된 사용자로부터 오는 경우에만 ADFS로 보호되는 애플리케이션에 대한 엑스트라넷 액세스를 허용합니다.
다음 코드를 사용할 수 있습니다.
@RuleTemplate = "Authorization" @RuleName = "RequireMFAForExtranetAccess" c1:[Type == "https://schemas.microsoft.com/claims/authnmethodsreferences", Value =~ "^(?i)http://schemas\.microsoft\.com/claims/multipleauthn$"] && c2:[Type == "https://schemas.microsoft.com/ws/2012/01/insidecorporatenetwork", Value =~ "^(?i)false$"] => issue(Type = "https://schemas.microsoft.com/authorization/claims/permit", Value = "PermitUsersWithClaim");
참고 항목
워크스루 가이드: 조건부 액세스 제어로 위험 관리 Windows Server 2012 R2에서 ADFS를 위한 실습 환경 설정