일반적인 문제 해결

E-Business Suite Asserter를 사용하여 Oracle E-Business Suite를 Oracle Identity Cloud Service와 통합할 때 발생할 수 있는 몇 가지 오류입니다.

권한 부족 오류 해결

Oracle Identity Cloud Service 인증 후 Oracle E-Business Suite에 대한 액세스 권한을 얻는 대신 사용자가 Oracle E-Business Suite로 다시 재지정되고 오류 메시지 "현재 작업에 대한 권한이 부족합니다."가 표시되고 사용자에게 다시 사인인하라는 메시지가 표시됩니다.

일반적으로 Oracle E-Business Suite 응용 프로그램에서 이 오류를 발생시키면 쿠키가 잘못된 도메인으로 설정됩니다. 이를 확인하려면 E-Business Suite Asserter 디버그 로그(<HOME DIR>/ebsasserter.log)를 확인하십시오. E-Business Suite Asserter 디버그 로그에 sessionCookieDomain의 값이 잘못되었음이 표시됩니다. CookieDomain.oracle.com로 설정되었습니다.

Aug 22, 2018 2:26:34 PM oracle.apps.fnd.ext.common.EBiz init
FINE: Ebiz init(): sessionCookieDomain =.oracle.com ; protocol=https:; ssoCookieName= ORASSO_AUTH_HINT

ICX_PARAMETERS.SESSION_COOKIE_DOMAIN은 어떤 종류의 값으로도 설정하지 않아야 합니다. ICX_PARAMETERS에서 SESSION_COOKIE_DOMAIN 설정을 업데이트해야 합니다.

  1. ICX_PARAMETERS에서 SESSION_COOKIE_DOMAIN 값을 업데이트합니다.
    SQL> select SESSION_COOKIE_DOMAIN from ICX_PARAMETERS;
    
    SESSION_COOKIE_DOMAIN
    ------------------------------
    .oracle.com
  2. ICX_PARAMETERS에서 session_cookie_domainNULL로 설정합니다.
    update ICX_PARAMETERS set SESSION_COOKIE_DOMAIN = NULL;
    commit;
  3. 모든 서비스를 다시 시작합니다.
  4. 문제를 다시 테스트합니다.

로그아웃하는 동안 내부 서버 오류 해결

Oracle E-Business Suite에서 로그아웃하면 브라우저에서 오류 메시지 "내부 서버 오류"가 발생합니다.

이 문제는 Oracle E-Business Suite측에서 이전 버전의 AppsLogoutRedirect.java로 인해 발생했습니다.

Oracle E-Business Suite측에서 AppsLogoutRedirect.java의 헤더를 확인합니다.

adident Header $JAVA_TOP/oracle/apps/fnd/sso/AppsLogoutRedirect.class
$Header AppsLogoutRedirect.java 120.10.12010000.7 2010/01/19 20:18:52 rsantis ship $

이 문제를 해결하려면 최신 Oracle E-Business Suite 릴리스 12 Critical Patch Update Jan 2013 이상을 적용해야 합니다. 이 중요한 패치 업데이트를 통해 AppsLogoutRedirect.javaAPPS_SSOAPPS_AUTH_AGENT 프로파일을 활용할 수 있습니다. 이 패치를 적용할 모든 세부 정보는 지식 문서(2018년 7월)(문서 ID 2379675.1)를 확인하십시오.

시간 동기화 문제 해결

E-Business Suite Asserter 애플리케이션 URL에 액세스하는 동안 Oracle E-Business Suite 애플리케이션 로그인 플로우에서 내부 서버 오류가 발생했습니다.

HTTP 헤더 추적은 다음과 같습니다.

GET https://xxxxxxxxxxxxxxxxxx.oracle.com:7002/ebs/response?code=AQIDBAVcZbun_M5qU4-t9LUCYDjAOgWYiDOrf1Kb5ndbWAEYd05C-uxDfSwP8Ejfn51WT-gTuYj6bLFFYAFHQEqgYy26MTEgRU5DUllQZZIIFFVElPTl9LRVkxNCB7djF9NCAFFFABCDEF= HTTP/1.1

Error 500--Internal Server Error
From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
10.5.1 500 Internal Server Error
The server encountered an unexpected condition which prevented it from fulfilling the request

E-Business Suite Asserter 도메인 로그는 다음과 같습니다.

####<Sep 23, 2018 6:53:31,380 PM AST> <Error> <HTTP> <ebshost01.oracle.com>
<AdminServer> <[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-
tuning)'> <<WLS Kernel>> <> <0b38f1ae-a3cb-48f6-80d9-00e3f3bdb263-000000a0>
<1537718011380> <[severity-value: 8] [rif: 0] [partition-id: 0] [partition-name:
DOMAIN]> <BEA-101020> <[ServletContext@44159983[app:ebs module:ebs.war
path:null spec-version:3.1]] Servelet failed with an Exception

E-Business Suite Asserter 로그는 다음과 같습니다.

FINE: validateToken return with result {"user_result":"America\/New_York",
"at_hash":"1A3gT4BT0WoWCTLE3IFa5A","sub":"john.doe@oracle.com","user_locale":"en",
"idp_name":"localIDP","idp_guid":"localIDP","a mr":["USERNAME_PASSWORD"],
"iss":"https: \/\/identity.oraclecloud.com\/","user_tenantname":"idcs-a61feab148e248508205cd98cdea4232",
"client_id":"67179f2609ab46309a75e5ca1f582a53","sid":"18ee87ea-04cf-4469-a565-48ccc763caf9",
"authn_strength":"2","azp":"67179f2609ab46309a75e5ca1f582a53","auth_time":"1536180435",
"session_exp":1537715029,"user_lang":"en","exp":1536209235,"iat":1536180437"idp_type":"LOCAL",
"tenant":"idcs-a61feab148e248508205cd98cdea4232","jti":"ed7be32b-d4e1-4e72-9868-6df142f07c6b",
"user_displayname":"John Doe","sub_mappingattr":"userName","tok_type":"IT",
"aud":["https:\/\/identity.oraclecloud.com\/","67179f2609ab46309a75e5ca1f582a53"],
"user_id":"63bf3d3f96094a66a6b7714218338116"}

session_exp1537715029로 설정됩니다. EpochConverter를 사용하여 현재 Unix 시대 시간을 사람이 읽을 수 있는 날짜 및 시간으로 변환합니다. 따라서 토큰의 만료 시간이 Sunday, September 23, 2018 3:03:49 PM GMT로 설정됩니다. 그러나 E-Business Suite Asserter 도메인 로그의 시간은 Sep 23, 2018 6:53:31,380 PM AST입니다. 그리니치 표준시(Greenwich Mean Time)는 대서양 표준시보다 4시간 앞서 있습니다. 따라서 시간 세트는 Sep 23, 2018 10:53:31 PM GMT입니다. E-Business Suite 검증기가 배치된 시스템은 Oracle Identity Cloud Service와 시간 동기화되지 않습니다. 따라서 Oracle Identity Cloud Service에서 전달한 토큰이 유효 기간을 벗어나서 "토큰 만료" 오류가 발생합니다.

E-Business Suite Asserter가 배치된 시스템의 날짜와 시간이 NTP 서버 및 Oracle Identity Cloud Service 호스트와 동기화되어 있는지 확인합니다.

Java 오류 처리 ExceptionInInitializerError

E-Business Suite Asserter 응용 프로그램 URL에 액세스하는 동안 Oracle E-Business Suite 응용 프로그램에서 java.lang.ExceptionInitializerError 오류를 발생시킵니다.

E-Business Suite Asserter 디버그 로그에는 다음 Java 오류가 표시됩니다.

<Feb 26, 2019 2:17:16,884 PM PST> <Error> <HTTP> <BEA-101020> 
<[ServletContext@2100554246[app:ebs module:ebs.war path:null spec-version:3.1]] Servlet failed with an Exception
java.lang.ExceptionInInitializerError
at com.oracle.ebs.sso.ConnectionProvider.getConnection(ConnectionProvider.java:36)
at com.oracle.ebs.sso.RequestWrapperFilter.doFilter(RequestWrapperFilter.java:34)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)

이 문제는 bridge.properties 파일의 설정이 잘못되어 발생합니다. bridge.properties 파일을 확인하고 필요한 구성이 있는지 확인합니다. 또한 bridge.properties 파일의 wallet.path에 지정된 경로가 유효한지 확인합니다.

Java 오류 처리 RuntimeException

E-Business Suite Asserter 애플리케이션 URL에 액세스하는 동안 Oracle E-Business Suite 애플리케이션에서 java.lang.RuntimeException을 발생시킵니다.

E-Business Suite Asserter 디버그 로그에는 다음 Java 오류가 표시됩니다.

<Feb 26, 2019 2:01:33,454 PM PST> <Error> <HTTP> <BEA-101020> 
<[ServletContext@1207779454[app:ebs module:ebs.war path:null spec-version:3.1]] Servlet failed with an Exception
java.lang.RuntimeException: javax.naming.NameNotFoundException: Unable to resolve 'visionDS1'. Resolved ''; remaining name 'visionDS1'
at com.oracle.ebs.sso.ConnectionProvider.getConnection(ConnectionProvider.java:42)
at com.oracle.ebs.sso.RequestWrapperFilter.doFilter(RequestWrapperFilter.java:34)

ebs.ds.name 값 집합이 WebLogic에서 생성된 데이터 소스 이름에 해당하는지 확인합니다.

딥 링크 문제 해결

Oracle Identity Cloud Service 인증 후 Oracle E-Business Suite에 대한 액세스 권한을 얻는 대신 사용자는 다시 Oracle E-Business Suite로 재지정되고 사용자에게 다시 사인인하라는 메시지를 표시합니다.

딥 링크가 작동하지 않기 때문에 발생합니다.

whitelist.urls 브리지 등록 정보가 구성되었는지 확인합니다. 문제가 지속되면 whitelist.urls 구성에 명시적으로 포트 번호를 지정합니다. 예: whitelist.urls=http://ebs.oracle.com:80/OA_HTML…. weblogic.xml 파일에서 E-Business Suite Asserter 앱의 JSESSION ID 쿠키 이름을 확인할 수도 있습니다. WebLogic에 쿠키 이름이 동일한 다른 웹 앱이 있는 경우 충돌합니다.

로그아웃 중 문제

로그아웃 프로세스 중 문제가 발견되면 bridge.properties 파일에서 Oracle Identity Cloud ServicePost Logout Redirect URL 매개변수 값과 post.logout.url 매개변수 값을 확인하십시오.

bridge.properties 파일의 post.logout.url은 선택적 매개변수이며 기본적으로 값을 제공할 필요가 없습니다. E-Business Suite Asserter가 로그아웃 프로세스를 완료한 후 E-Business Suite Asserter 애플리케이션에서 사용자 브라우저를 지정된 URL로 재지정하도록 하려면 이 매개변수를 사용합니다.

사용으로 설정된 경우 bridge.properties 파일의 post.logout.url 값이 Oracle Identity Cloud Service의 E-Business Suite Asserter 애플리케이션에 대한 사후 로그아웃 재지정 URL 매개변수 값과 일치해야 합니다.

  1. Oracle Identity Cloud Service에서 E-Business Suite Asserter 애플리케이션을 열고 사후 로그아웃 재지정 URL 값을 업데이트합니다.
  2. ebs.war 파일을 열고, bridge.properties 파일을 업데이트하고, war 파일을 재생성하고, 파일을 WebLogic 서버에 재배치합니다. 이 매개변수의 값이 Oracle Identity Cloud Service사후 로그아웃 재지정 URL 매개변수와 일치하는지 확인하십시오.