Spring Security 와 CAS 상호작용 시퀀스

ServiceProperties
 
 



service 하나의 URL 과 같 아야 합 니 다. CasAuthenticationFilter 모니터링 합 니 다. sendRenew 의 기본 값 은 false 이지 만 응용 프로그램 이 특히 민감 하면 true 로 설정 해 야 합 니 다. 이 매개 변 수 는 CAS 로그 인 서 비 스 를 알려 주 는 역할 을 합 니 다. 단일 로그 인 은 받 아들 일 수 없습니다.반면 사용 자 는 서비스 에 접근 하기 위해 사용자 이름과 비밀 번 호 를 다시 입력 해 야 한다.
 
기본 적 인 웹 브 라 우 저 간 의 상호작용, CAS 서버 와 봄 Security - secured 서 비 스 는 다음 과 같 습 니 다.
  • 웹 사용자 가 서 비 스 를 조회 하 는 공공 페이지. CAS 또는 Spring Security 는 참여 하지 않 습 니 다.
  • 최종 사용자 가 페이지 나 보안 bean 의 사용 을 요청 하 는 것 은 안전 합 니 다.Spring Security 의 ExceptionTranslationFilter 에서 AccessDeniedException 또는 AuthenticationException 가 검출 됩 니 다.
  • 사용자 의 Authentication 대상 (또는 부족) 으로 인해 AuthenticationException, ExceptionTranslationFilter 설정 AuthenticationEntryPoint 을 호출 합 니 다.CAS 를 사용 하면 CasAuthenticationEntryPoint 클래스
  • CasAuthenticationEntryPoint 사용자 의 브 라 우 저 를 CAS 서버 로 재 설정 합 니 다.그것 도 하나 표 시 됩 니 다 service 인자, 이것 은 봄의 리 셋 URL 보안 서비스 (응용 프로그램) 입 니 다.예 를 들 어 브 라 우 저의 URL 재 설정 은https://my.company.com/cas/login?service=https%3A%2F%2Fserver3.company.com%2Fwebapp%2Flogin/cas。
  • 사용자 의 브 라 우 저 를 ca 로 다시 설정 하면 사용자 이름과 비밀 번 호 를 입력 하 는 것 을 알려 줍 니 다.사용자 가 이전에 로그 인 했 음 을 나타 내 는 세 션 쿠키 를 제공 하면 다시 로그 인 하 라 는 알림 을 받 지 않 습 니 다. (이 과정 에 예외 가 있 습 니 다. 잠시 후에 토론 하 겠 습 니 다.)중과 원 은 PasswordHandler (또는 CAS 3.0 'Authentication Handler') 이상 을 사용 하여 사용자 이름과 비밀번호 가 유효한 지 여 부 를 결정 할 것 이다.
  • 로그 인 에 성공 하면 중국 과학원 은 사용자 의 브 라 우 저 를 원래 의 서비스 로 되 돌려 줍 니 다.이것 은 또한 하나의 ticket 인 자 를 포함 할 것 입 니 다. 이것 은 불투명 한 문자열 로 'service ticket' 을 대표 합 니 다. 앞의 예 에서 브 라 우 저 를 URL 로 다시 설정 합 니 다. https://server3.company.com/webapp/login/cas?ticket=ST-0-ER94xMJmn6pha35CQRoZ。
  • 서비스의 웹 응용 프로그램 에서 CasAuthenticationFilter 항상 검색 요청 /login/cas (설정 가능 하지만 기본 본 소 개 를 사용 합 니 다).필 터 를 처리 하면 서비스 티켓 UsernamePasswordAuthenticationToken 을 구성 합 니 다.교장 은 CasAuthenticationFilter.CAS_STATEFUL_IDENTIFIER 서비스 어음 증빙 서 류 를 불투명 하 게 하 는 것 과 같다.이러한 인증 요청 은 AuthenticationManager 설정 에 전 달 됩 니 다.
  • AuthenticationManager 실현 ProviderManager 순 으로 배치 되 었 습 니 다.  CasAuthenticationProviderCasAuthenticationProvider 응답 만 포함 UsernamePasswordAuthenticationToken (예 를 들 어 CasAuthenticationFilter.CAS_STATEFUL_IDENTIFIERCasAuthenticationToken (잠시 후 토론).
  • CasAuthenticationProvider 서비스 어음 사용 검증 TicketValidator 이 이 뤄 진다.이것 은 보통 하나 Cas20ServiceTicketValidator 입 니 다. 이것 은 CAS 클 라 이언 트 라 이브 러 리 에 포 함 된 클래스 입 니 다.응용 프로그램 이 대리 항공권 을 검증 해 야 한다 면 사용 하 십시오.  Cas20ProxyTicketValidator  . TicketValidator  서비스 티켓 을 검증 하기 위해 HTTPS 요청 CAS 서버 를 보 냅 니 다.이 예 를 포함 하여 프 록 시 리 셋 URL 도 포함 할 수 있 습 니 다.https://my.company.com/cas/proxyValidate?service=https%3A%2F%2Fserver3.company.com%2Fwebapp%2Flogin/cas&ticket=ST-0-ER94xMJmn6pha35CQRoZ&pgtUrl=https / /server3.company.com/webapp/login/cas/proxyreceptor。
  • CAS 서버, 검증 요청 이 접수 된다.제공 하 는 서비스 티켓 이 서비스 URL 표 와 일치 하면 중과 원 은 XML 디 스 플레이 사용자 이름 에 적 극적인 응답 을 제공 할 것 이다.모든 에이전트 가 인증 (아래 토론) 에 참여 하면 프 록 시 목록 에 도 XML 응답 이 포함 되 어 있 습 니 다.
  • [OPTIONAL] CAS 인증 서 비 스 를 요청 하면 프 록 시 리 셋 URL 포함 (재 pgtUrl 매개 변수), 중국 과학원 은 하 나 를 포함 합 니 다.  pgtIou 문자열 이 XML 에서 응답 합 니 다.이런 pgtIou 은 proxy - granting 비행기 표를 빌려 주 는 것 을 대표 한다.CAS 서버 는 자신의 HTTPS 연결 pgtUrl 을 만 듭 니 다. 이것 은 서로 CAS 서버 에서 인증 을 하고 서비스 URL 을 주장 합 니 다.HTTPS 연결 은 프 록 시 에서 티켓 을 발급 하 는 최초의 웹 프로그램 을 보 내 는 데 사 용 됩 니 다. 예 를 들 어,https://server3.company.com/webapp/login/cas/proxyreceptor?pgtIou=PGTIOU-0-R0zlgrl4pdAQwBvJWO3vnNpevwqStbSGcq3vKB2SqSFFRnjPHt&pgtId=PGT-1-si9YkkHLrtACBo64rmsi3v2nf7cpCResXg5MpESZFArbaZiOKH。
  • Cas20TicketValidator CAS 서버 분석 XML 을 받 습 니 다.사용자 이름 (강제), 프 록 시 목록 (관련 이 있 을 경우), 프 록 시 - granting 표 차용증 (프 록 시 리 셋 요청 시) 을 포함 하여 CasAuthenticationProvider 으로 되 돌아 갑 니 다.
  • 다음 TicketResponseCasAuthenticationProvider 설정 이 라 고 합 니 다.  CasProxyDecider 프 록 시 목록 표시  CasProxyDecider 서 비 스 를 받 을 지 여부.몇 가지 실현 제공 SpringSecurity: 'Reject ProxyTickets', TicketResponse 과  AcceptAnyCasProxy 。이 이름 들 은 어느 정도 에 스스로 해석 한 것 이다.  NamedCasProxyDecider 허용 NamedCasProxyDecider 믿 을 만 한 대 리 를 제공 하 다.
  • List 다음 요청 CasAuthenticationProvider 을 불 러 옵 니 다 AuthenticationUserDetailsService 대상  GrantedAuthority .
  • 문제 가 없 으 면 Assertion 구조 CasAuthentication Token 은 세부 사항 CasAuthenticationProviderTicketResponse 을 포함한다.
  • 제어 한 다음 에 GrantedAuthority 로 돌아 가 CasAuthenticationFilter 안전 컨 텍스트 를 만 듭 니 다.
  • CasAuthenticationToken 사용자 의 브 라 우 저 를 원본 페이지 로 재 설정 합 니 다 (or a custom destination 설정 에 따라).
  • 좋아, 너 아직 여기 있어!이제 어떻게 설정 하 는 지 보 여 주세요.
     
     
     
     

    좋은 웹페이지 즐겨찾기