Single Sign-On 문제 해결
SSO 관련 문제를 해결하기 위해 이벤트 로깅을 활성화합니다. 로깅을 활성화하려면 ThingworxPlatform 디렉터리의 표준 logback.xml 파일을 사용합니다. logback.xml 파일이 이 위치에 있는 경우 기존 로거 세트에 SSO 로거를 간단히 추가할 수 있습니다. logback.xml 파일에 대한 자세한 내용은 로깅 구성을 참조하십시오.
logback.xml 기능은 Java 표준입니다. 이러한 파일의 구성에 대한 자세한 내용은 Java 설명서를 참조하십시오.
다음 표에는 ThingWorx의 SSO 구성과 관련된 문제를 조사하기 위해 추가할 수 있는 로거 패키지에 대한 정보가 나와 있습니다.
패키지
설명
com.thingworx.security.authentication.sso
모든 ThingWorx SSO 인증 구성 요소에 대한 패키지입니다. 다음은 로거 패키지의 항목에 대한 예입니다.
응용 프로그램 로그로 이동하는 메시지의 경우 다음과 같습니다.
LogUtilities.getInstance().getApplicationLogger([class name]):
<logger name="com.thingworx.security.authentication.sso" level="DEBUG"/>
보안 로거는 이 패키지의 여러 클래스에 사용됩니다. 예를 들면 다음과 같습니다.
LogUtilities.getInstance().getSecurityLogger(ThingworxSSOAuthenticator.class);
이러한 로거를 설정하려면 SecurityLog를 루트 상위 로거로 추가하십시오.
<logger name="SecurityLog.com.thingworx.security.authentication.sso" level="DEBUG"/>
SecurityLog.com.thingworx.security.sso
액세스 토큰 및 해당 구성을 가져올 때 통합 커넥터에서 사용되는 위임 승인 작업 흐름에 대한 패키지입니다.
com.thingworx.ptc.eauth.identity
모든 PTC 코어 SSO 라이브러리 구성 요소에 대한 패키지입니다.
com.springframework.security
모든 스프링 프레임워크 보안 구성 요소에 대한 패키지입니다.
com.springframework.jdbc
모든 스프링 프레임워크 JDBC 인증 구성 요소에 대한 패키지입니다.
SSO 구현으로 인해 오류가 발생할 경우 다음 문제 해결 항목을 조사할 수 있습니다.
문제
ThingWorx 관리자가 로그인할 수 없습니다. Invalid_scope 오류가 수신되었습니다.
설명
로그인 후 사용자는 시스템에 현재 인증 구성 오류가 발생했음을 나타내는 ThingWorx 오류 페이지로 리디렉션됩니다.
솔루션
ThingWorx 통합 커넥터 또는 미디어 엔티티에 등록된 범위 중 하나 이상이 PingFederate에 등록된 범위(또는 선택한 CAS)와 일치하지 않습니다. PingFederate 간의 이러한 범위 불일치로 인해 ThingWorx 관리자가 잠겨질 수 있습니다. ThingWorx에 등록된 리소스 공급자 범위를 보안 로그에서 볼 수 있습니다. 이 문제를 해결하려면 다음을 수행하십시오.
1. PingFederate에 로그인하고 ThingWorx 보안 로그에서 보고된 범위를 PingFederate에 등록된 범위와 비교합니다. ThingWorx에서 PingFederate에 등록되지 않은 범위 또는 일치하지 않는 이름의 범위가 있는 경우 해당 범위를 PingFederate에 추가하거나 ThingWorx의 철자와 일치(범위의 철자가 잘못된 경우에도 해당)하도록 이름을 수정하십시오.
2. 이제 승인 부여 페이지가 올바르게 작동하며 ThingWorx에 관리자로 로그인할 수 있습니다. ThingWorx Composer에서 범위를 사용하려고 시도하는 통합 커넥터 또는 미디어 엔티티로 이동합니다. 통합 커넥터 또는 미디어 엔티티의 범위 등록 테이블에서 해당 범위를 제거합니다. ThingWorx의 새 세션으로 로그인하여 로그인이 성공했는지 확인합니다.
3. ThingWorx가 등록되지 않은 범위를 사용하려고 시도한 경우 PingFederate의 범위 관리 페이지에서 원하지 않는 범위를 제거합니다. 범위 이름이 일치하지 않으면 범위를 삭제하고 PingFederate 및 ThingWorx 통합 커넥터 또는 미디어 엔티티에서 올바른 철자를 입력하여 해당 범위를 다시 등록합니다.
문제
통합 커넥터 또는 미디어 엔티티의 서비스가 작동하지 않습니다. 액세스 토큰을 검색할 수 없습니다.
설명
ThingWorx Composer에 로그인했으며 이미 액세스 토큰이 있습니다. 범위를 통해 커넥터를 가져오거나 생성했으며 해당 커넥터에서 서비스를 실행하려고 시도했지만 작동하지 않았습니다.
솔루션
로그아웃한 다음 로그인하여 커넥터의 범위에 대한 승인 부여 페이지를 호출합니다. 서비스가 작동하도록 새로 등록된 범위 권한 부여를 승인해야 합니다.
범위가 포함된 미디어 엔티티를 가져오거나 생성하는 경우에도 마찬가지입니다.
문제
ThingWorx 시작 시 SSO 컨텍스트 및 Bean 초기화 오류
설명
ThingWorx를 시작할 수 없습니다.
솔루션
오류 로그를 참조하여 문제를 확인하십시오. 컨텍스트 또는 Bean 초기화 경고 또는 오류 로그의 끝에 있는 텍스트는 이 문제를 설명합니다. 예를 들어, 가능한 오류 상태는 다음과 같을 수 있습니다.
SSOConfigurationException: BasicSettings > idpMetadataFilePath cannot be null or empty
sso-settings.json 파일에 있는 idpMetadataFilePath 매개 변수의 값을 확인하고 적절한 값을 추가합니다.
문제
사용자가 PingFederate의 Request Grant Approval 페이지에서 요청된 범위에 대해 Don't allow를 클릭한 후 ThingWorx 매쉬업 또는 응용 프로그램이 로드되지 않습니다.
설명
Request Grant Approval 페이지에서 Don't allow를 클릭한 후 매쉬업이 로드되지 않으며 브라우저 URL이 해시 "#" 및 마침표 "."로 끝납니다.
솔루션
기본적으로 PingFederate에서는 마침표 "."를 조각 자리 표시자로 사용하며, 이로 인해 발행하는 문제입니다. 이 문제를 해결하려면 다음을 수행하십시오.
1. PingFederate 설치 위치에서 <PingFederateInstallation>\server\default\data\config-store\sanitize-fragments.xml으로 이동합니다.
2. 이 XML 파일을 편집하고 조각 자리 표시자에서 마침표 "."를 제거합니다. 줄은 다음과 같아야 합니다. <con:item name="FragmentPlaceholder"></con:item>
3. PingFederate 서버를 다시 시작합니다.
문제
성공적으로 로그인한 후 http://<your server>:<port>/Thingworx/runtime/index.html#mashup=<MyMashup>에 대한 SAML 인증이 http://<your server>:<port>/Thingworx/runtime/index.html로 리디렉션됩니다.
설명
매쉬업 URL에 대해 로그인하는 동안 브라우저에서는 클라이언트만 사용할 수 있도록 해당 데이터를 유지하므로 로그인 성공 후 적절한 리디렉션에 대해 URL의 조각 부분(즉, #mashup=<MyMashup>)이 ThingWorx 서버 또는 인증 서버로 전송되지 않습니다. 따라서 ThingWorx 서버 및 인증 서버는 조각이 없는 URL, 즉 http://<사용자의 서버>:<포트>/Thingworx/runtime/index.html을 수신합니다.
솔루션
초기 인증 지점으로 사용되는 매쉬업 URL의 경우 URL을 조각 매개 변수 대신 질의 매개 변수로 구성하십시오.
따라서, 이 경우에는 http://<your server>:<port>/Thingworx/runtime/index.html?mashup=<MyMashup> URL을 사용합니다.
자세한 사용 사례는 IAM 지원 사이트를 참조하십시오.
도움이 되셨나요?