2014-11-25 11 views
1

XACML로 승인 작업을 시도하고 있습니다.webapplication에서 IDP로 WSAC ESB를 XACML 인증을위한 PEP로 호출하는 표준 방법은 무엇입니까?

일반 Axis2 인터셉터에서 WSO2 Identity server (PDP)와 성공적으로 통신했습니다.

는 이제 문제는 내가 웹 응용 프로그램에서 ESB를 호출하는 방법을 이해 할 수없는 오전

http://wso2.com/library/articles/2010/10/using-xacml-fine-grained-authorization-wso2-platform/

(샘플 아래에서 언급 한) PEP로 WSO2 ESB를 사용하려고? 위의 링크에서 그들은 UT 보안 기능을 갖춘 ESB의 프록시 서비스를 호출하여 ESB와 연결하기 위해 자바 클라이언트를 사용하고 있습니다.

이 예제의 주어진 Java 클래스가 올바른 방법인지 확실하지 않습니다. 프록시 서비스 및 보안 정책에 대한 지식이 필요합니다.

또한 나는 당신이 당신의 PDP를 추상화하고자한다면 미래에 다른 새로운 PDP로 대체 할 수있는 옵션을 가지고 있다는 것을 보았습니다. 그런 다음 PEP와 PEP 통신을 위해 WS-XACML 표준을 사용해야합니다.

나는 아직이 일에 어떤 샘플,

이를 달성하기 위해 다른 표준 방법이 있나요 발견하지 않았습니다? 또는 유용 할 수있는 예제.

답변

1

WSO2 ESB에는 Entitlement Mediator라고하는 PEP가 들어 있습니다. ESB는 백 엔드 웹 서비스의 보안 게이트웨이로 사용할 수 있습니다. ESB의 몇 가지 사용 사례를 설명하겠습니다. 예를 들어, 시스템에 일부 레거시 서비스 (또는 SOAP 및 REST가있는 표준 웹 서비스)가 있습니다. 해당 서비스에 대해 보안 (인증 & 인증)을 적용해야합니다. 따라서 WSO2 ESB를 사용하여 이러한 서비스를 수행하고 기존 시스템을 변경하지 않고 보안을 유지할 수 있습니다. 기존 서비스는 ESB를 사용하는 표준 SOAP 기반 웹 서비스 (Proxy Services) 또는 REST API로 쉽게 노출 될 수 있습니다. 그런 다음 웹 서비스 보안 (WS-Security, 예 UT 또는 기타) 또는 API 보안 (OAuth/Basic Auth)을 사용하여 보안을 유지할 수 있습니다. 이러한 접근 방식으로 인증을 쉽게 관리 할 수 ​​있습니다. 미세 입자 권한 부여가 필요한 경우 WS02IS와 함께 자격 조정자를 사용할 수 있습니다.

여러분, 정확한 시나리오가 확실하지 않습니다. 내 생각에는 웹 응용 프로그램이 있고 웹 서비스를 호출해야합니다. 당신은 ESB를 사용하여 인증을 얻었습니다. 어떻게 인증 받았습니까? 웹 응용 프로그램 내에서 구현 된 인증 메커니즘이있을 수 있습니까? 그런 다음 사용자 이름 값을 HTTP 헤더의 ESB로 보낼 ​​수있는 인증 된 사용자의 사용자 이름을 가질 수 있습니다 (웹 응용 프로그램 및 ESB가 내부 네트워크 및 SSL에 있다고 가정). ESB 명상 플로우에서 사용자 이름을 추출하여 자격 중재자에게 설정할 수 있습니다 (따라서 UT를 항상 적용 할 필요는 없습니다). 사용자 자격 부여 조정자가 작동하려면 자격 부여 조정자가 사용자 이름을 사용할 수 있어야합니다 (사용자가 인증 전에 인증되어야 함).

웹 응용 프로그램에서 ESB로 Java 클라이언트가 필요하지 않습니다. 웹 서비스를 호출 할 수있는 클라이언트 여야합니다.

WS-XACML은 오래되어 인기가없는 프로필입니다. 나는 그것을 사용하는 것이 더 좋다고 생각하지 않는다. 표준 방식은 PEP-PDP와 통신하는 것이 REST/JSON 프로파일입니다. 그러나 WSO2IS는 아직 지원하지 않습니다. here

+0

안녕하세요, Asela, 답변 주셔서 대단히 감사합니다. 그러나 현재 아키텍처를 만들고 싶다면 WS02 제품과 함께 사용해야합니다. WSO2가 JSOn/Rest 지원을 제공 할 때마다 도움이됩니다. 너무 많이 변경하지 않고도 쉽게 대체 할 수 있습니다. – Budhh

+0

로그인 할 때 권한을 요청하는 동안 - 사용자가 사용할 수있는 모든 권한 정보를 얻을 수 있습니까? (예 : 사용할 수있는 리소스와 같은) 각 URL 또는 ESB 및 ID 서버를 호출 할 필요가없는 기타 리소스 시각? – Budhh

+0

현재 Identity Server 또는 ESB (UT)의 API 로그인은 부울 결과를 제공합니다. 로그인 중에 SAML 토큰 (예 : OpenId-connect)과 같은 사용자 속성을 검색 할 수있는 곳이 있습니다. 로그인하는 동안 사용자의 모든 권한을 얻는 것이 좋지 않다고 생각합니다. 로그인 할 때 더 많은 시간이 걸릴 수 있으며 사용자는 해당 세션에서 이러한 모든 권한을 사용할 수 없습니다. 어떤 경우에는 생각합니다. 요구에 대한 권한을로드하는 데 더 효과적입니다. 하나 이상의 결과를 얻기 위해 XACML에서 여러 의사 결정 프로필을 사용할 수 있습니다. – Asela