Computer >> 컴퓨터 >  >> 프로그래밍 >> 데이터베이스

Oracle E-Business Suite에 Oracle Access Manager SSO 구성하기

이 글에서는 WebGate 에이전트를 사용하여 Oracle® Access Manager(OAM) 11g를 Oracle E-Business Suite(EBS)와 통합하는 방법을 단계별로 소개합니다.

Oracle Single Sign-On Server 10gR3 버전에서 업그레이드하는 경우에는 mod_osso 에이전트를 통해 OAM과 EBS를 통합할 수도 있지만, 이 글에서는 해당 방식은 다루지 않습니다.

WebGate를 활용한 인증 개요

WebGate는 HTTP 요청을 가로채어 OAM 서버로 전달함으로써 리소스 접근 방식을 판단하고, 필요할 경우 현재 사용자를 인증하는 OAM의 핵심 구성 요소입니다. 이미 환경에 OAM이 배포되어 있다면 기존 WebGate를 그대로 활용할 수 있습니다.

다음 그림은 WebGate와 EBS AccessGate의 통합 구조를 보여줍니다.

Oracle E-Business Suite에 Oracle Access Manager SSO 구성하기

이미지 출처: https://docs.oracle.com/cd/E26401_01/doc.122/e22952/T156458T580814.htm

인증되지 않은 사용자가 보호된 EBS 리소스에 접근하려고 하면, EBS AccessGate 애플리케이션으로 안내됩니다. EBS AccessGate는 SSO(Single Sign-On) 사용자를 EBS 사용자와 매핑하고 해당 사용자의 EBS 세션을 생성하는 역할을 담당하는 Java EE(Enterprise Edition) 애플리케이션입니다. AccessGate는 WebLogic Server 인스턴스에 배포되며 EBS와는 별도로 운영됩니다.

OAM 서버는 EBS AccessGate를 보호하며, 인증 요청을 WebGate가 설치된 별도의 HTTP 서버로 재라우팅합니다.

사용자가 OAM에 의해 최초 인증을 마치면, EBS AccessGate가 리소스 요청과 OAM 서버가 반환한 자격 증명을 처리합니다.

OAM 서버의 자격 증명이 유효하면 WebGate는 EBS 데이터베이스에 연결하여 Oracle Directory Services 사용자를 EBS 사용자와 연결합니다. 만약 EBS가 Oracle Directory Services에서 연결된 사용자를 찾지 못하면, 사용자를 연결(Linking) 페이지로 리디렉션하여 미연결 상태의 Oracle Directory Services 계정을 올바른 EBS 사용자 이름에 매핑하도록 안내합니다. 매핑이 완료된 후 세션이 유효하다면 WebGate는 EBS 리소스를 사용자에게 직접 반환합니다.

이어지는 섹션에서는 클론(Clone) 작업 이후 EBS 12.2.5 버전에서 OAM SSO를 설정하는 절차를 설명합니다.

파트 1: EBS에서 OAM SSO 설정

1.1 모든 애플리케이션 서비스 종료

Run 파일 시스템 ENV를 소싱합니다:

$ . ./EBSapps.env run

다음 명령을 실행하여 모든 노드의 모든 서비스를 중지하고, 기본(Primary) 노드에서는 AdminServer만 시작합니다:

$ ./adadminsrvctl.sh start  # Admin 서버만 시작

1.2 EBS에서 OID 등록 해제

Run 파일 시스템 ENV를 소싱한 후 아래 명령으로 OID 등록을 해제합니다:

. ./EBSapps.env run
$FND_TOP/bin/txkrun.pl \
-script=SetSSOReg \
-deregisteroid=yes \
-appspass=<apps_password> \
-ldaphost=<oid_server> \
-ldapport=13060 \
-oidadminuserpass="<OID_Admin_password>"

1.3 EBS에서 SSO 참조 제거

Run 파일 시스템 ENV를 소싱하고 다음 명령을 실행합니다:

$FND_TOP/bin/txkrun.pl -script=SetSSOReg -removereferences=yes

APPS 비밀번호 입력 후 SQL 스크립트를 실행합니다:

sqlplus -s apps/<appspasswd> @$FND_TOP/patch/115/sql/fndssouu.sql %

1.4 Managed Server 삭제

WebLogic 콘솔에 로그인하여 다음 Managed Server들이 구성되어 있는지 확인합니다:

  • oaea_server1
  • oaea_server2

구성되어 있다면 다음 명령으로 삭제합니다:

. ./EBSapps.env run

EBS 애플리케이션 노드 1에서 실행:

perl $AD_TOP/patch/115/bin/adProvisionEBS.pl ebs-delete-managedserver \
-contextfile=$CONTEXT_FILE -managedsrvname=oaea_server1 \
-servicetype=oaea -logfile=/usr/tmp/delMS_server.log

EBS 애플리케이션 노드 1 (외부 노드): 외부 노드가 존재한다면 다음 명령을 실행합니다:

perl $AD_TOP/patch/115/bin/adProvisionEBS.pl ebs-delete-managedserver \
-contextfile=$CONTEXT_FILE -managedsrvname=oaea_server2 \
-servicetype=oaea -logfile=/usr/tmp/delMS_server.log

참고: WebLogic 콘솔에 로그인하여 oaea_server가 남아 있지 않은지 반드시 확인하세요. 남아 있다면 위 명령으로 삭제한 후 진행합니다.

1.5 데이터 소스(OAEADatasource) 삭제

WebLogic 콘솔에 로그인하여 데이터 소스와 AccessGate 배포를 삭제합니다.

콘솔에서 Lock & EditHomeData SourcesOAEADatasource(Delete)Activate Changes 순서로 선택합니다.

1.4 단계에서 AccessGate 배포가 함께 제거되지만, 잔여 항목이 있다면 수동으로 삭제합니다.

1.6 Run 파일 시스템 컨텍스트 파일 동기화 및 모든 노드 구성 갱신

각 노드에서 Run 파일 시스템 ENV를 소싱하고 다음 명령을 실행합니다:

perl $AD_TOP/bin/adSyncContext.pl contextfile=$CONTEXT_FILE

1.7 PATCH 파일 시스템의 Managed Server 삭제

PATCH 파일 시스템 ENV를 소싱한 후, WebLogic 콘솔에 로그인하여 다음 Managed Server들을 확인합니다:

  • oaea_server1
  • oaea_server2

구성되어 있다면 다음 명령으로 제거합니다:

. ./EBSapps.env patch

PATCH Admin 서버를 시작합니다:

$ADMIN_SCRIPTS_HOME/adadminsrvctl.sh start forcepatchfs

EBS 애플리케이션 노드 1에서 실행:

perl $AD_TOP/patch/115/bin/adProvisionEBS.pl ebs-delete-managedserver \
-contextfile=$CONTEXT_FILE -managedsrvname=oaea_server1 \
-servicetype=oaea -logfile=/usr/tmp/delMS_server.log

EBS 애플리케이션 노드 1 (외부 노드): 외부 노드가 존재한다면 다음 명령을 실행합니다:

perl $AD_TOP/patch/115/bin/adProvisionEBS.pl ebs-delete-managedserver \
-contextfile=$CONTEXT_FILE -managedsrvname=oaea_server2 \
-servicetype=oaea -logfile=/usr/tmp/delMS_server.log

참고: WebLogic 콘솔에 로그인하여 oaea_server가 남아 있지 않은지 확인하고, 남아 있다면 삭제 후 진행합니다.

1.8 PATCH 파일 시스템에서 데이터 소스 "OAEADatasource" 삭제

PATCH WebLogic 콘솔에 로그인하여 데이터 소스와 AccessGate 배포를 삭제합니다.

콘솔에서 Lock & EditHomeData SourcesOAEADatasource(Delete)Activate Changes 순서로 선택합니다.

앞선 단계에서 AccessGate 배포가 제거되었으나 잔여 항목이 있다면 수동으로 삭제합니다.

1.9 PATCH 파일 시스템 컨텍스트 파일을 데이터베이스에 업로드

다음 명령을 실행합니다:

. ./EBSapps.env patch
$ $ADJVAPRG oracle.apps.ad.autoconfig.oam.CtxSynchronizer action=upload \
contextfile=<patch context file의 전체 경로> logfile=/tmp/patchctxupload.log

1.10 PATCH 파일 시스템의 Admin 서버 종료

PATCH 파일 시스템 ENV를 소싱하고 Admin 서버를 종료합니다:

$ADMIN_SCRIPTS_HOME/adadminsrvctl.sh stop forcepatchfs

파트 2: EBS와 OAM 통합 및 SSO 활성화

2.1 oaea_server Managed Server 구성

Run ENV 파일을 소싱하고 각 노드에서 다음 명령을 실행합니다:

. ./EBSapps.env run

EBS 애플리케이션 노드 1에서 실행:

perl $AD_TOP/patch/115/bin/adProvisionEBS.pl ebs-create-oaea_resources \
-contextfile=$CONTEXT_FILE \
-deployApps=accessgate \
-SSOServerURL=https://xxxxxxxxx.com:8131 \
-OAMLogoutURL=https://xxxxxxxx.com/oam/server/logout?end_url=https://xxxxxx.com/oamwebsso/logout-success.jsp \
-managedsrvname=oaea_server1 \
-managedsrvport=6888 \
-logfile=/usr/tmp/deployaccessgate1_Time1.log

프롬프트가 표시되면 APPS 비밀번호와 WebLogic 비밀번호를 입력합니다.

Managed Server에는 6888 포트를 사용합니다. 로그에 오류가 없는지 확인하고, 모든 Managed Server에 대해 로그가 다음 메시지로 끝나는지 검증합니다:

"Shutdown the managed server oaea_server1 successfully"

EBS 애플리케이션 노드 2 (외부 노드)에서 실행:

perl $AD_TOP/patch/115/bin/adProvisionEBS.pl ebs-create-oaea_resources \
-contextfile=$CONTEXT_FILE \
-deployApps=accessgate \
-SSOServerURL=https://xxxxxxxxx.com:8131 \
-OAMLogoutURL=https://xxxxxxxx.com/oam/server/logout?end_url=https://xxxxxx.com/oamwebsso/logout-success.jsp \
-managedsrvname=oaea_server2 \
-managedsrvport=6888 \
-logfile=/usr/tmp/deployaccessgate1_Time1.log

2.2 OHS 서버에 AccessGate 정보 추가

EBS 애플리케이션 노드 1과 2에서 다음 명령을 실행합니다:

$ perl $FND_TOP/patch/115/bin/txkSetAppsConf.pl -contextfile=$CONTEXT_FILE \
-configoption=addMS -accessgate=<ebs-node1.com>:6888

$ perl $FND_TOP/patch/115/bin/txkSetAppsConf.pl -contextfile=$CONTEXT_FILE \
-configoption=removeMS -accessgate=<ext_ebs-node1.com>:6888

EBS 애플리케이션 노드 3과 4 (외부 노드)에서 실행:

$ perl $FND_TOP/patch/115/bin/txkSetAppsConf.pl -contextfile=$CONTEXT_FILE \
-configoption=addMS -accessgate=<ebs_node1.com>:6888

$ perl $FND_TOP/patch/115/bin/txkSetAppsConf.pl -contextfile=$CONTEXT_FILE \
-configoption=removeMS -accessgate=<ebs_node1.com>:6888

Run 파일 시스템의 $INST_TOP/appl/admin/oaea_wls.properties 파일을 EBS 애플리케이션 노드 1과 외부 노드 1의 PATCH 파일 시스템으로 복사합니다.

2.3 OAM에 EBS 등록

EBS 애플리케이션 노드 1에서 실행:

. ./EBSapps.env run
perl $FND_TOP/bin/txkrun.pl -script=SetOAMReg -registeroam=yes \
-oamHost=https://XXXX.com:8130 \
-oamUserName=ebs_admin \
-ldapUrl=ldap://XXXXX.com:13060 \
-oidUserName=cn=orcladmin \
-ldapSearchBase=cn=Users,dc=XXXXX,dc=com \
-ldapGroupSearchBase=cn=Groups,dc=XXXXX,dc=com \
-authScheme=XXXXXFormsAuthNScheme \
-authSchemeMode=reference \
-policyUpdate=No

OAM 콘솔 비밀번호와 APPS 비밀번호를 순서대로 입력합니다.

EBS 애플리케이션 외부 노드에서도 동일한 명령을 실행하고, 마찬가지로 OAM 콘솔 비밀번호와 APPS 비밀번호를 입력합니다.

2.4 백업에서 WebGate 에이전트 파일 복사

RUN ENV 파일을 소싱하고 다음 명령을 실행합니다:

. ./EBSapps.env run

config 폴더를 config_old로 이동합니다:

mv $FMW_HOME/webtier/instances/EBS_web_<INSTANCE_NAME>_OHS1/config/OHS/EBS_web_<INSTANCE_NAME>/webgate/config $FMW_HOME/webtier/instances/EBS_web_<INSTANCE_NAME>_OHS1/config/OHS/EBS_web_<INSTANCE_NAME>/webgate/config_old
mv $FMW_HOME/webtier/instances/EBS_web_<INSTANCE_NAME>_OHS2/config/OHS/EBS_web_<INSTANCE_NAME>/webgate/config $FMW_HOME/webtier/instances/EBS_web_<INSTANCE_NAME>_OHS2/config/OHS/EBS_web_<INSTANCE_NAME>/webgate/config_old

백업본에서 WebGate 에이전트 파일을 복원합니다. 필요한 경우 OAM 관리자에게 WebGate 에이전트 파일을 요청하세요.

내부(Internal):

$ cd /xxx/xxxxx/OAM/XXXXX/agent/internal
$ cp -rf config $FMW_HOME/webtier/instances/EBS_web_<INSTANCE_NAME>_OHS1/config/OHS/EBS_web_<INSTANCE_NAME>/webgate

외부(External):

$ cd /xxx/xxxxx/OAM/XXXXX/agent/external
$ cp -rf config $FMW_HOME/webtier/instances/EBS_web_<INSTANCE_NAME>_OHS2/config/OHS/EBS_web_<INSTANCE_NAME>/webgate

2.5 OID 등록

. ./EBSapps.env run
$FND_TOP/bin/txkrun.pl \
-script=SetSSOReg \
-registeroid=yes \
-ldaphost=XXXXX \
-ldapport=13060 \
-provisiontype=4

LDAP 디렉터리 관리자(orcladmin) 바인드 비밀번호, 애플리케이션 인스턴스 등록용 인스턴스 비밀번호, Oracle E-Business Suite apps 데이터베이스 사용자 비밀번호를 차례로 입력합니다.

2.6 SSO 사후(Post-SSO) 작업 실행

RUN ENV를 소싱하고 다음 명령을 실행합니다:

. ./EBSapps.env run
$ sqlplus apps/<APPSPASSWD>
SQL> execute fnd_oid_plug.setPlugin(p_default_user_repository =>'cn=Users,dc=XXXX,dc=com');
SQL> commit;

애플리케이션 노드 1을 시작하고, 환경 동작을 조정하기 위해 다음 EBS 프로필 옵션(Profile Options)을 설정합니다:

APPS_AUTH_AGENT        : /accessgate
APPS_SSO_LDAP_SYNC     : N
APPS_SSO_AUTO_LINK_USER : Y
APPS_SSO               : SSWA_SSO
APPS_SSO_LINK_SAME_NAMES : Y
APPS_SSO_LOCAL_LOGIN   : BOTH

애플리케이션 노드 1을 종료한 후 기본 노드에서 autoconfig를 실행합니다.

2.7 EBS와의 SSO 검증

. ./EBSapps.env run

기본 노드의 Run 파일 시스템에서만 모든 서비스를 시작합니다.

로그인 화면에 접속하여 확인합니다 — 내부 URL: https://XXXXXX.com/

참고: SSO 페이지에 처음 접속하면 홈 페이지 오류가 표시될 수 있습니다.

아래 명령을 실행한 후 다시 시도합니다:

$ ./adopmnctl.sh stopall
$ ./adopmnctl.sh startall

위 명령으로 서비스를 재시작해도 문제가 지속되면 다른 브라우저에서 시도해 볼 수 있습니다.

정상이라면 OAM SSO 페이지로 리디렉션됩니다. 유효한 OID 사용자 자격 증명으로 로그인하면, 인증 성공 후 EBS 홈 페이지로 이동합니다.

SSO 페이지 접근이 확인되면 모든 노드의 서비스를 시작하고 인스턴스를 검증합니다. 또한 외부 URL(https://XXXXXX.com)도 확인합니다.

SYSADMIN으로 로그인하려면 다음 URL을 사용합니다:

백도어 URL — https://XXXXXX.com/OA_HTML/AppsLocalLogin.jsp

2.8 fs_clone 수행

검증이 정상적으로 완료되면, 변경 사항을 PATCH 파일 시스템에 동기화하기 위해 다음 명령을 실행합니다:

$ adop phase=fs_clone

결론

이 글에서는 WebGate 에이전트를 사용하여 OAM과 EBS를 통합하는 데 필요한 전체 절차를 안내했습니다. 위 단계를 완료하면 SSO 자격 증명으로 EBS에 로그인할 수 있습니다.

궁금한 점이나 의견이 있다면 피드백 탭을 이용해 주세요.

전문가의 관리·운영·구성 서비스로 환경 최적화

Rackspace의 애플리케이션 서비스 (RAS) 전문가들은 폭넓은 애플리케이션 포트폴리오 전반에서 다음과 같은 전문 및 관리형 서비스를 제공합니다:

  • eCommerce 및 디지털 경험 플랫폼
  • ERP(Enterprise Resource Planning)
  • 비즈니스 인텔리전스(BI)
  • Salesforce CRM(Customer Relationship Management)
  • 데이터베이스
  • 이메일 호스팅 및 생산성 솔루션

저희가 제공하는 것:

  • 편견 없는 전문성: 현대화 여정을 단순화하고, 즉각적인 가치를 실현하는 역량에 집중하여 안내합니다.
  • Fanatical Experience™: 프로세스 우선, 기술은 그 다음®이라는 철학과 전담 기술 지원을 결합하여 종합적인 솔루션을 제공합니다.
  • 타의 추종을 불허하는 포트폴리오: 폭넓은 클라우드 경험을 바탕으로 적절한 기술을 올바른 클라우드에 선택·배포하도록 돕습니다.
  • 민첩한 서비스 제공: 고객의 여정 어느 단계에서든 맞춤 지원하며, 저희의 성공을 고객의 성공과 일치시킵니다.

지금 바로 채팅으로 문의하여 시작하세요.