#### JDBC

JDBC(Java Database Connectivity) 인증 모듈은 OpenSSO가 JDBC 사용 드라이버를 제공하는 SQL(Structured Query Language) 데이터베이스를 통해 사용자를 인증하도록 합니다. SQL 데이터베이스는 JDBC 드라이버나 JNDI 연결 풀을 통해 직접 연결할 수 있습니다. JDBC 속성은 영역 속성입니다. 속성은 다음과 같습니다.

- 연결 유형

- 연결 풀 JNDI 이름

- JDBC 드라이버

- JDBC URL

- 이 사용자를 데이터베이스에 연결

- 데이터베이스 연결에 사용할 비밀번호

- 데이터베이스 연결에 사용할 비밀번호(확인)

- 비밀번호 열 문자열

- 준비된 명령문

- 비밀번호 구문 변환에 사용할 클래스

- 인증 수준

##### 연결 유형

JNDI(Java Naming and Directory Interface) 연결 풀이나 JDBC 드라이버를 사용하여 SQL 데이터베이스에 대한 연결 유형을 지정합니다. 옵션은 다음과 같습니다.

- JDNI를 통해 연결 풀 검색

- 비영구 JDBC 연결

JNDI 연결 풀은 기본 웹 컨테이너에서 구성을 사용합니다.

##### 연결 풀 JNDI 이름

연결 유형에서 JNDI를 선택하면 이 필드가 연결 풀 이름을 지정합니다. JDBC 인증에서 웹 컨테이너가 제공하는 JNDI 연결 풀을 사용하므로 JNDI 연결 풀의 설정이 다른 웹 컨테이너와 다를 수 있습니다. 여기에 대한 예는 OpenSSO 관리 설명서를 참조하십시오.

##### JDBC 드라이버

연결 유형에서 JDBC를 선택한 경우 이 필드에서 SQL 데이터베이스에서 제공된 JDBC 드라이버를 지정합니다. 예를 들면 `com.mysql.jdbc.Driver`입니다.

##### JDBC URL

연결 유형에서 JDBC를 선택한 경우 데이터베이스 URL을 지정합니다. 예를 들어 mySQL의 URL은 `jdbc.mysql://hostname:port/databaseName`입니다.

##### 이 사용자를 데이터베이스에 연결

JDBC 연결을 위해 데이터베이스에 연결할 사용자 이름을 지정합니다.

##### 데이터베이스 연결에 사용할 비밀번호

데이터베이스에 연결할 사용자에서 지정한 사용자의 비밀번호를 정의합니다.

##### 데이터베이스 연결에 사용할 비밀번호(확인)

비밀번호를 확인합니다.

##### 비밀번호 열 문자열

SQL 데이터베이스의 비밀번호 열 이름을 지정합니다.

##### 준비된 명령문

로그인한 사용자의 비밀번호를 검색하는 SQL 문을 지정합니다. 예를 들면 다음과 같습니다.

     select Password from Employees where USERNAME = ?

##### 비밀번호 구문 변환에 사용할 클래스

비밀번호를 비교하기 위해 데이터베이스에서 검색한 비밀번호를 사용자 입력 형식으로 변환하는 클래스 이름을 지정합니다. 이 클래스는 반드시 `JDBCPasswordSyntaxTransform` 인터페이스를 구현해야 합니다.

##### 인증 수준

인증 수준은 각 인증 방법에 대해 별도로 설정됩니다. 이 값은 인증 기법을 어느 정도 신뢰할 수 있는지를 나타냅니다. 사용자가 인증되고 나면 해당 세션의 SSO 토큰에 이 값이 저장됩니다. 사용자가 액세스하려는 응용 프로그램에 이 SSO 토큰이 제공되면 응용 프로그램은 저장된 값을 사용하여 해당 수준이 사용자에게 액세스를 허가할 만큼 충분한지 여부를 확인합니다. SSO 토큰에 저장된 인증 수준이 필요한 최소값을 충족하지 않을 경우 응용 프로그램은 더 높은 인증 수준을 가진 서비스를 통해 다시 인증을 받으라는 메시지를 사용자에게 표시할 수 있습니다. 기본값은 0입니다.

주 – 지정된 인증 수준이 없을 경우 SSO 토큰에는 핵심 인증 속성인 기본 인증 수준에 지정된 값이 저장됩니다.