database.sarang.net
UserID
Passwd
Database
ㆍDBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
DBMS Tutorials 261 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 261
mod_auth_external 을 이용하여 아파치 인증에 오라클 이용하기
작성자
정재익(advance)
작성일
2002-01-06 13:28
조회수
4,770

아파치 웹서버에서 Mod_auth_external을 이용하여 인증하기. ( 오라클 DB와 연동 )

 

이 글은 김태양님의 제공하에 http://www.apache.kr.net 에 등록되어 졌습니다.

 

* 오라클이 기본으로 설치되었다고 간주하고 , 아파치 웹서버만 새로 설치하는 것으로 진행하겠습니다

 

1. Mod_Auth_External를 다운로드 받는다.

 

http://www.wwnet.net/~janc/mod_auth_external.html

 

2. 특정 디렉토리에 압축된 파일을 푼다. ( 예제 /opt/mod_auth )

 

3. 아파치 웹서버 소스 디렉토리로 이동한 후 configure를 다음과 같이 한다.

 

./configure --enable-rule=SHARED_CORE --enable-module=so --prefix=/opt/apache --add-module=/opt/src/mod_auth_external.c *

 

* 경우에 따라 디렉토리가 달라질 수도 있다.

 

4. make

 

5. make install

 

6. 사용자 인증을 하기 위해 proc( 다른것을 이용하여도 상관 없음 )를 이용한 인증 프로그램을 제작한다.

 

예제 Source

 

#include <stdio.h>

#define USERNAME "xxxt"

#define PASSWORD "xxxt"

#define DBSTRING "xxx"

 

EXEC SQL BEGIN DECLARE SECTION;

 

char *username = USERNAME;

char *password = PASSWORD;

char *dbstring = DBSTRING;

char *szid , *szpw;// id와 password를 받을 변수를 설정

int i_count=0; // 해당 id와 password가 맞는지 확인하는 flag

 

EXEC SQL END DECLARE SECTION;

EXEC SQL INCLUDE sqlca;

 

/*/////////////////////////////////////////////////////*/

 

void sqlerror();

 

int cgiMain ( void ) {

/*//////////////////Set Environment///////////////////*/

 

putenv("ORACLE_HOME=/oracle/home");

putenv("ORACLE_SID=xxx");

putenv("NLS_LANG=American_America.ko16ksc5601");

putenv("LD_LIBRARY_PATH=/oracle/homelib");

 

EXEC SQL WHENEVER SQLERROR DO sqlerror();

EXEC ORACLE OPTION(RELEASE_CURSOR=YES);

EXEC ORACLE OPTION(HOLD_CURSOR=NO);

EXEC SQL CONNECT :username IDENTIFIED BY :password USING :dbstring; // 오라클 접속

 

/*///////// Get Parameter //////////////////////////*/

 

szid = getenv("HTTP_EXTAUTH_USER"); // user id를 입력받는다.

szpw = getenv("HTTP_EXTAUTH_PASS"); // user password 를 입력받는다.

 

EXEC SQL SELECT count(*) INTO :i_count FROM neonet_users WHERE id = :szid and passwd = :szpw; // id,password가 맞는지 확인

 

if ( i_count != 0 ) return 0; /* 인증 통과 */

else return -1; /* 인증 실패 */

}

 

void sqlerror() {

 

EXEC SQL WHENEVER SQLERROR CONTINUE;

fprintf(cgiOut, "ORACLE Error detected: \n");

fprintf(cgiOut, "% .70s \n", sqlca.sqlerrm.sqlerrmc);

EXEC SQL ROLLBACK WORK RELEASE; exit(1);

}

 

7. 완성된 프로그램 (auth )을 컴파일 한 후 특정 디렉토리에 옮겨놓는다. ( 예제 /opt/apache/bin )

 

8. 아파치에서 basic auth를 이용하여 디렉토리 인증을 하기 위해서 다음과 같이 설정을 한다.

 

Httpd.conf파일을 연 후

 

AddExternalAuth auth /opt/apache/bin/auth

 

위와 같이 auth라는 이름으로 /opt/apache/bin/auth실행 파일을 지정한 후

 

<Directory /opt/apache/htdocs/test/>

AuthType Basic

AuthExternal auth

AuthName "ID와 PASSWORD를 입력하여 주세요"

require valid-user

</Directory>

 

/opt/apache/htdocs/test라는 디렉토리를 인증하기 위해서 위와 같이 설정을 하면 인증을 수행할 수 있다.

디렉토리가 아니고 특정 파일만을 인증하고 싶을경우에는 다음과 같이 하면 된다. ( /opt/apache/htdocs/test/test.html 을 인증하려고 한다. )

 

<Location /test/test.html>

AuthType Basic

AuthExternal auth

AuthName "ID와 PASSWORD를 입력하여 주세요"

require valid-user

</Location>

 

9. 설정을 다 한후 웹서버를 재가동 하면 된다.

 

기타 문의 사항은 http://henry.neonet.co.kr 에 오셔서 글을 올려주세요.

[Top]
No.
제목
작성자
작성일
조회
426Java Language 완전정복
정재익
2002-07-12
4810
301SQL tutorial
정재익
2002-01-19
6422
262DB(Oracle8.1.6, Mysql)+PHP+Zend Optimizer+APACHE+Tomcat(jsp,servlet)+IMAP+gd 설치하기
정재익
2002-01-06
4684
261mod_auth_external 을 이용하여 아파치 인증에 오라클 이용하기
정재익
2002-01-06
4770
246객체지향 DBMS 란?
정재익
2002-01-04
11998
229OLAP &amp; OLTP - definition of term
정재익
2002-01-03
6468
213FreeTDS 사용법에 대한 글 [1]
정재익
2001-12-31
9444
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.045초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다