JACC 제공자는 배치 된 서버의 Principal-to-role 맵핑 기능을 어떻게 사용할 수 있습니까?


154

JACC제공자를 작성하고 있습니다.

그 과정에서 이는 구현을 의미합니다 PolicyConfiguration.

PolicyConfiguration권한이있는 역할에 발생 등 어떤으로 응용 프로그램 서버에서 구성 정보를 수용 할 책임이있다. 이는 Policy나중에 현재 사용자사용자 가 수행하려는 작업에 대한 정보를 전달할 때 권한 부여 결정을 내릴 수 있도록 하기위한 것입니다.

그러나 PolicyConfiguration역할과 권한간에 매핑을 유지 관리하고 Principals해당 역할에 할당하는 것은 (끔찍한) 계약의 일부가 아닙니다 .

일반적으로 항상, 실제로는 응용 프로그램 서버에이 매핑이 있습니다. 예를 들어 Glassfish에서는 Java EE 모듈 sun-web.xml등 을 제공하여이 매핑에 영향을줍니다 sun-ejb-jar.xml. (이러한 공급 업체별 파일은 예를 들어 superusers의 응용 프로그램 역할이 할당 된 그룹입니다 admins.)

이 파일이 제공하는 기능을 재사용하고 싶습니다. 가능한 한 광범위한 응용 프로그램 서버에서 사용하고 싶습니다.

IBM은이 문제에 대해 전적으로 임의적으로 취하고 있으며, 이는 내가하고 싶은 것이 본질적으로 불가능하다는 의혹을 확인하는 것으로 보입니다 . (이 특정 Java EE 계약이 인쇄 된 종이 가치가 없다는 내 탄약이 더 많습니다.)

내 질문 : 글래스 피쉬와 JBoss 에서이 주요 역할을 매핑하는 정보를 어떻게 얻을 수 PolicyConfiguration있습니까? 내가 모르는 표준 방법이 있다면, 나는 모두 귀입니다.


7
이 문제에 대해 진전을 보셨습니까? 휴대용 웹 응용 프로그램을 구축하기 위해 JACC 공급자와 JASPIC 인증 공급자도 작성하고 싶습니다.
perissf

: 이것은 매우 중 유망 소리가 나지 않는다 Because JSR-115 does not define how to address role mapping, WebLogic JACC classes are used for role-to-principal mapping.참조 docs.oracle.com/cd/E24329_01/web.1211/e24485/...
Arjan Tijms

2
지금 당장 내가 취해야 할 것은 항상 JACC 제공자가 JASPIC 제공자와 연결되어 있어야하므로 반드시 작성해야한다는 것입니다. 나는 아직이 길을 가지 않았지만 시도 할 테이블 위에있다.
Laird Nelson

@LairdNelson, 시간이 있다면 JASPIC 의견에 대한 답변을 작성해야합니다. 이것은 유망한 것으로 들리 며,이 질문에 300 명성의 현상금이 있습니다.
jimhark

5
안녕하세요; 누군가를 불안하게 만들려고하지 않습니다. :-) 나는 서둘러 채찍질 할 수있는 대답이 없습니다. 본인은 Ron Monzillo에게 JACC 제공자를 이해하는 방식으로 교장-역할 할당을 얻는 유일한 방법은 JASPIC 구현을 효과적으로 결합시키는 것임을 조언했습니다.
Laird Nelson

답변:


3

대답은 표준 방법이 없다는 것입니다.

Glassfish와 JBoss는 P2P 매핑을 지원하지만 JACC는 모든 컨테이너를 지원한다고 가정하지 않으므로 이러한 매핑을 JACC 공급자 구현에 유지할 책임을 위임합니다. 문서에서 ( PolicyConfiguration.addToRolemethod 참조 ) :

역할에 추가 된 모든 권한이 "역할에 매핑 된"보안 주체에게 부여되도록하는 것은 정책 공급자의 임무입니다.

다시 말해, 각 컨테이너에 대해 JACC 제공자 내부에서이를 구현해야합니다. 예를 들어 JBoss의 하위 클래스 중 하나를 사용할 수 있습니다 AbstractRolesMappingProvider.


한편, 휴대용 제공 업체는 컨테이너 역할 매핑을 무시하도록 선택할 수 있습니다. 예를 들어 어떤 방식으로 ( PolicyContextHandler예를 들어 해당 목적을 위해 제공자에 의해 구체적으로 등록 된) 애플리케이션이 달리 전달 하지 않는 한, 모든 주체가 동일한 이름의 애플리케이션 역할을 암시한다고 가정 할 수 있습니다. 다른 제공 업체는 역할의 개념을 완전히 무시할 수 있으며 (따라서 컨테이너가 제공하는 PolicyConfiguration) 대신 (애플리케이션이 제공 한) P2P 매핑 (및 해당 권한이 JACC의 권한으로 제한 될 필요가없는)에서만 작동합니다.
Uux

참고 사항 # 2 : Java EE 8부터, 1 : 1 그룹-역할 맵핑이 새로운 기본값이되었습니다 (그러나 사용자 정의 JACC 제공자가 없다고 가정 할 때 역할이 정적으로 사전에 선언되어야하므로 절반 정도만 유지됩니다). 사실상).
Uux
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.