2014-12-03 11 views
1

에서의 AttributeValue에 XPath는 같은 표현을 사용할 수 있습니다.는 내가 좋아하는 내가 어떤 정책을 선언하고 싶은 XACML의 plicy

내가 "XACML3.0 코어 사양", "여러 프로파일"을 통해보고, 그들은

Each Individual Decision Request SHALL be identical to the original request context with two exceptions: the “multiple:content-selector” attribute SHALL NOT be present and an added “content-selector” attribute value SHALL be an XPath expression that evaluates to a single node in the <Content> element 

나는이 정책 파일에, 난에의 AttributeValue에서 XPath를 사용 두지 못하는 것을 의미한다고 생각 말한다 내가 처음에 말했던 것처럼 여러 리소스를 참조하십시오. 맞습니까? 이는 요청이 개별 요청에 대해 해결 되었기 때문에 각각 지정된 속성 ID가있는 자원을 요청하기 때문입니다.

내가 놓치거나 잘못 이해 한 사양에 뭔가가 있습니까? 또는 누군가는 나가 원하는 것을하는 더 나은 방법을 건의 할 수 있는가?

이제 자원에서 정규 표현식을 사용하면 그렇게 할 수 있는지 궁금합니다. 해당 기능은 urn:oasis:names:tc:xacml:1.0:function:string-regexp-match입니다.

피씨 : 내 회사의 인증 서버를 설정하려고하는데, XACML은 시작하기에 좋은 장소 인 것 같습니다. 그러나 나 주변의 아무도 그것에 관해 모른다. 어느 누구라도 액세스 제어 시스템을 설정하는 것에 대해 제안 할 수 있다면 감사하겠습니다.

+0

합니다. 어떤 엔진 또는 솔루션을 사용하고 있습니까? 석유가 잠시 후에 xpath 질문에 응답합니다. –

+0

나는 Balana (WSO2의 오픈 소스)에 인증 서버를 기반으로합니다. – telmo

+0

정규 표현식을 지원하지 않으면 Axiomatics 정책 서버에 –

답변

1

Axiomatics의 동료 중 일부와 이야기를 나누었습니다. 결론은 XPath가 아니라 정규 표현식이 필요하다는 것입니다. XACML은 URI 데이터 형식에서 작동하는 정규 표현식 함수를 제공합니다. anyURIRegexpMatch라고하며 정규 표현식을 적용 할 문자열 (정규식)과 XACML 속성을 사용합니다. true 또는 false를 반환합니다. 로 보일 것이다

규칙 목표는 ALFA (Axiomatics Language for Authorization)에서 다음과

policy matchResources{ 
    apply firstApplicable 
    rule allow{ 
     target clause anyURIRegexpMatch("^https?://(?:[a-z\\-]+\\.)+[a-z]{2,6}(?:/[^/#?]+)+\\.(?:jpg|gif|png)$", resourceId) 
     permit 
    } 
} 

참조이 다른 예 (XACML 2.0) : 내가 도와주고 싶지만 How do I apply XACML rules to every child URI?

+1

ALFA는 훌륭한 XACML 정책 편집기입니다. – telmo