패키지
|
설명
|
---|---|
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 인증 구성 요소에 대한 패키지입니다.
|
문제
|
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을 사용합니다.
|
문제
|
로그인할 때마다 PingFederate의 Request Grant Approval 페이지가 표시됩니다.
|
설명
|
PingFederate는 승인 부여 프로세스에 성공한 경우 범위를 반환하지 않습니다.
|
솔루션
|
PingFederate:
1. 다음과 같이 <PingFederate 설치 폴더>/server/default/data/config-store 위치에서 사용 가능한 oauth-scope-settings.xml 파일을 생성하거나 편집합니다.
<?xml version="1.0" encoding="UTF-8"?>
<z:config xmlns:z="http://www.sourceid.org/2004/05/config"> <z:item name="always-return-scope-for-authz-code">true</z:item> </z:config> 2. 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을 사용합니다.
|
문제
|
PingFederate의 server.log 파일에 다음 오류가 표시됩니다.
ERROR [SpringLdapGuidFormatter] Decoded binary guidAttribute is empty. Please check that the source datastore is configured with 'objectGUID' as a binary attribute. [] Channel: channel1
|
설명
|
PingFed 11.3의 변경으로 인해 SCIM을 수동으로 구성해야 합니다.
|
솔루션
|
LDAP 바이너리 속성 추가에 설명된 단계를 수행합니다.
|
문제
|
AzureAD가 CAS로 구성된 경우 최종 사용자는 ThingWorx 커넥터를 기반으로 하는 SSO 연결 유형을 사용하여 리소스 서버(RS)에서 데이터를 가져올 수 없습니다(액세스 토큰이 만료됨).
|
설명
|
SecurityLog.log 파일에 다음 오류가 표시됩니다.
ERROR: [ Failed to retrieve access token. ][ A redirect is required to get the users approval ]
|
솔루션
|
offline_access를 포함하도록 sso-settings.json의 AuthorizationServersSettings에 mandatoryScopes 속성을 설정합니다.
|