특정 역할을 가진 사용자가 자신의 ID를 기반으로 EJB 메서드를 호출 할 수있는 시나리오가 있습니다. EJB 빈에서 사용자에 대한 특정 역할을 가진 @RolesAllowed
주석이 있습니다. 역할 기반 검사의 경우 메소드 호출은 잘 작동하지만 사용자가 그림을 호출 할 때 다른 사용자의 ID를 전달하는 bean 메소드를 호출하면 메소드가 여전히 호출됩니다. RBAC를 사용하여이 시나리오를 피하는 방법 또는 다른 방법으로이 작업을 수행해야합니까?RBAC를 기반으로 다른 사용자의 리소스에 대한 한 사용자의 액세스 제어
0
A
답변
0
응용 프로그램 논리 (인증 논리)가 다른 사용자 ID를 사용하는 메소드 호출을 금지해야합니다. 어떤면에서는, 그렇게하면 다른 사람의 신분을 속이고 있습니다.
어노테이션은 사용자가 수동으로 전달한 값이 아니라 프레임 워크에서 검색 한 사용자 ID를 기반으로 검색되는 역할을 사용해야합니다. 서블릿 세계에서 예제를 얻으려면 HttpServletRequest 객체의 getUserPrincipal() 메서드를 사용합니다.
여기 서블릿에 대한 Java EE 6 자습서의 단락을 인용하고 있습니다. 동일한 원칙을 ejbs로 추정 할 수 있습니다.
일반적으로 보안 관리는 웹 구성 요소에 투명하게 컨테이너에서 시행해야합니다. 이 절에서 설명하는 보안 API는 웹 구성 요소 메소드가 보안 컨텍스트 정보에 액세스해야하는 덜 빈번한 상황에서만 사용해야합니다.
대해 getRemoteUser, 클라이언트가 인증되는 사용자 이름을 결정
- 서블릿 3.0 구성 요소의 발신자에 대한 보안 정보에 액세스 할 수 있도록 다음과 같은 방법을 지정합니다. getRemoteUser 메소드는 요청과 함 2 컨테이너와 연관된 원격 사용자 (호출자)의 이름을 리턴합니다. 인증 된 사용자가없는 경우이 메소드는 null을 리턴합니다.
- isUserInRole - 원격 사용자가 특정 보안 역할에 있는지 결정합니다. 인증 된 사용자가없는 경우이 메소드는 false를 반환합니다. 이 메서드는 String 사용자 role-name 매개 변수를 필요로합니다.
security-role-ref 요소는 메소드에 전달할 역할 이름이 들어있는 역할 이름 하위 요소가있는 배포 설명자로 선언되어야합니다. 보안 역할 참조 사용은 역할 참조 선언 및 연결에서 설명합니다.
- getUserPrincipal - 현재 사용자의 핵심 이름을 확인하고 java.security.Principal 객체를 반환합니다. 인증 된 사용자가없는 경우이 메소드는 null을 리턴합니다. getUserPrincipal에 의해 리턴 된 Principal의 getName 메소드를 호출하면 (자), 리모트 유저의 이름이 돌려 주어집니다.
애플리케이션은 이러한 API를 사용하여 얻은 정보를 기반으로 비즈니스 로직을 결정할 수 있습니다.
관련 문제
- 1. 특정 사용자의 액세스 제어
- 2. 정적 리소스에 대한 액세스 제어
- 3. 사용자의 검색을 기반으로 한 제안
- 4. 사용자의 상태를 기반으로 로그인을합니까?
- 5. 다른 사용자의 계정에 대한 link_to
- 6. 다른 사용자의 링크 서버에 액세스
- 7. 다른 계정에서 사용자의 파일에 액세스
- 8. 사용자의 테이블에있는 특정 행에 대한 액세스 제한
- 9. asp.net에서 사용자의 온라인 상태 제어
- 10. bitbucket 한 사용자의 쓰기 액세스 제거
- 11. 한 사용자의 인증 후 다른 사용자의 비밀번호를 변경하는 방법
- 12. 사용자의 체크 박스 가시성 제어
- 13. 액세스 사용자의 Google 캘린더 이벤트는 한 번
- 14. 일부 사용자의 경우 SVN에 대한 액세스 제한
- 15. 다른 사용자의 스파이 활동
- 16. 사용자의 JSP에 대한 직접 액세스 제한
- 17. 한 사용자의 다른 테이블을 다른 Oracle11g로 복사
- 18. 액세스 Azure Blob 로그인 한 사용자의 저장소
- 19. 로그인 한 사용자는 다른 사용자의 데이터에 액세스 할 수 있습니다
- 20. 로그인 한 사용자의 "역할"을 기반으로 한 Meteor의 동적 게시물
- 21. 다른 사용자의 시간대 관리
- 22. 다른 사용자의 연결 문자열
- 23. 한 사용자를 제외한 모든 사용자의 테이블에 대한 액세스 차단
- 24. 장고 사용자의 액세스 로그?
- 25. 사용자의 이벤트 초대에 액세스
- 26. IIS 사용자의 테이블에 대한 액세스 제한
- 27. 사용자의 Facebook 프로필 사진에 대한 액세스 권한
- 28. 서비스 계정을 사용하여 다른 사용자의 캘린더에 액세스
- 29. DataMapper를 사용하여 다른 스키마/사용자의 테이블에 액세스
- 30. Office 365 API에서 다른 사용자의 일정에 액세스