XACML에없는 함수는 부울 인수를 요구합니다. 그러나 나는 "남성이 아니야"와 같은 "문자열이 아닌"정책을 표현하고 싶습니다. 대신 "성별 == 남성"을 사용할 수 없습니다. Google과 stackoverflow를 검색했지만이 문제를 해결하지 못했습니다. 내가 어떻게 할 수 있니?XACML - "성별 == 남성이 아닌"남성이 아닌 표현하는 방법
0
A
답변
1
XACML 요청을 보내면 항상 하나 이상의 값이있는 속성 집합을 보냅니다. 당신은 보낼 것 중 하나
- 식별자 성, 데이터 형식 문자열 및 카테고리 제목 또는 식별자 남성, 데이터 형식 부울 및 카테고리 피사체
- 속성과 속성.
당신은 여전히 속성을 보냅니다. 하나의 경우 값은 문자열입니다. 다른 값은 문자열입니다. 아래의 설명에서 나는 문자열 방식을 취한다. 불리언 접근법을 원한다면 성별 == "남성"을 수컷으로 바꿉니다.
XACML에서 속성에는 값이 없을 수도 있습니다. 이렇게하면 XACML 불리언이 단순한 부울 이상이됩니다. 남성은 참, 거짓 또는 정의되지 않을 수 있습니다. 정책/규칙을 작성할 때는이를 명심하십시오.
예를 들어. (성별 == 남성)이 아닌 경우 두 가지 옵션이 있습니다.
- 가능한 값 집합은 유한합니다. true/false, 남성/여성, 뜨거움/따뜻함/차가움 등의 이유로 케이스별로 정책이나 규칙을 작성하는 것은 행복합니다.
- 또는 가능한 값 집합이 너무 길거나 무한합니다. 수치 또는 시민권의 명부 (그 중 180+). 전자의 경우는 (ALFA에 의사 코드) 다음을 작성할 수 있습니다에서
: 후자의 경우
policy checkGender{
apply firstApplicable
rule male{
target clause gender=="male"
permit
}
rule female{
target clause gender=="female"
permit
}
/**
* Optionally add a catch all case
*/
rule other{
target clause ... // Here you'd have to define other checks you are interested in
}
}
, 당신은 부정적인 조건을 작성해야합니다. 그렇게하려면 XACML 조건을 사용해야합니다. XACML 조건은 규칙 내부에서만 작동하기 때문에 XACML 규칙 수준까지 내려야합니다.
policy checkGender{
apply firstApplicable
rule notMale{
condition not(gender=="male")
permit
}
}
([XACML 논리적 표현 정책을 표현하는 사용]의
중복 가능성 http://stackoverflow.com/questions/23646066/using-xacml-to-express-policy-which-is-a- 논리 표현식) –