규칙 그룹 및 규칙

업데이트: 2015년 6월 19일

Azure에 적용합니다.

Microsoft Azure Active Directory Access Control(Access Control Service 또는 ACS라고도 함)에서 규칙 그룹은 ID 공급자에서 신뢰 당사자 애플리케이션으로 전달되는 ID 클레임을 정의하는 명명된 클레임 규칙 집합입니다. ACS에서 규칙 그룹은 신뢰 당사자 애플리케이션과 연결됩니다. 하나의 규칙 그룹을 여러 신뢰 당사자 응용 프로그램에서 사용할 수 있으며, 하나의 신뢰 당사자 응용 프로그램에서 여러 규칙 그룹을 참조할 수 있습니다.

ACS는 ID 공급자로부터 토큰 요청 또는 토큰을 받으면 신뢰 당사자 애플리케이션과 연결된 모든 규칙 그룹을 통해 실행되어 토큰의 클레임을 처리합니다. 모든 규칙 그룹은 동시에 실행되며, 각 규칙 그룹의 모든 규칙도 동시에 실행됩니다(순서는 관계없음). 실행이 완료된 후 규칙으로 인해 새 클레임이 발급되는 경우에는 신뢰 당사자 응용 프로그램과 연결된 규칙 그룹이 다시 실행됩니다. 규칙 및 규칙 그룹 실행 프로세스는 실행 프로세스가 완료된 후 또는 ACS가 10번의 실행을 완료한 후(둘 중 먼저 제공됨) 새 클레임이 발급되지 않을 때 중지됩니다.

ACS 관리 포털을 사용하거나 ACS 관리 서비스를 사용하여 프로그래밍 방식으로 규칙 그룹 및 규칙을 수동으로 만들고 편집할 수 있습니다.

ACS 관리 포털을 사용하여 규칙 구성

규칙 그룹 만들기

ACS 관리 포털에서 새 신뢰 당사자 애플리케이션의 속성을 추가하고 구성할 때 이 신뢰 당사자 애플리케이션과 연결된 규칙 그룹을 만들 수도 있습니다. 기본적으로 ACS 관리 포털의 신뢰 당사자 애플리케이션 추가 페이지에서 새 규칙 그룹 만들기 옵션이 선택되어 있기 때문입니다. 새 신뢰 당사자 응용 프로그램에 대해 기본 규칙 그룹이 만들어지도록 이 옵션을 선택한 상태로 유지하는 것이 좋습니다. (자세한 내용은 신뢰 당사자 애플리케이션의 "규칙 그룹"을 참조하세요.) ACS 관리 포털의 규칙 그룹 섹션을 사용하여 규칙 그룹을 추가할 수도 있습니다. 그런 다음 신뢰 당사자 응용 프로그램 추가 페이지를 통해 신뢰 당사자 응용 프로그램을 추가할 때 해당 응용 프로그램을 하나 이상의 기존 규칙 그룹과 연결할 수 있습니다.

규칙 생성

규칙 그룹을 만든 후 ACS 관리 포털의 규칙 그룹 편집 페이지를 사용하여 규칙을 자동으로 생성할 수 있습니다. 규칙을 자동으로 생성하도록 지정하면 규칙을 생성할 ID 공급자를 선택하라는 메시지가 표시됩니다. 규칙 그룹이 하나 이상의 신뢰 당사자 응용 프로그램에 연결되어 있으면 해당 신뢰 당사자 응용 프로그램에서 사용하는 ID 공급자가 자동으로 선택됩니다.

참고

WS-Federation ID 공급자의 경우에는 ID 공급자의 WS-Federation 메타데이터에서 제공되는 각 클레임 유형에 대해 규칙이 만들어지며, 이 규칙이 클레임 유형과 값을 통과시킵니다. 기타 ID 공급자의 경우에는 미리 결정된 클레임 유형 목록을 기반으로 통과 규칙이 생성됩니다.

규칙 보기, 추가 및 편집

ACS 관리 포털의 규칙 그룹 편집 페이지에는 테이블에 있는 모든 규칙이 표시됩니다. 열에는 규칙에 대한 출력 클레임 , 클레임 발급자 (ID 공급자 또는 ACS일 수 있음) 및 설명이 포함됩니다.

표에 제공된 규칙을 클릭하면 클레임 규칙 편집 페이지로 리디렉션되며, 여기서 규칙을 편집할 수 있습니다. 새 규칙을 수동으로 추가하려면 추가를 클릭하면 됩니다.

클레임 규칙

클레임 규칙은 ACS가 입력 클레임을 출력 클레임으로 변환하는 방법의 논리를 설명합니다. 규칙은 신뢰 당사자 애플리케이션과 연결되고 애플리케이션에 대한 ACS에서 토큰을 발급할 때마다 실행되는 규칙 그룹 내에 포함됩니다. 규칙 그룹에 규칙이 없는 경우에는 신뢰 당사자 응용 프로그램에 토큰이 발급되지 않습니다. 일반적으로 신뢰 당사자 응용 프로그램에 대해 발급하려는 모든 클레임 유형에 대해 하나의 규칙이 필요합니다. 규칙을 하나만 만들어 모든 클레임 유형 및 값을 통과시키는 데 사용할 수 있습니다. 하지만 모든 클레임 유형별로 규칙을 사용하면 보안이 향상되며 응용 프로그램으로 전달되는 데이터를 보다 강력하게 제어할 수 있습니다.

ACS에서 클레임의 유형, 발급자 또는 값을 변경하지 않고 ID 공급자 또는 클라이언트로부터 받은 클레임을 신뢰 당사자 애플리케이션으로 전달하도록 규칙을 구성할 수 있습니다. 이러한 규칙을 통과 규칙이라고 합니다. 예를 들어 Windows Live ID(Microsoft 계정)에서 발급한 토큰에는 nameidentifier 클레임 유형이 포함됩니다. 신뢰 당사자 애플리케이션에 변경되지 않은 이 클레임을 전달하려면 클레임 발급자, Windows Live ID에서 입력 nameidentifier 클레임 유형을 처리하고 동일한 출력 클레임을 만드는 통과 규칙을 구성해야 합니다.

아래 표에서는 가상의 AD FS 2.0 ID 공급자인 Contoso.com에서 통과시키는 클레임을 보여 줍니다.

입력 클레임 출력 클레임

발급자

형식

발급자

형식

Contoso.com

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier

123456789

Access Control Service

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier

123456789

Contoso.com

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

john@contoso.com

Access Control Service

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

john@contoso.com

Contoso.com

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/name

John Doe

Access Control Service

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/name

John Doe

또한 ACS 규칙 엔진은 클레임 발급자, 입력 클레임 유형 및 값에 따라 입력 클레임을 완전히 다른 출력 클레임으로 변환하는 기능을 제공합니다. 즉, ACS 규칙 엔진을 사용하면 토큰에 포함된 클레임을 추가, 제거 또는 변경하여 입력 토큰을 다른 출력 토큰으로 변환할 수 있습니다. 이러한 형태의 클레임 변환을 통해 ACS는 클레임 입력 값에 따라 기본 권한 부여를 구현할 수 있습니다. 아래 예제에서는 "nameidentifier" 입력 클레임이 특정 값과 일치하면 출력되는 클레임 유형 "role"(값: "administrator")을 보여 줍니다.

입력 클레임 출력 클레임

발급자

형식

발급자

형식

Contoso.com

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier

123456789

Access Control Service

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier

관리자 역할

또한 ACS 규칙 엔진은 두 입력 클레임의 결합을 기반으로 출력 클레임을 만드는 기능을 제공합니다. 아래 예제에서 Contoso.com의 "nameidentifier" 및 "role" 입력 클레임이 모두 특정 값과 일치하는 경우 출력 클레임 유형은 "action"이고 값은 "write"입니다. 두 입력 클레임이 규칙에 지정되어 있으면 두 값이 모두 일치해야 출력 클레임이 생성됩니다.

입력 클레임 출력 클레임

발급자

형식

발급자

형식

Contoso.com

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier

123456789

Access Control Service

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/action

쓰기

Contoso.com

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/role

관리자 역할

규칙을 사용하여 토큰 변환을 구현하는 방법에 대한 자세한 내용 및 단계는 방법: 규칙을 사용하여 토큰 변환 논리 구현을 참조하세요.

ACS 관리 포털에서 새 클레임 규칙을 추가하거나 기존 클레임 규칙을 편집하는 경우 다음 설정을 구성해야 합니다.

규칙 조건(다음의 경우) - 입력 클레임 추가

이 섹션에는 규칙이 출력 클레임을 발급하려면 true여야 하는 조건이 포함되어 있습니다. 이러한 조건은 다음과 같습니다.

  • 클레임 발급자 - 입력 클레임을 발급한 엔터티를 나타냅니다. 구성된 ID 공급자(예: ACS)일 수 있습니다. 입력 클레임이 서비스 ID에서 제공되거나 입력 클레임이 다른 클레임 규칙에서 가져온 경우 ACS는 발급자입니다. 자세한 내용은 서비스 ID를 참조하세요.

  • 입력 클레임 유형 - 클레임 발급자로부터 받은 입력 클레임 유형을 나타냅니다. 예를 들어 "nameidentifier"의 전체 클레임 유형은 .입니다 https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier. 이 필드의 옵션은 다음과 같습니다.

    • 임의 - 클레임 유형을 발급자로부터 받는 경우 true를 반환합니다.

    • 유형 선택 - 입력 클레임 유형이 드롭다운 메뉴에서 선택한 유형과 일치하는 경우 true를 반환합니다. 이 메뉴는 선택한 클레임 발급자에 대해 사용 가능한 클레임 유형으로 채워집니다.

    • 유형 입력 - 입력 클레임 유형이 필드에 입력한 값과 정확히 일치하는 경우 true를 반환합니다.

      중요

      이 필드는 대/소문자를 구분합니다.

  • 입력 클레임 값 - 받은 입력 클레임의 값을 나타냅니다. 예를 들어 "nameidentifier" 클레임 유형은 전자 메일 주소를 값으로 사용하며, 이 필드를 사용하여 특정 전자 메일 주소를 확인할 수 있습니다. 이 필드의 옵션은 다음과 같습니다.

    • 임의 - 클레임 값을 발급자로부터 받는 경우 true를 반환합니다.

    • 값 입력 - 입력 클레임 유형이 필드에 입력한 값과 정확히 일치하는 경우 true를 반환합니다. 이 옵션을 선택하는 경우 입력 클레임 유형 필드에서 특정 입력 클레임 유형을 선택하거나 입력해야 합니다.

      중요

      이 필드는 대/소문자를 구분합니다.

규칙 조건(다음의 경우) - 두 번째 입력 클레임 추가

두 번째 클레임을 규칙에 추가하려면 두 번째 입력 클레임 추가를 클릭합니다. 이렇게 하면 아래에 나와 있는 추가 조건을 지정할 수 있습니다. 입력 클레임이 두 개인 규칙에서는 모든 조건이 true여야 출력 클레임이 생성됩니다.

  • 클레임 발급자 - 두 번째 입력 클레임을 발급한 엔터티를 나타냅니다. 첫 번째 클레임에 대해 선택한 것과 동일한 ID 공급자이거나 ACS일 수 있습니다. ACS를 선택하여 규칙 처리 중에 다른 클레임 규칙에서 생성된 클레임을 지정합니다.

    중요

    첫 번째 클레임과 두 번째 클레임에 대해 서로 다른 두 ID 공급자를 선택할 수는 없습니다. 규칙은 한 번에 한 ID 공급자에서 발급된 토큰 하나만 처리하기 때문입니다.

  • 입력 클레임 유형 - 클레임 발급자로부터 받은 입력 클레임 유형을 나타냅니다. 예를 들어 "nameidentifier"의 전체 클레임 유형은 .입니다 https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier. 이 필드의 옵션은 다음과 같습니다.

    • 유형 선택 - 입력 클레임 유형이 드롭다운 메뉴에서 선택한 유형과 일치하는 경우 true를 반환합니다. 이 메뉴는 선택한 클레임 발급자에 대해 사용 가능한 클레임 유형으로 채워집니다.

    • 유형 입력 - 입력 클레임 유형이 필드에 입력한 값과 정확히 일치하는 경우 true를 반환합니다.

      중요

      이 필드는 대/소문자를 구분합니다.

  • 입력 클레임 값 - 받은 입력 클레임의 값을 나타냅니다. 예를 들어 "nameidentifier" 클레임 유형은 전자 메일 주소를 값으로 사용하며, 이 필드를 사용하여 특정 전자 메일 주소를 확인할 수 있습니다. 입력 클레임 유형이 필드에 입력한 값과 정확히 일치하는 경우 true를 반환합니다.

    중요

    이 필드는 대/소문자를 구분합니다.

규칙 동작(수행할 동작)

이 섹션에서는 규칙의 If 섹션에 있는 조건이 true인 경우 ACS에서 발급하는 출력 클레임을 지정합니다. 출력 클레임 옵션은 다음과 같습니다.

  • 출력 클레임 유형 - ACS에서 발급한 클레임 유형입니다. 이 필드의 옵션은 다음과 같습니다.

    • 통과 입력 클레임 유형 - 입력 클레임과 유형이 같은 출력 클레임을 발급합니다.

    • 유형 선택 - 지정한 유형의 출력 클레임을 발급합니다. 드롭다운 메뉴에 일반 클레임 유형 목록이 포함되어 있습니다.

    • 유형 입력 - 입력한 유형의 클레임을 발급합니다. 출력 클레임이 SAML 토큰에 있는 경우 이 값은 URI(예: https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier)여야 합니다.

      중요

      이 필드는 대/소문자를 구분합니다.

  • 출력 클레임 값 - ACS에서 발급한 출력 클레임의 값을 나타냅니다. 이 필드의 옵션은 다음과 같습니다.

    • 통과 입력 클레임 값 - 값이 입력 클레임의 값과 동일한 출력 클레임을 발급합니다.

    • 값 입력 - 이 필드에 입력한 값을 포함하는 클레임을 발급합니다. 이 옵션을 선택하는 경우 출력 클레임 유형 필드에서 특정 입력 클레임 유형을 선택하거나 입력해야 합니다.

      중요

      이 필드는 대/소문자를 구분합니다.

규칙 정보

이 섹션에서 규칙의 설명을 작성할 수 있습니다.

참고

ACS에서는 생성된 규칙에 대한 규칙 설명이 자동으로 만들어지지 않습니다.

ACS 관리 서비스를 사용하여 규칙 구성

ACS 관리 서비스를 사용하여 Access Control 네임스페이스의 규칙을 프로그래밍 방식으로 구성할 수 있습니다. ASP.NET 사용하여 규칙을 구성하는 방법의 예는 코드 샘플: 관리 서비스를 참조하세요. 다음은 ACS 관리 서비스를 사용하여 규칙을 구성할 때 고려해야 할 중요한 항목입니다.

  • 규칙 그룹에서 규칙을 편집하고 삭제할 때는 먼저 해당 규칙 그룹 내의 모든 규칙에 대해 ACS를 쿼리하고 쿼리가 반환하는 규칙 ID를 사용하여 편집 또는 삭제 작업을 수행하는 것이 좋습니다. 관리 서비스에서 반환되는 ID는 지속성이 보장되지 않으므로 향후 작업을 위해 저장하는 것은 권장되지 않습니다.

  • 규칙을 만들 때 자동 다시 시도 논리를 작성하는 경우(예: 시간 제한의 경우) 먼저 현재 규칙 그룹에서 동일한 규칙의 존재를 쿼리한 다음 두 번째 시간에 추가하는 것이 좋습니다.

참고 항목

개념

ACS 2.0 구성 요소