Java 인증 및 인증 서비스

Java Authentication and Authorization Service

Java Authentication and Authorization Service, 또는 JAAS(Java Authorization Service)는 표준 PAM([1]Pluggable Authentication Module) 정보 보안 프레임워크의 자바 구현이다.[2]JAAS는 자바 플랫폼의 확장 라이브러리인 Standard Edition 1.3으로 도입되었으며 버전 1.4에 통합되었다.[1]

JAAS는 사용자 인증에 대한 우려의 분리를 주요 목표로 하여 사용자 인증이 독립적으로 관리될 수 있도록 한다.이전의 인증 메커니즘은 코드의 출처와 서명에 대한 정보를 포함했지만, JAAS는 코드의 실행자에 대한 마커를 추가했다.검증 벡터를 확장함으로써 JAAS는 인증 및 인증 모듈이 필요한 Java 애플리케이션의 보안 아키텍처를 확장한다.

관리

시스템 관리자의 경우, JAAS는 두 가지 종류의 구성 파일로 구성된다.

  • *.login.conf: 공급업체에서 제공하는 로그인 모듈을 특정 애플리케이션에 연결하는 방법을 지정하십시오.
  • *.policy: 어떤 ID(사용자 또는 프로그램)가 어떤 권한을 부여받는지 지정

예를 들어, 애플리케이션은 다음과 같은 기능을 가질 수 있다.사용자를 인증하기 위해 다른 인증 메커니즘을 실행하는 방법을 나타내는 login.conf 파일:

PetShopApplication { com.sun.security.auth.module.LdapLoginModule 충분, com.foo.SmartcardLoginModule 필수 구성 요소; com.sun.security.auth.module.UnixLoginModule 필수 디버그=true; }

응용 프로그램 인터페이스

애플리케이션 개발자에게 JAAS는 다음을 제공하는 표준 라이브러리다.

  • ID(Principal) 및 자격 증명 집합(Subject)의 표현
  • 사용자 이름 및 암호와 같은 질문을 위해 응용 프로그램 콜백을 호출하는 로그인 서비스.제목을 반환함
  • 관리자의 허가를 받았는지 여부를 테스트하는 서비스

보안 시스템 통합

보안 시스템 통합업체를 위해 JAAS는 다음과 같은 인터페이스를 제공한다.

  • 애플리케이션에 ID 네임스페이스를 제공하려면
  • 스레드에 자격 증명을 첨부하려면(제목)
  • 로그인 모듈 개발용.모듈이 콜백을 호출하여 사용자를 쿼리하고 응답 내용을 확인한 후 제목을 생성하십시오.

로그인 모듈

로그인 모듈은 주로 인증보다는 인증에 관심을 가지며 JAAS의 널리 사용되는 구성요소를 형성한다.다음을 구현하려면 로그인 모듈이 필요함javax.security.auth.spi.LoginModule인터페이스, 다음과 같은 방법을 지정한다.

참고: ASubject로그인을 시도하는 사용자.

  • 초기화:로그인 모듈을 초기화하기 위한 코드(일반적으로 로그인 모듈의 해당 필드에 전달된 매개 변수를 저장함)Class.
  • 로그인: 실제로 다음을 통해 제공된 자격 증명 확인Object을 구현하는javax.security.auth.Callback인터페이스(예: 데이터베이스에 대한 검사).이 방법은 사용자에게 로그인 및 비밀번호를 요구하거나 이전에 얻은 세부사항을 사용할 수 있다.여기서 유의할 점은 유효하지 않은 자격 증명이 제공될 경우javax.security.auth.login.FailedLoginExceptionfalse를 반환하는 것보다 false를 반환해야 하며, 이는 이 로그인 모듈을 무시해야 하며, 잠재적으로 인증이 성공할 수 있음을 의미한다.
  • commit: 대상의 ID가 확인되었으므로 이 방법의 코드는Principal그리고Groups(iiii) 성공적으로 인증된 제목의 경우.이 방법은 Java EE 애플리케이션 서버들이 종종 이들 사이의 관계를 예상하기 때문에 엔터프라이즈 애플리케이션에서 신중하게 작성되어야 한다.Principal그리고Group일정한 방법으로 설정되어야 할 것이 방법은 a를 던져야 한다.javax.security.auth.login.FailedLoginException인증이 실패하는 경우(예: 사용자가 잘못된 로그인 또는 암호를 지정함)
  • abort: 인증 프로세스 자체가 실패할 경우 호출됨.이 메서드가 false를 반환하면 이 로그인 모듈은 무시된다.
  • 로그아웃: 로그아웃 시 실행해야 하는 코드(예: 로그아웃 시 실행해야 하는 코드)Principal처음부터Subject또는 웹 세션을 무효화할 수 있음).

로그인 모듈은 특정 SSO 프로토콜/프레임워크(예: SAML, OpenID, SPNEGO)를 통해 SSO를 제공할 수 있으며 하드웨어 보안 토큰(예: USB 토큰)의 존재 여부를 확인할 수 있다.n-tier 애플리케이션에서는LoginModules클라이언트 쪽과 서버 쪽 모두에 존재할 수 있다.

LoginModule(로그인모듈)javax.security.auth.spi.LoginModule)

로그인 모듈은 이 인터페이스를 구현하여 작성되며 인증을 위한 실제 코드가 포함되어 있다.다양한 메커니즘을 사용하여 사용자 자격 증명을 인증할 수 있다.이 코드는 데이터베이스에서 암호를 검색하여 모듈에 제공된 암호와 비교할 수 있다.

LoginContext(로그인 컨텍스트)javax.security.auth.login.LoginContext)

로그인 컨텍스트는 주체 생성으로 인증 과정을 시작하는 JAAS 프레임워크의 핵심이다.인증 절차가 진행됨에 따라, 주체는 추가 처리를 위한 다양한 주체 및 자격 증명으로 채워진다.

제목(목격)javax.security.auth.Subject)

대상은 단일 사용자, 엔티티 또는 시스템(즉, 클라이언트)을 나타내며 인증을 요청하는 것이다.

본인().java.security.Principal)

교장은 주제의 얼굴을 나타낸다.피사체의 특징이나 속성을 캡슐화한다.과목에는 여러 개의 주체가 포함될 수 있다.

자격 증명

자격증은 고려 중인 주제에 관한 정보의 일부에 불과하다.그것들은 계좌번호, 비밀번호, 인증서 등이 될 수 있다.자격 증명은 몇 가지 중요한 정보를 나타내기 때문에, 추가 인터페이스는 적절하고 안전한 자격 증명을 만드는 데 유용할 수 있다.javax.security.auth.Destroyable그리고javax.security.auth.Refreshable.사용자의 인증확인이 성공한 후 주체가 일부 중요한 서비스를 실행할 수 있는 비밀 ID(자격 증명 형식)로 제목을 채웠지만 특정 시간 후에 자격 증명을 제거해야 한다고 가정해 보십시오.그런 경우라면, 그 방법을 실행해 보는 것이 좋을 것이다.Destroyable접점 Refreshable자격 증명의 유효 기간 범위가 제한된 경우 유용할 수 있다.

참고 항목

참조

  1. ^ a b Theodore J. Shrader; Bruce A. Rich; Anthony J. Nadalin (2000). Java and internet security. p. 152. ISBN 9780595135004.
  2. ^ "Java Authentication and Authorization Service (JAAS) Reference Guide". oracle.com. Oracle Corporation. Archived from the original on 26 September 2012. Retrieved 22 May 2012.

외부 링크