세션 사용자에 대한 작업 지침 빌딩 블록 구성(Windchill 인증)
세션 사용자 인증 옵션은 Windchill을 사용하여 ThingWorx를 인증합니다. 사용자가 ThingWorx에 액세스하는 경우, 인증을 위해 Windchill로 라우팅됩니다. 인증을 마친 후 사용자는 다시 ThingWorx로 라우팅됩니다. 이 구성을 사용하려면 WindchillThingWorx 모두에 동일한 사용자가 있어야 합니다.
ThingWorx에는 Windchill에서 사용자가 인증되면 ThingWorx에 사용자를 자동으로 작성하는 구성 옵션이 포함되어 있습니다. 이 구성 옵션을 선택하지 않을 경우, 사용자가 WindchillThingWorx 모두에 독립적으로 존재해야 합니다. 작업 지침 빌딩 블록 엔티티 및 서비스에 액세스하려면 ThingWorx 사용자를 적합한 ThingWorx 사용자 그룹에 추가해야 합니다. ThingWorx에 사용자를 자동으로 작성하는 옵션을 선택할 경우, 사용자 그룹을 지정하여 사용자가 자동으로 추가되도록 할 수 있습니다.
세션 사용자 인증 옵션을 사용하도록 작업 지침 빌딩 블록을 구성하려면 Windchill, ThingWorx 및 작업 지침 빌딩 블록 내 구성이 필요합니다.
Windchill 인증을 위한 필수 조건
SSL에 대해 Windchill을 구성해야 합니다.
SSL에 대해 ThingWorx을 구성해야 합니다.
Windchill 인증을 사용하도록 작업 지침 빌딩 블록 및 ThingWorx 구성
다음 단계를 완료하여 작업 지침 빌딩 블록과 ThingWorx가 인증에 Windchill을 사용하도록 구성합니다.
1. ThingWorx Java 인스턴스에서 Windchill 서버에 대한 인증서를 인식하도록 합니다. (루트) 인증서를 ThingWorx에서 사용하는 Java 키 저장소로 가져옵니다.
2. ThingWorx에 대해 platform-settings.json 파일에 EnableSSO가 표시되는 경우, false로 설정하고 ThingWorx 서버를 다시 시작합니다. 그렇지 않으면 3단계로 진행하십시오.
3. ThingWorxCustomHeadersDataShape라는 이름의 새 데이터 셰이프를 만듭니다. 필드 정의에서 기본 유형=STRING을 사용하여 다음 두 개의 필드 정의를 작성합니다.
Accept-Language
Authorization
4. 서비스 재정의와 같은 사용자 정의가 복제본에서 수행되어야 하기 때문에 구성에 대한 PTC.SCA.SCO.MPMLink_ODataConnector 사물의 복제본을 생성합니다. 자세한 내용은 MPMLink OData 커넥터 구성빌딩 블록 엔티티 복제 항목을 참조하십시오.
a. 구성에서 다음 값을 설정합니다.
일반 커넥터 연결 설정에서 인증 유형에 대해 없음을 선택합니다.
CSRF 설정에서 CSRF Get 요청에 대한 상대 URL에 대해 /servlet/odata를 입력합니다.
HTTP 커넥터 연결 설정에서:
사용자 이름암호를 비워 둡니다.
기본 URLhttps://<Windchill 호스트 이름>:<포트>/Windchill/sslClientAuth를 입력합니다. 여기서, <Windchill 호스트 이름><포트>는 사용자의 Windchill 시스템에 해당하는 값입니다.
상대 URL/servlet/odata를 입력합니다.
연결 URL/servlet/WindchillGW/wt.httpgw.HTTPServer/ping을 입력합니다.
저장을 클릭합니다.
b. 서비스에서 GetCustomHeaderParameters 서비스를 재정의합니다. 서비스에 다음 코드를 추가합니다.
var Language = Resources["CurrentSessionInfo"].GetCurrentUserLanguage();
var params = {
infoTableName: "InfoTable",
dataShapeName: "CustomHeadersDataShape"
};
var result = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params);
params = {
tableName: "GenericConnectorConnectionSettings" /* STRING */
};
var configTable = me.GetConfigurationTable(params);
var row = configTable.getRow(0);
var authType = row.getStringValue("AuthenticationType");
if ("None".equals(authType)) {
var CurrentUser = Resources["CurrentSessionInfo"].GetCurrentUser();
var baseEncodedStr = base64EncodeString(CurrentUser + ':');
var authHeaderValue = "Basic " + baseEncodedStr;
row = {
"Accept-Language": Language,
"Authorization": authHeaderValue
};
} else {
row = {
"Accept-Language": Language
};
}
result.AddRow(row);
c. 완료를 클릭합니다.
d. 저장을 클릭합니다.
5. 편집을 위해 PTC.SCA.SCO.MPMLinkWorkDefinitionConverter 사물을 엽니다. 커넥터 필드가 4단계에서 구성한 중복 커넥터를 참조하는지 확인합니다.
6. 편집을 위해 PTC.SCA.SCO.OperatorAdvisorContentProxyMediaEntity 사물을 엽니다. 구성에서 다음 값을 설정합니다.
콘텐츠 소스 연결 정보에서:
동적 콘텐츠 확인란을 선택합니다.
URLhttps://<Windchill 호스트 이름>:<포트>를 입력합니다. 여기서, <Windchill 호스트 이름><포트>는 사용자의 Windchill 시스템에 해당하는 값입니다.
SSL 오류 무시 확인란을 선택합니다.
인증 유형세션 사용자를 선택합니다.
사용자 이름암호를 비워 둡니다.
연결 테스트 URLhttps://<Windchill 호스트 이름>:<포트>/Windchill/sslClientAuth/servlet/odata를 입력합니다. 여기서, <Windchill 호스트 이름><포트>는 사용자의 Windchill 시스템에 해당하는 값입니다.
SSL 연결 구성에서 다음 값을 설정합니다.
SSL 키 저장소 경로ThingWorx 키 저장소에 대한 경로를 입력합니다.
SSL 키 저장소 암호ThingWorx 키 저장소의 암호를 입력합니다.
SSL 신뢰 저장소 경로에 신뢰 저장소에 대한 경로를 입력합니다.
SSL 신뢰 저장소 암호에 신뢰 저장소의 암호를 입력합니다.
세션 사용자 구성에서 세션 사용자 질의 매개 변수wt.effectiveUid를 입력합니다.
7. 저장을 클릭합니다.
8. Integration Runtime을 설정합니다. 자세한 내용은 Integration Runtime 구성 항목을 참조하십시오.
9. ThingWorx에 대한 구성을 테스트합니다.
a. 단계 4의 PTC.SCA.SCO.MPMlink_ODataConnector 사물로 이동합니다.
b. 서비스에서 ValidateConnection 서비스를 실행합니다. 다음 결과는 성공적으로 연결되었음을 확인합니다.
ValidateConnection 서비스에 대한 출력.
PTC Identity Provider Authenticator 구성
* 
PTC Identity Provider Authenticator를 구성하기 전에 최신 ptc-windchill-extension-[릴리즈 버전] 확장을 ThingWorx로 가져왔는지 확인하십시오. 최신 확장에 액세스하기:
1. PTC-Windchill-Extension-for-ThingWorx 파일의 콘텐츠를 다운로드하여 압축을 풉니다. 다운로드 파일을 찾으려면 PTC 소프트웨어 다운로드 페이지로 이동하여 다음 폴더를 확장합니다. PTC Smart Connected Applications > Release Apps > PTC Windchill Extension for ThingWorx.
2. ptc-windchill-extension-<버전>.zip 파일을 열고 ptc-thingview-extension.zip 파일을 삭제합니다. ptc-thingview-extension.zip 최신 버전은 이미 작업 지침 빌딩 블록의 일부로 가져왔습니다.
3. ptc-windchill-extension-<버전>.zip 파일을 가져옵니다.
PTC Identity Provider Authenticator를 구성하려면 다음 단계를 완료합니다.
1. ThingWorx Composer의 탐색 창에서 보안 > 인증자로 이동합니다.
2. ptc-identity-provider-authenticator를 엽니다.
3. 일반 정보에서:
활성화됨 확인란을 선택합니다.
우선 순위에 적합한 값을 입력합니다. 기본값은 1이며 이 인증자가 실행할 첫 번째 인증자임을 나타냅니다. 여러 인증자를 사용한 확인을 구현하려는 경우 우선 순위 값이 중요합니다. 우선 순위가 1인 인증자가 실패하면 다음 인증자가 인증 확인 작업을 수행하며 이 인증자가 실패할 경우 그 다음 인증자 순으로 확인 작업이 진행됩니다.
4. 구성에서:
인증자 구성에는 CreateUserDynamicallyHomeMashup과 같이 구성할 두 개의 옵션이 있습니다.
CreateUserDynamically - 선택할 경우, 사용자가 아직 존재하지 않고 Windchill에 의해 사용자가 인증된 경우 인증자가 ThingWorx에 사용자를 자동으로 작성합니다. 이 확인란을 선택하지 않은 경우에도 브라우저가 인증을 위해 Windchill로 라우팅되지만 사용자가 ThingWorx에 없는 경우 ThingWorx를 열지 못합니다.
HomeMashup - 새로 작성된 사용자에 홈 매쉬업을 지정합니다. 홈 매쉬업을 지정하지 않으면 ThingWorx에서 브라우저를 ThingWorx 검색 페이지로 라우팅합니다.
User Configuration 아래에 UserGroup을 추가합니다. 이 그룹은 동적으로 작성된 ThingWorx 사용자가 자동으로 추가되는 사용자 그룹입니다. 작업 지침 빌딩 블록 엔티티 및 서비스에 대한 액세스를 제공하는 사용자 그룹을 선택합니다.
5. 저장을 클릭합니다.
Tomcat 구성에 서브렛 필터 추가
Windchill ID 공급자 인증 필터는 인증되지 않은 ThingWorx 사용자를 인증하기 위해 Windchill 로그인 양식으로 리디렉션하는 데 사용됩니다. 인증이 성공적으로 완료되면 ThingWorx 응용 프로그램은 키와 사용자 이름을 받습니다.
필터의 ThingWorx 측은 ThingWorx Tomcat 설치 디렉터리에 있는 web.xml 파일에서 구성됩니다.
1. Tomcat 및 Integration Runtime을 중지합니다.
2. 이전에 다운로드한 PTC-Windchill-Extension-for-ThingWorx 파일을 열고 idp 디렉터리에서 ptc-identity-provider-authentication-filter-<버전>.jar 파일을 복사하여 ThingWorx Tomcat 설치의 WEB-INF/lib 디렉터리로 복사합니다.
3. <ThingWorx Tomcat>\webapps\Thingworx\WEB-INF\web.xml 파일로 이동합니다.
4. web.xml 파일의 복사본을 만들어 알려진 위치에 저장합니다.
5. <ThingWorx Tomcat>\webapps\Thingworx\WEB-INF\web.xml 파일을 이전에 다운로드한 PTC-Windchill-Extension-for-ThingWorx 파일의 \idp\twx-8.x.x 디렉터리에 있는 web.xml 파일로 바꿉니다.
6. web.xml 파일을 열고 IdentityProviderAuthenticationFilterIdentityProviderKeyValidatorFilter 엔트리에 다음 형식으로 Windchill 서버 세부 정보를 추가합니다.
[http or https]://[Windchill-host]:[Windchill-port]/[Windchill WebApp name]
[Windchill WebApp name]<Windchill>\codebase\wt.properties에서 wt.webapp.name을 검색하여 찾을 수 있습니다.
7. Tomcat 및 Integration Runtime을 시작합니다.
추가 Windchill 구성
1. <HTTPSERVER_HOME>\conf\ca-bundle.crt 파일을 생성합니다.
2. ca-bundle.crt 파일을 편집합니다.
Windchill 서버 SSL 인증서의 내용을 추가합니다.
ThingWorx SSL 인증서의 내용을 추가합니다.
* 
Windchill이 타사 SSL 체인 인증서를 사용하여 구성된 경우, 다음 순서로 WindchillThingWorx 인증서의 내용을 ca-bundle.crt에 추가하거나 복사합니다.
a. Windchill 루트 인증서
b. Windchill 중간 인증서
c. Windchill 서버 인증서
d. ThingWorx 인증서
3. ca-bundle.crt 파일을 저장합니다.
4. <HTTPSERVER_HOME>\conf\sslvhostconf.dsslclientauth.conf 파일을 생성합니다.
5. sslclientauth.conf를 편집하여 다음 줄을 추가합니다.
SSLCACertificateFile <PATH_TO>\ca-bundle.crt
<PATH_TO>ca-bundle.crt 파일의 파일 경로로 바꿉니다.
6. sslclientauth.conf 파일을 저장합니다.
7. <HTTPSERVER_HOME>\conf\conf.d\20-mod_ssl.conf 파일을 편집합니다.
다음을 포함하는 줄의 주석 처리를 제거합니다(줄의 시작 부분에서 해시 문자(#) 제거).
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
다음을 포함하는 줄의 주석 처리를 제거합니다.
SSLVerifyDepth
8. 20-mod_ssl.conf 파일을 저장합니다.
9. <HTTPSERVER_HOME>\conf\httpd.conf 파일을 편집합니다. 다음 줄이 주석 처리되지 않았는지 확인합니다(다음 줄의 시작 부분에서 해시 문자(#) 모두 제거).
LoadModule log_config_module modules/mod_log_config.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
10. httpd.conf 파일을 저장합니다.
11. <HTTPSERVER_HOME>\conf\conf.d\30-app-Windchill-Auth.conf 파일을 엽니다. 다음과 유사한 sslClientAuth 엔트리가 있는지 확인합니다.
# SSL client certificate authenticated resources
<IfModule ssl_module>
<LocationMatch ^/+Windchill/+sslClientAuth(;.*)?>
Require all granted
SSLVerifyClient require
SSLOptions +ExportCertData
</LocationMatch>
</IfModule>
12. SSL을 활성화하기 위해 -DSSL 옵션을 사용하여 PTC HTTP 서버를 다시 시작합니다.
13. <Windchill>\codebase\WEB-INF\web.xml 파일을 편집합니다.
a. <filter-name>TrustedSSLAuthFilter</filter-name>를 찾습니다.
b. 기존 항목 다음에 새 init-param을 추가합니다.
<init-param>
<param-name>trustedSubjectPattern.1</param-name>
<param-value>.*[hostname].* </param-value>
</init-param>
[hostname]에 대해 인증서 제목의 호스트 이름을 사용합니다. 예를 들어, 제목이 CN=mycompany.domain.com인 경우, [hostname]mycompany을 사용합니다.
14. web.xml 파일을 저장합니다.
15. Windchill를 재시작합니다.
구성 확인
WindchillThingWorx 모두 관리자 사용자의 이름이 동일해야 합니다. 다음 옵션을 고려하십시오.
Windchill에서 변경하지 않은 경우, Windchill이 설치될 때 이름이 Administrator인 관리자 사용자가 작성됩니다. 구성된 ThingWorx 시스템을 사용하여 이 사용자로 인증하고 ThingWorx에서 관리자 사용자로 전체 액세스 권한을 가질 수 있습니다.
Windchill을 수정하여 이름이 Administrator인 사용자가 없는 경우, WindchillThingWorx 모두에 공통된 사용자 이름을 결정하고 이 사용자를 ThingWorx의 관리자 사용자 그룹에 추가해야 합니다.
Windchill 인증 구성을 확인하려면 브라우저를 열어 ThingWorx URL로 이동합니다. 브라우저가 인증을 위해 Windchill로 라우팅됩니다. Administrator(또는 ThingWorx 관리자로 구성된 다른 사용자)에 대한 Windchill 자격 증명을 제공합니다. 브라우저가 ThingWorx Composer로 다시 라우팅됩니다. 이제 ThingWorx에서 해당 사용자로 실행하고 있는지 확인합니다. 이 확인 과정은 ThingWorxWindchill 인증을 사용하여 올바르게 구성되었는지 확인합니다.
인증자가 사용자를 자동으로 작성하도록 선택한 경우 다음을 테스트합니다. 확인하려면 브라우저를 열어 ThingWorx URL로 이동합니다. 인증을 위해 Windchill로 다시 라우팅됩니다. ThingWorx에 없는 사용자의 Windchill 자격 증명을 제공합니다. 브라우저가 다시 ThingWorx으로 라우팅되며 동적으로 작성된 사용자에 대해 홈 매쉬업으로 지정된 페이지로 라우팅됩니다. 이제 ThingWorx에서 해당 사용자로 실행하고 있는지 확인합니다.
도움이 되셨나요?