예: PingFederate를 ID 공급자로, Windchill DS를 데이터 저장소로 사용
이 예에서는 PingFederate를 중앙 승인 서버(CAS) 및 ID 공급자(IdP)로, Windchill DS를 데이터 저장소로 사용하여 Single Sign-On에 대해 구성된 ThingWorx가 있는 SSO 환경을 구성하는 방법에 대한 자세한 단계를 제공합니다.
다음 표에서는 이 예에서 구성된 응용 프로그램 및 해당 역할을 표시합니다.
역할
|
응용 프로그램
|
서비스 공급자
|
ThingWorx
|
승인 서버
|
PingFederate
|
ID 공급자
|
PingFederate(Windchill DS에서 지원)
|
Windchill 12.0.1.0부터 기술 스택에서 Windchill DS가 제거되었습니다. 여기에서 자세한 정보를 얻을 수 있습니다. Windchill DS 대신 LDAP V3를 사용할 수 있습니다.
|
|
PTC는 이 예에서 설명된
PingFederate 구성을 위한 자동화 스크립트를 제공합니다. 자세한 내용은
중앙 승인 서버로 PingFederate를 자동으로 구성을 참조하십시오.
다음 다이어그램에서는 이 예에서 설명한 구성을 표시합니다.
파트 A: 사전 요구 사항
• ThingWorx를 새로 설치했는지 확인합니다.
설치 후 ThingWorx 서버를 중지합니다.
• Windchill DS를 설정했는지 확인합니다.
| PingFederate 버전에 적합한 Java 버전을 설치합니다. PingFederate 시스템에서 JAVA_HOME 환경 변수를 설정하고 이에 따라 Java를 포함하도록 PATH 변수를 업데이트합니다. |
파트 B: 스크립트를 실행하기 전에
1단계: PingFederate 글로벌 SSL 인증서 만들기 및 내보내기
1. 관리자로 PingFederate에 로그인하고 > 로 이동합니다.
2. Create New를 클릭하여 글로벌 SSL 인증서를 생성하고 다음을 수행합니다.
a. Common Name 필드에 PingFederate 시스템의 FQDN을 제공합니다.
b. 페이지에 기타 세부 정보를 제공하고 Next를 클릭합니다.
c. Done을 클릭하고 Save를 클릭합니다.
d. SSL Server Certificates를 클릭합니다.
e. 직접 생성한 SSL 인증서의 경우 Select Action 목록에서 Activate Default for Runtime Server를 선택한 다음 Activate Default for Admin Console을 선택합니다. Save를 클릭합니다.
이 SSL 인증서는 관리 콘솔 및 런타임 서버에 대한 default로 표시됩니다.
3. localhost 인증서의 경우 다음을 수행합니다.
a. Select Action 목록에서 Deactivate for Runtime Server를 선택한 다음 Deactivate for Admin Console을 선택합니다.
b. localhost 인증서를 삭제하고 Save를 클릭합니다.
4. PingFederate 글로벌 SSL 인증서를 내보내려면 다음을 수행합니다.
a. 생성한 인증서의 경우 Export를 클릭합니다.
b. Certificate Only을 선택하고 Next를 클릭합니다.
c. Export를 클릭합니다.
인증서를 기본 Downloads 폴더로 내보냅니다.
d. Done을 클릭하고 Save를 클릭합니다.
2단계: 인증서 파일을 PingFederate의 자동 구성 input 폴더에 저장
자동 구성 프로세스에 대한 입력으로 인증서가 필요합니다. 다음 인증서 파일을 자동 구성 도구의 input 폴더에 저장해야 합니다. input 폴더는 sso-config-pingfed-X.Y/input에서 사용할 수 있습니다. 여기서 X.Y는 PingFederate 버전을 표시합니다.
◦ Downloads 폴더로 내보낸 PingFederate 글로벌 인증서(.crt) 파일을 복사합니다.
◦ thingworx.cer 파일을 생성하고 input 폴더에 복사하려면 다음을 수행합니다.
a. <ThingWorx 설치 폴더>/ThingworxPlatform 폴더에서 ssoSecurityConfig 폴더를 생성합니다.
b. 다음과 같이 JKS 유형의 키 저장소를 생성하고 이름을 sso-keystore.jks로 지정하고 ssoSecurityConfig 폴더에 저장합니다.
▪ 키 쌍을 생성합니다.
▪ 인증서의 공통 이름을 ThingWorx로 지정합니다.
c. 인증서 체인을 ssoSecurityConfig 폴더로 내보냅니다.
ssoSecurityConfig 폴더에는 다음과 같은 파일이 있어야 합니다.
▪ sso-keystore.jks
▪ thingworx.cer
d. thingworx.cer 파일을 sso-config-pingfed-X.Y/input 폴더에 복사합니다.
input 폴더에는 다음 파일이 있어야 합니다.
▪ <PingFederate에서 내보낸 SSL 인증서>.crt
▪ thingworx.cer
3단계: user.properties 파일 업데이트
4단계: default.properties 파일 업데이트
파트 C: 자동화 스크립트 실행
1. PingFederate가 실행 중인지 확인합니다.
이 예의 구성에서는 스크립트를 실행하는 동안 1. IdP로 PingFederate – LDAP를 선택합니다.
파트 D: 생성된 아티팩트 사용
1단계: ssoSecurityConfig 폴더에 아티팩트 복사
1. sso-config-pingfed-X.Y 아래에서 사용 가능한 PingFederate 자동 구성의 output 폴더에 있는 다음 파일을 /ThingworxPlatform/ssoSecurityConfig 폴더에 복사합니다.
▪ pingfed_idp_metadata.xml
▪ pingfed_signing_certificate.crt
▪ pingfed_ssl_server_certificate.crt
2. pingfed_idp_metadata.xml의 이름을 sso-idp-metadata.xml로 바꿉니다.
2단계: 응용 프로그램 레이어 서명 인증서를 ThingWorx 키 저장소로 가져오기
pingfed_signing_certificate.crt 파일을
/ThingworxPlatform/ssoSecurityConfig 폴더의
sso-keystore.jks 파일로 가져옵니다. 자세한 내용은
생성된 아티팩트 사용의
pingfed_signing_certificate.crt 단원을 참조하십시오.
3단계: 전송 레이어 인증서 가져오기
ThingWorx SSL 인증서
1. ThingWorx SSL 인증서를 PingFederate 시스템의 Java cacerts 파일로 가져옵니다.
2. PingFederate를 다시 시작합니다.
PingFederate SSL 인증서
pingfed_ssl_server_certificate.crt(PingFederate SSL 인증서 파일)를 ThingWorx 시스템의 Java cacerts 파일로 가져옵니다.
자세한 내용은
생성된 아티팩트 사용의
pingfed_ssl_server_certificate.crt 단원을 참조하십시오.
파트 E(선택 사항): 그룹 매핑 구성
| 계속하기 전에 Windchill DS에서 정적 그룹을 정의했는지 확인해야 합니다. |
PingFederate에서 다음 단계를 수행합니다.
1. > 로 이동하고 Instance Name을 선택합니다.
2. 페이지가 열리면 Extended Contract 탭을 선택합니다.
3. Extend the Contract 필드에서 isMemberOf를 추가하고 Add를 클릭합니다.
4. Next를 클릭하여 Summary 페이지를 확인합니다.
5. Summary 페이지가 열리면 변경 사항을 검토하고 Save를 클릭합니다.
6. > 로 이동하고 Instance Name을 선택합니다.
7. 페이지가 열리면 Extended Contract 탭을 선택합니다.
8. Extend the Contract 필드에서 isMemberOf를 추가하고 Add를 클릭합니다.
9. Next를 클릭하여 Adapter Attributes 페이지를 확인합니다. 이 페이지에서는 업데이트할 필요가 없습니다.
10. Next를 클릭하여 Adapter Contract Mapping 페이지로 이동하고 Configure Adapter Contract를 선택합니다.
11. Attribute Sources & User Lookup 페이지에서 Add Attribute Source를 클릭합니다.
a. Data Store 페이지에서 다음 단계를 수행합니다.
i. ATTRIBUTE SOURCE ID에 isMemberOf를 추가합니다.
ii. ATTRIBUTE SOURCE DESCRIPTION에 isMemberOf를 추가합니다.
iii. ACTIVE DATA STORE에서 Windchill 데이터 저장소를 선택합니다.
iv. DATA STORE에는 LDAP이 채워져 있습니다.
v. Next를 클릭합니다.
b. LDAP Directory Search 페이지에서 다음 단계를 수행합니다.
i. BASE DN에 o=ptc를 추가합니다.
ii. SEARCH SCOPE에는 Subtree가 채워져 있습니다.
iii. Attributes to return from search에서 다음을 선택합니다.
i. ROOT OBJECT CLASS에서 <Show All Attributes>를 선택합니다.
ii. ATTRIBUTE에서 isMemberOf를 선택하고 Add Attribute를 클릭합니다.
iii. Next를 클릭합니다.
c. LDAP Filter 페이지에서 다음 단계를 수행합니다.
i. Filter에 isMemberOf=${isMemberOf}를 추가합니다.
ii. Next를 클릭합니다.
d. Summary 페이지가 열리면 변경 사항을 검토하고 Save를 클릭합니다.
12. > 를 열고 Connection Name을 선택합니다.
13. 페이지가 열리면 Attribute Contract를 선택하여 Attribute Contract 페이지를 열고 다음 단계를 수행합니다.
a. Extend the Contract에 group을 추가합니다.
b. Attribute Name Format에서 unspecified와 함께 옵션을 선택합니다.
c. Add를 클릭합니다.
d. Next를 클릭합니다.
14. Authentication Source Mapping 페이지가 열리면 Adapter Instance Name을 선택합니다.
15. Attribute Contract Fulfilment 페이지가 열리면 12단계에서 작성한 group 속성 계약에 대해 다음 단계를 수행합니다.
a. Source에서 Adapter를 선택합니다.
b. Value에서 isMemberOf를 선택합니다.
c. Save를 클릭합니다.
| ThingWorx SSO 인증자에 필요하므로 매핑 이름(이 예에서는 group)을 기록해 둡니다. 자세한 내용은 ThingWorx 도움말 센터의 SSO(Single Sign-On) 인증 항목을 참조하십시오. |
파트 F: Single Sign-On에 대한 ThingWorx 구성
1. ThingWorx 서버가 중지되었는지 확인합니다.
ssoSecurityConfig에는 다음 파일이 포함되어야 합니다.
3. ThingWorx 서버를 시작합니다.