2014-04-29 5 views
2

여러 개의 API 모듈이 있습니다.XACML 정책을 구성하는 가장 좋은 방법은 무엇입니까?

각 API 모듈에 대한 정책을 작성합니까, 아니면 다른 규칙을 가진 하나의 정책입니까?

http://api.example.org/api/v1/users

http://api.example.org/api/v1/products

http://api.example.org/api/v1/purchases

이 API를 각 각 자원에 대해 서로 다른 규칙을 하나 개의 정책을 것이다 내가 API를 말해? 또는 PolicySet 내의 각 API 모듈에 대한 정책입니까?

저는 XACML을 처음 사용하기 때문에 첫 번째 정책을 작성하고 있습니다. OASIS에서 introduction은 말한다 :

정책이 하나의 액세스 제어 정책을 나타냅니다, 을 통해 규칙의 집합을 표현했다.

내 요구를 해결하기위한 정말 선택을

하지 ...

+0

PolicySet조차도 Policy Combination Algorithm을 가질 수 있기 때문에 혼란 스럽 습니다만, 정책이 목표와 일치하는지, 그 REST 모듈 중 하나를 말하면, 무엇이든 결합 할 필요는 없습니다 - 규칙은 그 정책 ... – faboolous

답변

3

이것은 좋은 질문이다. 짧은 대답은 사용 사례에 달려 있습니다. 여기에 옳고 그름이 없습니다. 단일 정책 또는 단일 규칙으로 모든 API를 보호 할 수 있습니다.

  • 요구 사항이
  • 정책 설계
  • 정책 제작
  • 정책 평가
  • 정책 감사
  • 정책 조정
를 수집 :

말했다 즉, 전체 정책 라이프 사이클에 대해 생각

각 단계에서 책임자는 누구입니까? 같은 사람들 이요? 다른 팀? 회사에서 XACML의 사용을 어떻게 확장하고 싶습니까? 중앙 제작 팀이 필요하십니까? 10, 100, 1000 API를 지원해야 할 때 작동합니까? 대답은 아니오 일 것입니다.

이렇게하면 API 소유자가 고유 한 정책을 작성하도록 할 수 있습니다. 그들은 정책에서 정의한 것을 선택하고, 허용되는 것은 무엇이며, 그렇지 않은 것은 선택합니다.

그런 다음 "정책 패키저"역할을 원합니다. 그 사람은 작성된 모든 정책을 수집하고 조합합니다.

  • 응용 프로그램 정책 (API에 소유자에 의해 쓰여진 것)
  • 운영 정책 (글로벌 체크에 대한 것들 오전 9시 전에 접근 또는 불량 국가로부터 어떤 액세스 예 : 다른 정책의 유형이 없습니다. ..) 정책 세트 policy 세트를 포함 할 수 있기 때문에이 정책 (또는 정책 세트를 결합 할 수 있습니다 세트 글로벌 정책에서
  • 준수 & 규제 정책 (HL7, PCI-DSS 및 기타 규정)

에 대한 것들) . 필요에 따라 결합 알고리즘을 선택할 수 있습니다. 일반적으로는 first-applicable입니다. 이는 처음에 적용되는 정책/규칙이 전반적으로 승리한다는 것을 의미합니다. 좀 더 보수적 인 선택은 deny-unless-permit 일 수 있습니다. 정책은 명시 적으로 액세스를 허용하지 않는 한 모든 요청을 거부합니다.

이전 예제를 바탕으로 API 당 3 가지 정책을 작성하고 싶습니다. 정책 참조 및 정책 세트 참조를 사용하여 정책을 연결하고 다시 사용할 수 있습니다.

Axiomatics (면책 조항 : 본인이 속한 회사 임)은 XACML 및 속성 기반 액세스 제어에 대한 워크샵을 제공합니다.

+0

위대한 대답! 고마워 – faboolous

+0

BTW, 어떻게/api/v1/resource/: resourceid/subresource에 대한 규칙을 두는 것입니까? 어떻게 XACML에서 resourceid를 모델링 할 수 있습니까? 아마 이것은 새로운 질문을받을 자격이있다. – faboolous

+1

사용자는'resource-id' 속성을 사용하여 규칙이나 정책의 대상에 사용하여 규칙/정책을 작성한다. –