어설션 당사자에서 클레임 변환을 구성하는 방법

클레임 변환 기능은 페더레이션된 싱글 사인온 트랜잭션 동안 클레임을 조작합니다. 클레임은 특성이라고도 하며, 특성을 사용자 지정하고 파트너의 사용자 환경을 개선하는 데 유용합니다.
casso127kkr
클레임 변환 기능은 페더레이션된 싱글 사인온 트랜잭션 동안 클레임을 조작합니다. 클레임은 특성이라고도 하며, 특성을 사용자 지정하고 파트너의 사용자 환경을 개선하는 데 유용합니다.
참고:
이 비디오에서는 제품 이름이 CA Single Sign-On(CA SSO)의 이전 이름인 CA SiteMinder로 나옵니다.

목차
2
어설션 특성을 수정하면 신뢰 당사자는 대상 응용 프로그램에서 사용할 수 있도록 사용자 정보를 조정할 수 있게 됩니다. 예를 들어 클레임 변환을 통해 서로 다른 도메인에 있는 서로 다른 파트너에서의 역할을 연결할 수 있습니다. 한 도메인에서 사용자가 엔지니어링 관리자이고 EngineerAdmins라는 그룹에 속하지만, 신뢰 당사자는 동일한 역할을 DevelAdmins로 식별할 수 있습니다. 이 경우 어설션 당사자는 어설션을 발급하기 전에 역할 특성을 변경합니다. 그러면 해당 사용자가 신뢰 당사자 응용 프로그램에서 인식될 수 있는 DevelAdmins 역할로 식별됩니다.
클레임 변환은 로컬 어설션 당사자에서 어설션 생성 프로세스 도중에 발생합니다. 이 기능은 파트너 관계별로 구성해야 합니다. 어설션을 로컬 당사자가 생성하든 원격 당사자가 생성하든 관계없이 어설션을 수정할 수 있습니다. 클레임은 파트너 관계에 대해 구성된 식을 기반으로 변환됩니다. 식에서는 사용자 저장소와 세션 저장소에서 가져온 사용자 정보를 사용합니다.
소프트웨어에서는 어설션 특성에 대해 다음과 같은 세 가지 수정 작업을 수행할 수 있습니다.
  • 변환:
    어설션 특성의 값을 다른 값으로 변경합니다.
  • 추가:
    어설션 특성이 아직 없는 경우 추가합니다.
  • 삭제:
    조건에 따라 어설션 특성을 삭제합니다.
클레임 변환에 대한 사전 요구 사항
클레임 변환을 구성하기 전에 다음 사전 요구 사항을 고려하십시오.
  • 사용할 수 있는 사용자 저장소 및 세션 저장소 특성을 잘 알고 있어야 합니다.
  • 신뢰 당사자가 어설션에서 검색할 것으로 예상되는 특성을 확인해야 합니다.
  • UEL(Unified Expression Language)의 오픈 소스 버전인 JUEL(Java Unified Expression Language)을 잘 알고 있어야 합니다.
특성 식 지침 확인
식은 소프트웨어에 어설션 특성의 조작 방법을 알려 주는 규칙입니다. 식이 전달하는 지침을 통해 소프트웨어에서 어설션 특성을 수정, 추가 또는 삭제하게 됩니다. JUEL(Java Unified Expression Language)을 사용하여 식을 구성하십시오. JUEL 식 계산기는 구성된 식을 검사하고 결과 어설션 특성을 생성합니다.
관리 UI의 "어설션 특성" 테이블에서 식을 정의하십시오. 이 테이블에 액세스하려면 파트너 관계 마법사의 "어설션 구성" 단계로 이동하십시오. 이 테이블은 다음 그림에 표시되어 있습니다.
assertion attribute configuration in the UI
어설션 특성 테이블의 "Value"(값) 열에 식을 입력하십시오. 식의 모든 특성은 사용자 저장소 또는 세션 저장소 특성입니다.
일반적으로 식은 조건에 따라 작동합니다. 조건이 충족되면 지정된 클레임 수정이 수행됩니다. 예를 들어 수신 어설션에 "role" 특성이 포함된 경우 "role" 어설션 특성을 수정하는 식은 다음과 같습니다.
#{attr["title"] == 'manager' ? 'administrator' : attr["title"]}
표현식의 첫 번째 부분
#{attr["title"] == 'manager'
는 소프트웨어로 하여금 로그인한 사용자의 직책이 "manager"인지 확인하도록 합니다. 조회는 사용자 디렉터리에서 수행됩니다. 이 조건이 충족되면 표현식의 두 번째 부분
? 'administrator' :
가 role 어설션 특성에 값 "administrator"를 할당합니다. 조건이 충족되지 않을 경우 식의 마지막 부분
attr["title"]}
은 사용자 특성 "title"의 값이 "manager"로 유지되도록 합니다. 어설션 특성 "role"에는 이 "manager" 값이 할당됩니다.
참고:
식에서 attr["title"] 구문 대신 앞의 예에 나온 'administrator'와 같이 정적 값을 사용할 수 있습니다.
이 예에서는 어설션에 "role" 특성이 이미 있다고 가정합니다. 따라서 이 식은 기존 특성을 변환하는 식입니다. "role"이 어설션에 포함되지 않은 경우 소프트웨어는 role 특성을 어설션에 추가합니다.
식 구문
다음과 같은 올바른 구문을 사용하여 식을 구성하십시오.
  • 사용자 저장소 특성은
    attr
    ["
    attribute_name
    "] 문자열로 나타냅니다.
  • 세션 저장소 특성은
    session_attr
    ["
    attribute_name
    "] 문자열로 나타냅니다.
  • 클레임을 삭제하려면 'DELETE' 인수를 사용합니다.
attr
session_attr
접두사에는 소문자 텍스트를 사용합니다. 특성 이름은 대/소문자를 구분하지 않습니다.
또한 다음과 같은 조건부 JUEL 연산자에 대해 잘 알고 있어야 합니다.
연산자
의미
conditional value ? value1 : value2
conditional value가 value1 또는 value2가 됩니다.
!=
같지 않음
==
같음
중요!
식의 특성은 사용자 디렉터리나 세션 저장소에서 사용할 수 있는 특성이어야 합니다. 특성이 올바르지 않으면 시스템에서는 단순히 해당 특성에 빈 값을 포함합니다. 어설션 생성은 오류 없이 실행됩니다.
더 많은 식의 예를 보려면 어설션 당사자 측에서 클레임 변환 구성 섹션을 읽어 보십시오.
어설션 당사자 측에서 클레임 변환 구성
파트너 관계 수준에서 식을 정의하십시오. 이러한 식의 결과로 어설션에서 특성이 수정, 추가 또는 삭제됩니다. 규칙이 정의된 후에는 어설션이 수정되어 신뢰 당사자로 보내집니다. 클레임 변환을 구성하지 않으면 어설션 특성이 신뢰 당사자에게 "그대로" 전달됩니다.
다음 단계를 수행하십시오.
  1. 관리 UI에 로그인합니다.
  2. "페더레이션", "파트너 관계"를 차례로 선택합니다.
  3. 수정할 파트너 관계를 선택합니다. 적합한 파트너 관계로는 다음이 포함됩니다.
    • 로컬 생산자-원격 소비자
    • 로컬 IdP-원격 SP
    • 로컬 IP-원격 RP
  4. 파트너 관계 마법사의 "어설션 구성" 단계로 이동합니다.
    "어설션 특성" 섹션에서 "행 추가"를 클릭합니다.
  5. 추가한 행에서 다음 필드에 특히 주의해야 합니다. 각 필드에 대한 자세한 설명을 보려면 "도움말"을 클릭합니다.
    • 어설션 특성
      어설션 특성을 입력합니다. 이 열의 모든 값은 어설션 특성입니다. 어설션의 기존 특성은 어설션에 유지되지만 해당 값은 구성된 식에 따라 새로 설정됩니다. DELETE 식을 구성한 경우에만 어설션에서 특성이 제거됩니다.
    • 검색 방법
      기본값 SSO를 유지합니다.
    • 형식
      어설션에 추가되는 특성의 형식을 지정합니다. 형식 옵션은 엔터티에 대한 SAML 프로필에 따라 다릅니다.
    • Type
      클레임 변환에는 항상 이 값을 사용합니다.
    • 어설션 특성을 수정할 방법을 반영하는 식을 입력합니다.
      클레임 식 구성에 대한 지침과 다음 예를 검토하십시오.
  6. (SAML 2.0 및 토큰 유형이 SAML 2.0인 WSFED의 경우 선택 사항) 어설션 특성을 암호화하려면 "암호화"를 선택합니다. 어설션 당사자는 파트너 관계 구성에 지정된 인증서를 사용하여 어설션을 암호화합니다.
    신뢰 당사자는 인증서와 연결된 개인 키를 사용하여 어설션 특성의 암호를 해독합니다.
  7. 구성하려는 어설션 특성에 필요한 만큼 행을 추가합니다.
클레임 변환이 파트너 관계에 구성된 항목을 기준으로 구현됩니다.
어설션의 클레임 변환
클레임을 변환하면 어설션 특성 값이 다른 값으로 변경됩니다.
참고:
아래 예에서는 "어설션 특성", "유형" 및 "값"에 대한 항목만 보여 줍니다.
변환 예 1
다음 예에서는 어설션에 "title" 특성이 이미 있다고 가정합니다. 표에는 사용자 저장소의 사용자 특성이 나와 있습니다.
사용자 디렉터리 특성
특성 값
role
admin
admintitle
SeniorAdmin
supertitle
SuperUser
다음 구성을 사용하여 기존 title 특성의 값을 변환할 수 있습니다.
  • 어설션 특성
    title
  • Type
  • #{attr[“role”] == ‘admin’ ? attr[“admintitle”] : attr[“supertitle”]}
결과:
이 식은 "role" 사용자 특성이 "admin"으로 설정되어 있는지 여부를 조건으로 합니다. 이 조건이 충족될 경우 어설션 특성 "title"이 "admintitle" 특성 값 SeniorAdmin으로 설정됩니다. role 특성이 "admin"이 아닌 다른 값으로 설정되어 있으면 "title" 특성은 "supertitle" 특성 값인 SuperUser가 됩니다.
변환 예 2
다음 예에서는 어설션에 ContactNo 특성이 이미 있다고 가정합니다.
사용자 디렉터리 특성
특성 값
homephone
555-3344
mobile
555-8888
다음 구성을 사용하여 기존 title 특성의 값을 변환할 수 있습니다.
  • 어설션 특성
    ContactNo
  • Type
  • #{attr["homephone"] == '555-3344' ? attr["mobile"] : attr["homephone"]}
결과:
이 식은 로그인한 사용자의 "homephone" 사용자 특성이 555-3344로 설정되어 있는지 여부를 조건으로 합니다. 이 조건이 충족될 경우 어설션 특성은 "mobile" 특성 값인 555-8888로 설정됩니다. 조건이 충족되지 않으면 "homephone" 값이 변경되지 않습니다.
casso127kkr
 
 
세션 특성을 사용하는 식을 구성하려면 attr["
attribute_name
"]을 session_attr["
attribute_name
"]으로 바꾸십시오. 예를 들면 다음과 같습니다.
#{session_attr[“att1”] == ‘admin’ ? session_attr[“attr2”] : attr[“attr3”]}
어설션에 클레임 추가
아직 없는 어설션 특성을 추가할 수 있습니다.
추가 예 1
다음 예에서는 어설션에 "title" 특성이
없다
고 가정합니다.
사용자 디렉터리 특성
특성 값
role
admin
admintitle
director
supertitle
executive
다음 구성으로 어설션에 title 특성을 추가할 수 있습니다.
  • 어설션 특성
    title
  • Type
  • #{attr[“role”] == ‘admin’ ? attr[“admintitle”] : attr[“supertitle”]}
결과:
이 식은 로그인한 사용자의 "role" 특성이 admin으로 설정되어 있는지 여부를 조건으로 합니다. 이 조건이 충족될 경우 어설션 특성 "title"이 어설션에 추가되고 "admintitle" 특성 값인 "director" 값으로 설정됩니다. role 특성이 "admin"이 아닌 다른 값으로 설정되어 있으면 어설션 특성 "title"이 추가되지만 해당 값은 "supertitle" 특성 값인 "executive"가 됩니다.
추가 예 2
다음 예에서는 어설션에 "smtitle" 특성이
없다
고 가정합니다.
사용자 디렉터리 특성
특성 값
title
관리자
  • 어설션 특성
    smtitle
  • Type
  • #{attr["title"] == 'manager' ? 'federation administrator' : attr["title"]}
결과:
로그인한 사용자의 title 특성이 "manager"인 경우 "smtitle"이 어설션에 추가되고 해당 값은 "federation administrator"로 설정됩니다. 물음표 뒤에는 attr["attribute_name"] 구문을 사용하는 대신 정적 값을 입력할 수 있습니다. 이 예에서는 federation administrator가 정적 값에 해당합니다.
casso127kkr
 
 
세션 특성을 사용하는 식을 구성하려면 attr["
attribute_name
"]을 session_attr["
attribute_name
"]으로 바꾸십시오. 예를 들면 다음과 같습니다.
#{session_attr[“att1”] == ‘admin’ ? session_attr[“attr2”] : attr[“attr3”]}
어설션에서 클레임 삭제
어설션 특성을 삭제할 수 있습니다.
삭제 예 1
두 개의 항목을 구성하여 어설션 특성 admintitle 및 supertitle을 삭제할 수 있습니다.
사용자 디렉터리 특성
특성 값
role
admin 또는 superuser
title
관리자
su
superuser
  • 어설션 특성
    admintitle
  • Type
  • #{attr[“role”] == ‘superuser’ ? ‘DELETE’ : attr[“title”]}
결과:
이 식 문자열은 "role" 사용자 특성을 조건으로 합니다. 로그인한 사용자의 role 특성이 superuser면 어설션 특성 "admintitle"이 삭제되고, role 특성이 superuser가 아니면 title 어설션 특성 값이 title 사용자 디렉터리 특성의 값인 administrator로 설정됩니다.
  • 어설션 특성
    supertitle
  • Type
  • #{attr[“role”] == ‘admin’ ? ‘DELETE’ : attr[“su”]}
결과:
이 식 문자열은 "role" 사용자 특성을 조건으로 합니다. 로그인한 사용자의 role 특성이 "admin"이면 어설션 특성 "supertitle"이 삭제되고, role 특성이 "admin"이 아니면 supertitle 어설션 특성 값이 su 사용자 디렉터리 특성의 값인 superuser로 설정됩니다.
삭제 예 2
다음 예에서는 식 하나로 추가와 삭제를 결합하는 경우를 보여 줍니다.
사용자 디렉터리 특성
특성 값
title
관리자
  • 어설션 특성
    ManagerName
  • Type
  • #{attr["title"] != 'Manager' ? attr["manager"] : 'DELETE'}
결과:
로그인한 사용자의 사용자 특성 title이 "manager"가
아니면
ManagerName 특성이 어설션에 추가됩니다. 하지만 로그인한 사용자의 title이 manager이면 ManagerName 특성은 어설션에 포함된 것으로 가정하여 삭제됩니다.
casso127kkr
 
 
세션 특성을 사용하는 식을 구성하려면 attr["
attribute_name
"]을 session_attr["
attribute_name
"]으로 바꾸십시오. 예를 들면 다음과 같습니다.
#{session_attr[“att1”] == ‘admin’ ? session_attr[“attr2”] : attr[“attr3”]}