예: PingFederate를 중앙 승인 서버로, AD FS를 ID 공급자로, SCIM을 사용자 프로비져닝 방법으로, Windchill을 리소스 서버로 사용하여 SSO 구현
이 예에서는 PingFederate를 CAS(중앙 승인 서버)로, AD FS(Active Directory Federation Services)를 IdP(ID 공급자)로, Windchill를 리소스 서버로 사용하여 Single Sign-On에 대해 구성된 ThingWorx가 있는 환경을 구성하는 방법에 대한 자세한 단계를 제공합니다.
다음 표에서는 이 예에서 구성된 응용 프로그램 및 해당 역할을 표시합니다.
역할
|
응용 프로그램
|
서비스 공급자
|
ThingWorx
|
중앙 승인 서버
|
PingFederate
|
ID 공급자
|
AD FS
|
리소스 서버
|
Windchill
|
다음 다이어그램에서는 이 예에서 설명한 구성을 표시합니다.
이 아키텍처를 사용하는 SSO 구현의 개요는
CS271789 문서에 제공된 비디오를 참조하십시오.
SSO 구현을 시작하기 전에 PingFederate를 사용하는 ThingWorx Navigate 및 Windchill 배포 프로세스의 주요 결정 사항을 보여주는 다음 의사 결정 트리를 검토합니다. 이 차트에서는 모범 사례, 유용성 및 일반적인 사용 사례를 기반으로 권장 경로를 제공합니다.
| 이 차트에서 다루지 않는 IdP와 LDAP의 기타 결합도 있습니다. 예를 들어, Windows 호스트의 Microsoft Active Directory를 Linux 호스트의 ThingWorx 및 Windchill과 결합하여 사용할 수 있지만 일반적이거나 선호되는 시나리오는 아닙니다. Shibboleth SP를 사용하여 Windchill에서 SSO를 활성화하려면 11.0 M020 이상이 필요합니다. |
파트 A: 사전 요구 사항
1. 사용자의 환경에서 사용되는 시스템의 hosts 파일을 다음으로 업데이트합니다.
◦ PingFederate 시스템 - AD FS, ThingWorx 및 PingFederate 시스템을 추가합니다.
◦ ThingWorx 시스템 - AD FS, ThingWorx 및 PingFederate 시스템을 추가합니다.
◦ Windchill 시스템 - ThingWorx 및 PingFederate 시스템을 추가합니다.
ThingWorx 서버를 중지합니다.
| ThingWorx가 교차 도메인 환경에서 작동할 수 있도록 Tomcat을 업데이트하고 구성했는지 확인합니다. 자세한 내용은 이 기술 문서를 참조하십시오. |
3. PingFederate를
설치하거나
ThingWorx에서 지원하는 최신 패치로
업그레이드합니다.
5. AD FS를 설정하고 구성한 후 다음과 같은 속성 값 및 파일이 있는지 확인합니다.
◦ uid
◦ email
◦ group
◦ 메타데이터 파일
◦ 서명 인증서
파트 B: 수동으로 AD FS에 대한 인증 구성
1단계: PingFederate 글로벌 SSL 인증서 만들기
1. PingFederate에 관리자로 로그인합니다. SSL Server Certificates를 검색하고 검색 결과를 엽니다.
2. Create New를 클릭하여 글로벌 SSL 인증서를 생성하고 다음을 수행합니다.
a. Common Name 필드에 PingFederate 시스템의 FQDN을 제공합니다.
b. 페이지에 기타 세부 정보를 제공하고 Next를 클릭합니다.
c. 다음 확인란이 선택되어 있는지 확인하고 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를 클릭합니다.
2단계: 서비스 공급자 계약 만들기
1. PingFederate에서 Policy Contract를 검색하고 검색 결과를 엽니다.
2. Create New Contracts를 클릭하고 다음을 수행합니다.
a. Contract Info 필드에 계약 이름(예: SPContract)을 입력하고 Next를 클릭합니다.
b. Contract Attributes에서 다음 속성에 대한 계약을 확장하려면 각 속성에 대해 Add를 클릭합니다.
▪ uid
▪ email
▪ group
기본적으로 subject 속성이 있습니다.
c. Next를 클릭하고 Summary 페이지에서 Save를 클릭합니다.
d. Authentication Policy Contracts 페이지에서 Save를 클릭합니다.
3단계: AD FS FederationMetadata.xml 파일 다운로드
1. AD FS 시스템 브라우저에서 다음 URL을 입력하여 페더레이션 메타데이터 파일을 다운로드합니다.
https://ADSF_Host.ADFS_Domain/FederationMetadata/2007-06/FederationMetadata.xml
2. 다운로드한 파일을 PingFederate 시스템에 복사합니다.
4단계: PingFederate IdP 연결 만들기
A) IdP 연결을 생성하기 위한 일반 정보 지정
1. PingFederate에서 IdP Connections를 검색하고 검색 결과를 엽니다. Create Connection을 클릭합니다.
2. Connection Type 탭에서 BROWSER SSO Profiles 확인란을 선택하고 Next를 클릭합니다.
3. Connection Options 탭에서 BROWSER SSO 확인란 및 OAUTH ATTRIBUTE MAPPING 확인란을 선택하고 Next를 클릭합니다.
4. Import Metadata 탭에서 File을 선택하고 Choose File을 클릭하여 FederationMetadata.xml 파일을 찾아 Next를 클릭합니다.
5. Metadata Summary 탭에서 Next를 클릭합니다.
6. General Info 탭은 데이터로 미리 채워져 있습니다. 원하는 경우 CONNECTION NAME을 변경할 수 있습니다. 나머지 정보를 확인하고 Next를 클릭합니다.
7. Browser SSO 탭에서 Configure Browser SSO를 클릭합니다. Browser SSO 페이지가 열립니다. 이 페이지에서는 사용자의 브라우저에 대한 Single Sign-On 설정을 지정해야 합니다.
B) 브라우저 SSO 설정 구성
1. Browser SSO 페이지의 SAML Profiles 탭에서 다음 옵션을 선택하고 Next를 클릭합니다.
▪ IDP-INITIATED SSO
▪ SP-INITIATED SSO
2. User-Session Creation 탭에서 Configure User-Session Creation을 클릭합니다. User-Session Creation 페이지가 열립니다. 이 페이지에서는 사용자 생성을 구성하는 설정을 지정해야 합니다.
C) 사용자 세션 생성 설정 구성
1. Identity Mapping 탭에서 기본 설정을 적용하고 Next를 클릭합니다.
2. Attribute Contract 탭에서 자동으로 채워진 속성을 확인하고 Next를 클릭합니다.
3. Target Session Mapping 탭에서 Map New Authentication Policy를 클릭합니다. Authentication Policy Mapping 페이지가 열립니다. 이 페이지에서는 인증 정책 매핑에 대한 설정을 지정해야 합니다.
D) 인증 정책 매핑 설정 구성
1. Authentication Policy Contract 목록에서
파트 B - 2단계에서 생성한 계약(
SPContract)을 선택합니다. 모든 속성이 표시되는지 확인하고
Next를 클릭합니다.
2. Attribute Retrieval 탭에서 기본 설정을 적용하고 Next를 클릭합니다.
3. Contract Fulfillment 탭에서 email, group, subject 및 uid 인증 정책 계약에 대해 다음 값을 선택합니다.
▪ Source 목록에서 Assertion을 선택합니다.
▪ Value 목록에서 해당 엔트리를 선택합니다.
Next를 클릭합니다.
4. Issuance Criteria 탭에서 Next를 클릭합니다.
5. Summary 탭의 정보를 검토합니다. 해당 정보가 정확하면 Done을 클릭합니다. User-Session Creation 페이지가 열립니다. 이 페이지에서는 사용자 세션 생성에 대한 구성 설정을 검토해야 합니다.
E) 사용자 세션 생성 구성 설정 검토
1. User-Session Creation 페이지의 Target Session Mapping 탭에는 새 인증 정책을 매핑하는 동안 선택한 정보가 표시됩니다. Next를 클릭합니다.
2. Summary 탭의 정보를 검토합니다. 해당 정보가 정확하면 Done을 클릭합니다. Browser SSO 페이지가 열립니다.
3. Browser SSO 페이지의 User-Session Creation 탭에는 사용자 세션 생성을 구성하는 동안 입력된 정보가 표시됩니다. Next를 클릭합니다.
4. OAuth Attribute Mapping 탭에서 Map Directly Into Persistent Grant를 선택한 다음 Configure OAuth Attribute Mapping을 선택하고 다음을 수행합니다.
a. Data Store 탭에서 Next를 클릭합니다.
b. Contract Fulfilment 탭에서 USER_KEY 및 USER_NAME에 대해 Source를 Assertion으로 선택한 다음 Value를 ADFS의 이름 속성으로 선택하고 Next를 클릭합니다.
c. Issuance Criteria 탭에서 Next를 클릭합니다.
5. Summary 탭의 정보를 검토합니다. 해당 정보가 정확하면 Done을 클릭합니다. OAuth Attribute Mapping Configuration 페이지에서 Next를 클릭합니다.
6. Protocol Settings 탭에서 Configure Protocol Settings를 클릭합니다. Protocol Settings 페이지가 열립니다. 이 페이지에서는 프로토콜 설정을 지정해야 합니다.
F) 프로토콜 설정 구성 및 검토
1. SSO Service URLs 탭에서 Next를 클릭합니다.
2. Allowable SAML Bindings 탭에서 다음을 수행하고 Next를 클릭합니다.
a. 다음 확인란을 선택합니다.
▪ POST
▪ REDIRECT
b. 다음 확인란의 선택을 취소합니다.
▪ ARTIFACT
▪ POST
3. Overrides 탭의 설정을 건너뛰고 Next를 클릭합니다.
4. Signature Policy 탭에서 SPECIFY ADDITIONAL SIGNATURE REQUIREMENTS를 클릭한 다음 아래에 있는 두 확인란을 선택하고 Next를 클릭합니다.
5. Encryption Policy 탭에서 ALLOW ENCRYPTED SAML ASSERTIONS AND SLO MESSAGES를 클릭한 다음 THE ENTIRE ASSERTION 확인란을 선택하고 Next를 클릭합니다.
6. Summary 탭의 정보를 검토합니다. 해당 정보가 정확하면 Done을 클릭합니다. Browser SSO 페이지가 열립니다.
7. Browser SSO 페이지의 Protocol Settings 탭에는 프로토콜 설정을 구성하는 동안 선택한 정보가 표시됩니다. Next를 클릭합니다.
8. Summary 탭의 정보를 검토합니다. 해당 정보가 정확하면 Done을 클릭합니다. IdP Connection 페이지가 열립니다.
9. IdP Connection 페이지의 Browser SSO 탭에서 Next를 클릭합니다.
10. Credentials 탭에서 Configure Credentials를 클릭합니다. Credentials 페이지가 열립니다. 이 페이지에서는 자격 증명을 구성하는 설정을 지정해야 합니다.
G) 자격 증명 구성
1. Digital Signature Settings 탭에서 Manage Certificates를 클릭합니다.
2. 서명 인증서를 생성하려면 Create New를 클릭하고 다음 값을 제공하고 Next를 클릭합니다.
▪ COMMON NAME
▪ ORGANIZATION
▪ COUNTRY
▪ VALIDITY (DAYS) - 365
▪ KEY ALGORITHM - RSA
▪ KEY SIZE (BITS) - 2048
▪ SIGNATURE ALGORITHM - RSA SHA256
3. Summary 탭의 정보를 검토합니다. 정보가 올바르면 Save를 클릭하고 Done을 클릭합니다.
4. Digital Signature Settings 탭에서 사용자가 생성한 SIGNING CERTIFICATE에 대해 INCLUDE THE CERTIFICATE IN THE SIGNATURE <KEYINFO> ELEMENT 확인란을 선택하고 Next를 클릭합니다.
이는 PingFederate의 요청을 IdP에 디지털 서명하는 데 사용되는 응용 프로그램 레이어 인증서입니다.
5. Signature Verification Settings 탭에서 Manage Signature Verification Settings를 클릭합니다.
a. Trust Model 탭에서 UNANCHORED를 선택하고 Next를 클릭합니다.
b. Signature Verification Certificate에서 IdP 서명 인증서가 표시되는지 확인하고 Next를 클릭합니다.
이는 IdP에서 PingFederate로의 요청에 대한 서명 확인에 사용되는 응용 프로그램 레이어 인증서입니다. IdP에서 metadata.xml 파일을 가져올 때 이를 PingFederate에 자동으로 가져왔습니다.
c. Summary 탭의 정보를 검토합니다. 해당 정보가 정확하면 Done을 클릭합니다.
d. Signature Verification Settings 탭에서 Next를 클릭합니다.
e. Select Decryption Keys에서 PingFederate 인증서를 선택하고 Next를 클릭합니다.
f. Summary 탭의 정보를 검토합니다. 해당 정보가 정확하면 Done을 클릭합니다.
g. Credentials 페이지에서 Next를 클릭합니다.
H) IdP 연결 활성화
Activation & Summary 페이지에서 SSO Application Endpoint가 활성화되어 있는지 확인하고 Save를 클릭합니다.
이제 IdP 연결이 생성되고 활성화됩니다.
I) IdP 연결 확인
직접 생성한 IdP 연결을 클릭하고 SSO Application Endpoint URL을 복사한 다음 브라우저에 붙여 넣고 해당 URL이 IdP로 리디렉션하는지 확인합니다. 따라서 PingFederate의 이 URL은 AD FS로 리디렉션해야 합니다. 다음과 유사한 페이지가 표시되고 해당 페이지에는 오류 메시지가 포함되어 있습니다.
파트 C: AD FS 신뢰 당사자 구성
1단계: PingFederate에서 메타데이터 XML 파일 내보내기
1. PingFederate에서 Service Provider로 이동하고 IDP Connections 아래에서 Manage All을 클릭합니다.
2. IdP 연결의 경우 Select Action 목록에서 Export Metadata를 클릭합니다.
3. Metadata Signing 페이지에서 Next를 클릭합니다.
4. Export & Summary 페이지에서 Export를 클릭하여 메타데이터 파일을 시스템의 Downloads 폴더에 다운로드하고 Done을 클릭합니다.
5. 메타데이터 XML 파일을 AD FS 시스템에 복사합니다.
2단계: AD FS에 신뢰 당사자 추가
1. AD FS 서버에 로그인하고 Server Manager를 엽니다.
2. > 로 이동합니다.
3. AD FS에서 Relying Party Trusts를 마우스 오른쪽 버튼으로 클릭한 다음 Add Relying Party Trust를 선택합니다. 이는 PingFederate로부터의 연결을 ADFS에서 신뢰한다고 확인하는 것입니다.
4. Add Relying Party Trust Wizard 창에서 다음을 수행합니다.
a. Start를 클릭합니다.
b. 다음 화면에서 Import data about the relying party from a file을 클릭합니다.
c. Browse를 클릭하여 AD FS의 신뢰 당사자를 만들기 위해 PingFederate에서 복사한 Metadata.xml의 위치로 이동하고 Next를 클릭합니다.
d. Display name을 제공하고 Next를 클릭합니다.
이 이름은 나중에 필요하므로 기록해 둡니다.
e. 다음 창에서 Finish 화면에 도달할 때까지 Next를 클릭합니다. 그런 다음 Close를 클릭합니다.
현재 엔트리가 Relying Part Trusts 목록에 추가됩니다.
다음 창도 표시되어야 합니다(현재 창 뒤에 숨겨져 있을 수도 있음).
5. AD FS 속성을 Active Directory에 매핑하려면 다음을 수행합니다.
a. Edit Claim Issuance Policy for <신뢰 당사자 신뢰 이름> 창에서 Add Rule을 클릭하고 Next를 클릭합니다.
b. Claim rule name을 제공하고 Attribute store를 Active Directory로 설정합니다.
c. Mapping of LDAP attributes to outgoing claim types 테이블의 목록에서 값을 선택하여 AD FS 속성을 Active Directory 속성에 매핑합니다.
| 이러한 속성을 올바르게 매핑하지 않으면 Single Sign-On이 작동하지 않습니다. |
Display-Name | Name |
SAM-Account-Name | Name ID |
E-Mail-Addresses | E-Mail Address |
Is-Member-Of-DL | Group |
d. Finish를 클릭하고 OK를 클릭합니다.
3단계: 전체 메시지 및 어설션을 암호화하도록 AD FS 설정
1. AD FS 시스템에서 관리자로 Windows PowerShell을 엽니다.
2. 통신이 작동하려면 AD FS 시스템에서 다음 명령을 실행합니다.
Set-ADFSRelyingPartyTrust -TargetName <신뢰 당사자 신뢰 이름> -SamlResponseSignature "MessageAndAssertion"
여기서 <신뢰 당사자 신뢰 이름>은 위의 2단계에서 생성하고 기록해 둔 신뢰 당사자 신뢰 이름입니다.
이 명령은 Windows PowerShell을 통해 SAML 응답 서명을 구성합니다.
파트 D: IdP 연결 끝점 URL 확인
1. PingFederate에서 SSO 응용 프로그램 끝점 URL을 복사한 다음 incognito 창에 붙여 넣습니다.
2. AD FS에 대해 작성한 도메인 이름 및 관리자 사용자를 사용하여 로그인합니다.
다음과 같은 메시지가 나타나야 합니다.
파트 E: ThingWorx에 대한 PingFederate 서비스 공급자 연결 만들기
1단계: ThingWorx 서명 인증서 만들기
1. <ThingWorx 설치 폴더>/ThingworxPlatform 폴더에서 ssoSecurityConfig 폴더를 생성합니다.
2. 다음과 같이 JKS 유형의 키 저장소를 생성하고 이름을 sso-keystore.jks로 지정합니다.
▪ 키 쌍을 생성합니다.
▪ 인증서의 공통 이름(CN)을 ThingWorx로 지정합니다.
3. sso-keystore.jks의 thingworx.cer을 ssoSecurityConfig 폴더로 내보냅니다.
2단계: ThingWorx에 대한 서비스 공급자 연결 구성
A) 서비스 공급자 연결을 생성하기 위한 일반 정보 지정
1. PingFederate 기본 페이지에서 SP Connections 그룹을 검색하고 Create Connection을 클릭합니다. SP Connection 페이지가 열립니다.
2. Connection Template 탭에서 DO NOT USE A TEMPLATE FOR THIS CONNECTION을 선택하고 Next를 클릭합니다.
3. Connection Type 탭에서 Browser SSO Profiles 확인란 및 SAML 2.0 Protocol 확인란을 선택하고 Next를 클릭합니다.
4. Connection Options 탭에서 BROWSER SSO 확인란을 선택하고 Next를 클릭합니다.
5. Import Metadata 탭에서 None을 선택하고 Next를 클릭합니다.
6. General Info 탭에서 다음 작업을 수행합니다.
a. Partner's Entity ID (Connection ID) 필드에 고유한 값(예: TWX_SP)을 제공합니다.
이 값은 ThingWorx sso-settings.json 파일을 구성할 때 사용하므로 기록해 둡니다.
b. Connection Name 필드에 설명 이름(예: TWX_SP)을 제공합니다.
이는 PingFederate SP 연결 목록에 표시될 이름입니다.
c. Base URL 필드에 ThingWorx가 배포되는 서버의 URL을 입력하고 Next를 클릭합니다. 예: https://{ThingWorxHost_FQDN}:8443.
7. Browser SSO 탭에서 Configure Browser SSO를 클릭합니다. Browser SSO 페이지가 열립니다. 이 페이지에서는 사용자의 브라우저에 대한 Single Sign-On 설정을 지정해야 합니다.
B) 브라우저 SSO 설정 구성
1. Browser SSO 페이지의 SAML Profiles 탭에 있는 Single Sign-On (SSO) Profiles 섹션 아래에서 다음 옵션을 선택하고 Next를 클릭합니다.
▪ IDP-INITIATED SSO
▪ SP-INITIATED SSO
Single Logout (SLO) Profiles 열에서는 어떤 옵션도 선택하지 마십시오.
2. Assertion Lifetime 탭에서 Minutes Before를 60으로 설정하고 Minutes After를 480으로 설정합니다. Next를 클릭합니다.
3. Assertion Creation 탭에서 Configure Assertion Creation을 클릭합니다. Assertion Creation 페이지가 열립니다. 이 페이지에서는 어설션 생성에 대한 설정을 지정해야 합니다.
C) 어설션 생성 설정 구성
1. Assertion Creation 페이지의 Identity Mapping 탭에서 Standard를 클릭하고 Next를 클릭합니다.
2. Attribute Contract 탭의 Attribute Contract 아래에 SAML_Subject를 입력하고 Subject Name Format 아래에서 값을 선택합니다.
3. Attribute Contract 탭의 Extend the Contract 필드에서 다음 설정을 구성하고 각 값 옆에 있는 Add를 클릭합니다.
계약 확장 | 속성 이름 형식 |
---|
group | urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified |
uid | urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified |
email | urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified |
Next를 클릭합니다.
4. Authentication Source Mapping 탭에서 Map New Authentication Policy를 클릭합니다. Authentication Policy Mapping 페이지가 열립니다. 이 페이지에서는 인증 정책 매핑에 대한 설정을 지정해야 합니다.
D) 인증 정책 매핑 설정 구성
1. Authentication Policy Mapping 페이지의
Authentication Policy Contract 목록에서
파트 B - 2단계에서 생성한 속성 계약(
SPContract)을 선택합니다.
Next를 클릭합니다.
2. Mapping Method 탭에서 USE ONLY THE AUTHENTICATION POLICY CONTRACT VALUES IN THE SAML ASSERTION을 클릭하고 Next를 클릭합니다.
3. Attribute Contract Fulfillment 탭에서 email, group, SAML_SUBJECT 및 uid 인증 정책 계약에 대해 다음 값을 선택합니다.
▪ Source 목록에서 Authentication Policy Contract를 선택합니다.
▪ Value 목록에서 해당 엔트리를 선택합니다.
Next를 클릭합니다.
4. Issuance Criteria 탭에서 설정을 건너뛰고 Next를 클릭합니다.
5. Summary 탭의 정보를 검토합니다. 해당 정보가 정확하면 Done을 클릭합니다. Assertion Creation 페이지가 열립니다. 이 페이지에서는 어설션 생성에 대한 구성 설정을 검토해야 합니다.
E) 어설션 생성 구성 설정 검토
1. Assertion Creation 페이지의 Authentication Source Mapping 탭에는 새 인증 정책을 매핑하는 동안 선택한 정보가 표시됩니다. Next를 클릭합니다.
2. Summary 탭의 정보를 검토합니다. 해당 정보가 정확하면 Done을 클릭합니다. Browser SSO 페이지가 열립니다.
3. Browser SSO 페이지의 Assertion Creation 탭에는 어설션 생성을 구성하는 동안 입력한 정보가 표시됩니다. Next를 클릭합니다.
4. Protocol Settings 탭에서 Configure Protocol Settings를 클릭합니다. Protocol Settings 페이지가 열립니다. 이 페이지에서는 프로토콜 설정을 지정해야 합니다.
F) 프로토콜 설정 구성 및 검토
1. Protocol Settings 페이지의 Assertion Consumer Service URL 탭에서 다음을 수행합니다.
a. Default 확인란을 선택합니다.
b. Index 필드에 0을 입력합니다.
c. Binding 목록에서 POST를 선택합니다.
d. Endpoint URL 필드에 /Thingworx/saml/SSO를 입력합니다.
e. Add를 클릭하고 Next를 클릭합니다.
2. Allowable SAML Bindings 탭에서 POST 확인란을 선택하고 Next를 클릭합니다.
3. Signature Policy 탭에서 다음 옵션을 선택하고 Next를 클릭합니다.
▪ REQUIRE AUTHN REQUESTS TO BE SIGNED WHEN RECEIVED VIA THE POST OR REDIRECT BINDINGS
▪ ALWAYS SIGN THE SAML ASSERTION
4. Encryption Policy 탭에서 The Entire Assertion을 선택하고 Next를 클릭합니다.
5. Summary 탭의 정보를 검토합니다. 해당 정보가 정확하면 Done을 클릭합니다. Browser SSO 페이지가 열립니다.
6. Browser SSO 페이지의 Protocol Settings 탭에는 프로토콜 설정을 구성하는 동안 선택한 정보가 표시됩니다. Next를 클릭합니다.
7. Summary 탭의 정보를 검토합니다. 해당 정보가 정확하면 Done을 클릭합니다. SP Connection 페이지가 열립니다.
8. SP Connection 페이지의 Browser SSO 탭에서 Next를 클릭합니다.
9. Credentials 탭에서 Configure Credentials를 클릭합니다. Credentials 페이지가 열립니다. 이 페이지에서는 자격 증명을 구성하는 설정을 지정해야 합니다.
G) 자격 증명 구성
1. Digital Signature Settings 탭에서 다음 작업을 수행합니다.
a. SIGNING CERTIFICATE 목록에서 인증서를 선택합니다.
b. INCLUDE THE CERTIFICATE IN THE SIGNATURE <KEYINFO> ELEMENT 확인란을 선택합니다.
Next를 클릭합니다.
2. Signature Verification Settings 탭에서 Save Draft를 클릭합니다.
3. Manage All을 클릭하고 Save를 클릭합니다.
H) 서명 확인 설정 구성/인증서 가져오기 및 암호화
1. 저장된 구성을 복원하려면 Identity Provider를 클릭하고 SP Connections에서 Manage All을 클릭합니다.
2. 초안으로 저장한 SP 연결인 TWX_SP를 클릭하고 Manage Signature Verification Settings를 클릭합니다.
3. Trust Model 탭에서 UNANCHORED를 선택하고 Next를 클릭합니다.
Signature Verification Certificate의 목록에 사용할 수 있는 인증서가 없습니다.
4. Manage Certificates를 클릭한 다음 Import를 클릭합니다.
5. Import Certificate 탭에서
Choose file을 클릭하여
파트 E - 1단계에서 생성한 인증서 파일을 찾아
Next를 클릭합니다.
6. Summary 탭에서 MAKE THIS THE ACTIVE CERTIFICATE 확인란이 선택되어 있는지 확인합니다.
7. Summary 페이지의 정보를 검토합니다. 해당 정보가 정확하면 Done을 클릭합니다. Certificate Management 페이지가 열립니다.
8. Done을 클릭합니다. Signature Verification 페이지가 열립니다.
9. Signature Verification Certificate 탭에 가져온 인증서가 표시되어야 합니다. Next를 클릭합니다.
10. Summary 페이지에서 Done을 클릭합니다.
11. Signature Verification Settings 탭에서 Next를 클릭합니다.
J) 인증서 암호화
1. Select XML Encryption Certificate 탭에서 다음을 수행하고 Next를 클릭합니다.
a. Block Encryption Algorithm에 대해 AES-128을 선택합니다.
b. Key Transport Algorithm에 대해 RSA-OAEP를 선택합니다.
c. 목록에서 인증서를 선택합니다.
2. Summary 탭의 정보를 검토합니다. 해당 정보가 정확하면 Done을 클릭합니다. Credentials 페이지가 열립니다. 이 페이지에서는 서명 확인에 대한 설정을 검토해야 합니다.
K) SP 연결 활성화
1. SP Connection 페이지의 Credentials 탭에는 자격 증명을 구성하는 동안 선택한 정보가 표시됩니다. Next를 클릭합니다.
2. Activation & Summary 페이지의 Connection Status 아래에서 연결이 활성화되어 있는지 확인합니다.
3. Save를 클릭합니다.
Identity Provider 페이지의 SP Connections 그룹 아래에 연결이 표시됩니다.
3단계: ThingWorx 서비스 공급자 연결 메타데이터 및 PingFederate 공용 인증서 내보내기
A) ThingWorx용 PingFederate에서 메타데이터 내보내기
1. PingFederate의 SP Connections 아래에서 Manage All을 클릭합니다.
2. 파트 E - 2단계에서 생성한 SP 연결(
TWX_SP)의 경우
Select Action 목록에서
Export Metadata를 클릭합니다.
3. Metadata Signing 탭에서 Next를 클릭합니다.
4. Export & Summary 탭에서 Export를 클릭합니다.
파일이 다운로드됩니다.
5. Done을 클릭합니다.
B) PingFederate 공용 인증서 내보내기
1. PingFederate의 SP Connections 아래에서 선택한 SP 연결(TWX_SP)을 클릭합니다.
2. Activation & Summary 탭의 Credentials 섹션 아래에서 Digital Signature Settings를 클릭하고 다음을 수행합니다.
3. Manage Certificates를 클릭합니다.
4. 인증서의 경우 Select Action 목록에서 Export를 클릭합니다.
5. CERTIFICATE ONLY 확인란을 선택하고 Export를 클릭합니다.
파일이 다운로드됩니다. 이 파일의 이름을 적절한 이름으로 바꿉니다. 예: pingfedsigning.crt
6. 이
PingFederate 공용 인증서 파일을
파트 E - 1단계에서 생성한
sso-keystore.jks 키 저장소로 가져옵니다.
3단계: ThingWorx 서비스 공급자 연결 메타데이터 및 PingFederate 공용 인증서 내보내기
A) ThingWorx용 PingFederate에서 메타데이터 내보내기
1. PingFederate의 SP Connections 아래에서 Manage All을 클릭합니다.
2. 파트 E - 2단계에서 생성한 SP 연결(
TWX_SP)의 경우
Select Action 목록에서
Export Metadata를 클릭합니다.
3. Metadata Signing 탭에서 Next를 클릭합니다.
4. Export & Summary 탭에서 Export를 클릭합니다.
파일이 다운로드됩니다.
5. Done을 클릭하고 Save를 클릭합니다.
B) PingFederate 공용 인증서 내보내기
1. PingFederate의 SP Connections 아래에서 선택한 SP 연결(TWX_SP)을 클릭합니다.
2. Activation & Summary 탭의 Credentials 섹션 아래에서 Digital Signature Settings를 클릭하고 다음을 수행합니다.
3. Manage Certificates를 클릭합니다.
4. 인증서의 경우 Select Action 목록에서 Export를 클릭합니다.
5. CERTIFICATE ONLY 확인란을 선택하고 Export를 클릭합니다.
파일이 다운로드됩니다. 이 파일의 이름을 적절한 이름으로 바꿉니다. 예: pingfedsigning.crt
6. 이
PingFederate 공용 인증서 파일을
파트 E - 1단계에서 생성한
sso-keystore.jks 키 저장소로 가져옵니다.
파트 F: Single Sign-On에 대한 ThingWorx 구성
1. ThingWorx 서버를 중지합니다.
Single Sign-On에 대한 ThingWorx 구성을 마쳤으면 ssoSecurityConfig에 다음 파일이 포함되어 있어야 합니다.
파트 G: SSL 인증서 만들기
1단계: ThingWorx SSL 인증서를 PingFederate Java cacerts 파일로 가져오기
1. ThingWorx에 대한 키 쌍(키 저장소)을 생성합니다. ThingWorx 호스트의 FQDN을 CN 값으로 사용하는지 확인합니다.
2. 이 키 쌍에서 ThingWorx 공용 SSL 인증서를 내보냅니다.
3. ThingWorx SSL 인증서(.crt)를 PingFederate 시스템의 Java cacerts 파일로 가져옵니다.
4. PingFederate를 다시 시작합니다.
2단계: PingFederate SSL 인증서를 ThingWorx Java cacerts 파일로 가져오기
1. PingFederate 인증서를 내보내려면 다음을 수행합니다.
a. PingFederate에서 > 를 클릭합니다.
b. 인증서의 경우 Select Action 목록에서 Export를 클릭하고 Next를 클릭합니다.
c. Export Certificate 탭에서 CERTIFCATE ONLY이 기본값인지 확인하고 Next를 클릭합니다.
d. Export & Summary 탭에서 Export를 클릭합니다.
인증서가 다운로드됩니다.
e. 인증서 이름을 적절한 이름으로 바꿉니다. 예: pingfedssl.cer
2. PingFederate SSL 인증서(.crt)를 ThingWorx 시스템의 Java cacerts 파일로 가져옵니다.
파트 H: ThingWorx의 OAuth 클라이언트 연결 만들기
| Redirect URIS 필드에 공백이 없는지 확인하고 구성 끝에서 Save를 클릭합니다. |
파트 I: SCIM 구성을 계속하기 전에 ThingWorx가 시작되는지 확인
1. ThingWorx를 시작합니다.
로그 파일을 점검하여 오류가 없는지 확인합니다.
2. AD FS에서 작성한 Domain\username으로 ThingWorx에 로그인합니다.
파트 J: ThingWorx와 함께 SCIM 구성
1단계: 아웃바운드 프로비져닝 활성화
1. PingFederate를 중지합니다.
2. ThingWorx를 중지합니다.
3. <pf_install>/pingfederate/bin(여기서 <pf_install>는 PingFederate에 대한 설치 위치임)에 있는 run.properties 파일에서 pf.provisioner.mode 값을 STANDALONE으로 업데이트합니다.
pf.provisioner.mode=STANDALONE
4. PingFederate를 시작합니다.
2단계: Active Directory에 대한 데이터 저장소 만들기
1. PingFederate에서 Data Stores를 검색합니다.
2. Add new Data Store를 클릭합니다.
3. NAME(예: LDAP_ADFS)을 입력하고 TYPE에 대해 Directory (LDAP)를 선택하고 Next를 클릭합니다.
4. HOSTNAME(S)에는 AD FS 시스템의 FQDN을 제공합니다.
5. USER DN에는 cn=Administrator,cn=Users,dc=thingworx,dc=com을 제공합니다.
6. PASSWORD에는 Active Directory에서 설정한 동일한 관리자 암호를 제공하고 Next를 클릭합니다.
7. Summary 탭에서 Save를 클릭합니다.
3단계: 암호 자격 증명 유효성 검사기 인스턴스 만들기
1. PingFederate에서 Password Credential Validators를 검색합니다.
2. Create New Instance를 클릭합니다.
3. INSTANCE NAME 및 INSTANCE ID에 대한 값을 제공합니다.
4. TYPE 목록에서 Simple Username Password Credential Validator를 선택하고 Next를 클릭합니다.
5. Instance Configuration 탭에서 Add a new row to 'Users'를 클릭합니다.
6. 기존 ThingWorx 사용자(예: 관리자)의 Username 및 Password를 제공합니다. Update를 클릭하고 Next를 클릭합니다.
7. Summary 탭에서 Done 및 Save를 클릭합니다.
4단계: 지속 권한 부여 계약에 암호 자격 증명 유효성 검사기 인스턴스 매핑
1. PingFederate에서 Resource Owner Credentials Grant Mapping을 검색합니다.
2. SOURCE PASSWORD VALIDATOR INSTANCE에서 위에서 생성한 유효성 검사기를 선택하고 Add Mapping을 클릭합니다.
3. Attribute Sources & User Lookup 탭에서 Next를 클릭합니다.
4. Contract Fulfillment 탭에서 Source를 Password Credential Validator로 설정하고 Value를 username으로 설정한 후 Next를 클릭합니다.
5. Issuance Criteria 탭에서 Next를 클릭합니다.
6. Summary 탭에서 Save를 클릭합니다.
5단계: SCIM용 OAuth 클라이언트 만들기
OAuth 클라이언트는 PingFederate가 ThingWorx에 대한 액세스 토큰을 제공하는 연결 점입니다. 서비스 공급자는 이러한 액세스 토큰을 사용하여 ThingWorx에서 OAuth 보호된 리소스를 요청합니다.
1. PingFederate에서 Clients를 검색하고 검색 결과를 엽니다. Add Client를 클릭합니다.
2. CLIENT ID 및 NAME에 고유한 값을 제공합니다.
3. CLIENT AUTHENTICATION을 CLIENT SECRET으로 설정합니다.
4. CLIENT SECRET에 대해 CHANGE SECRET 확인란을 선택한 다음 Generate Secret을 클릭합니다.
CLIENT ID 및 CLIENT SECRET의 값은 sso-settings.json 파일에서 SCIMAccessTokenServicesSettings 섹션을 구성할 때 필요하므로 기록해 둡니다.
5. REDIRECT URIS 필드에 https://{THINGWORX 호스트}:8443/Thingworx/SCIMProvider/SCIM을 입력하고 Add를 클릭합니다.
6. ALLOWED GRANT TYPES에는 Client Credentials, Resource Owner Password Credentials 및 Access Token Validation (Client is a Resource Server) 확인란을 선택합니다.
7. DEFAULT ACCESS TOKEN MANAGER를 Default로 설정합니다.
8. 다음 이미지에 따라 나머지 값을 설정했는지 확인합니다.
9. Save를 클릭합니다.
6단계: platform-settings.json 파일에서 SCIM 구성
7단계: SCIM 하위 시스템이 실행 중인지 확인
1. ThingWorx 서버를 시작합니다.
2. ThingWorx Composer에서 찾아보기를 클릭하고 하위 시스템을 선택합니다.
3. SCIMSubsystem을 선택하고 실행 중인지 확인합니다.
8단계: USERNAME 및 USER_KEY 매핑
1. PingFederate에서 Access Token Management를 검색합니다.
2. Create New Instance를 클릭합니다.
3. INSTANCE NAME을 제공합니다.
4. INSTANCE ID의 경우 default를 입력합니다.
5. TYPE을 Internally Managed Reference Tokens로 설정하고 Next를 클릭합니다.
6. Instance Configuration 탭에서 Next를 클릭합니다.
7. Session Validation 탭에서 Next를 클릭합니다.
8. Access Token Attribute Contract 탭에서 다음을 수행하고 Next를 클릭합니다.
a. Extend the Contract 아래에서 Windchill의 Username을 추가하고 Add를 클릭합니다.
| 여기서 나와 있는 대/소문자와 동일하게 지정해야 합니다. |
b. Extend the Contract 아래에서 SCIM의 username을 추가하고 Add를 클릭합니다.
| 여기서 나와 있는 대/소문자와 동일하게 지정해야 합니다. |
9. Resource URIs 탭에서 Next를 클릭합니다.
10. Access Control 탭에서 Next를 클릭합니다.
11. Summary 탭에서 Save를 클릭합니다.
12. Access Token Mapping을 검색한 다음 Add Mapping을 클릭합니다(Default 컨텍스트로).
13. Contract Fulfillment 탭에 도달할 때까지 Next를 클릭합니다.
14. Contract Fulfillment 탭에서 Username 및 username 계약에 대해 다음을 수행합니다.
▪ Source를 Persistent Grant로 설정합니다.
▪ Value를 USER_KEY로 설정합니다.
15. Issuance Criteria 탭에서 Next를 클릭합니다.
16. Summary 탭에서 Save를 클릭합니다.
9단계: SCIM에 대한 서비스 공급자 연결 정의
1. PingFederate에서 SP CONNECTIONS를 검색하고 새 연결을 만듭니다.
2. Connection Template 탭에서 DO NOT USE A TEMPLATE FOR THIS CONNECTION을 선택하고 Next를 클릭합니다.
3. CONNECTION TYPE 탭에서 다음을 수행하고 Next를 클릭합니다.
a. BROWSER SSO PROFILES 확인란이 선택되지 않았는지 확인합니다.
b. OUTBOUND PROVISIONING 확인란을 선택하고 TYPE을 SCIM 1.1 Service Provider로 설정합니다.
4. General Info 탭에서 다음을 수행하고 Next를 클릭합니다.
a. PARTNER'S ENTITY ID (CONNECTION ID) 및 CONNECTION NAME을 지정합니다. 예: SCIM_ADFS_SP
b. BASE URL 필드에 https://ThingWorx_FQDN:8443/Thingworx/SCIMProvider를 입력합니다.
| 이를 PingFederate에 복사할 때 URL 끝에 공백이 없어야 합니다. |
5. Outbound Provisioning 탭에서 Configure Provisioning을 클릭합니다.
6. Custom SCIM Attributes 탭에서 다음을 수행하고 Next를 클릭합니다.
a. USERS RESOURCE URL 필드에 https://ThingWorx_FQDN:8443/Thingworx/SCIMProvider/SCIM/Users를 입력합니다.
| 이를 PingFederate에 복사할 때 URL 끝에 공백이 없어야 합니다. |
b. GROUPS RESOURCE URL 필드에 https://ThingWorx_FQDN:8443/Thingworx/SCIMProvider/SCIM/Groups를 입력합니다.
| 이를 PingFederate에 복사할 때 URL 끝에 공백이 없어야 합니다. |
c. AUTHENTICATION METHOD을 OAUTH 2.0 BEARER TOKEN으로 설정합니다.
d. USER를 Administrator로 지정하고 PASSWORD를 입력합니다.
e. sso-settings.json 파일에서 CLIENT ID 및 CLIENT SECRET 값을 지정합니다.
f. TOKEN END POINT URL에 https://PingFederate 호스트:9031/as/token.oauth2를 입력합니다.
g. SCIM SP SUPPORTS PATCH UPDATES 및 PROVISION GROUPS WITH DISTINGUISHED NAME 확인란이 선택되지 않았는지 확인합니다.
h. DEPROVISION METHOD를 DELETE USER로 설정합니다.
7. Custom SCIM Attributes 탭에서 Next를 클릭합니다.
10단계: 데이터 저장소에 대한 채널 만들기
1. Manage Channels 탭에서 Create를 클릭합니다.
2. CHANNEL NAME을 제공합니다.
3. 2단계에서 생성한 ACTIVE DATA STORE(LDAP_ADFS)를 선택하고 Next를 클릭합니다.
4. Source Settings 탭에서 Next를 클릭합니다.
5. Source Location 탭에서 다음을 수행하고 Next를 클릭합니다.
a. BASE DN 필드에 cn=users,dc=thingworx,dc=com을 입력합니다.
b. Users 아래의 FILTER 필드에 (&(objectCategory=person)(objectClass=user)(cn=*))를 입력합니다.
c. Groups 아래의 FILTER 필드에 (&(objectCategory=group))을 입력합니다.
6. Attribute Mapping 탭에서 Next를 클릭합니다.
7. Activation & Summary 탭에서 Channel Status를 ACTIVE로 설정하고 Done을 클릭합니다.
8. Manage Channels 탭에서 Done을 클릭합니다.
9. Outbound Provisioning 탭에서 Next를 클릭합니다.
10. SP 연결이 활성(녹색)인지 확인하고 Save를 클릭합니다.
SP 연결은 SP 연결 페이지에 나열되어 있습니다.
11단계: LDAP 바이너리 속성 추가
1. > > 로 이동합니다.
2. LDAP_ADFS 데이터 저장소를 클릭하고 LDAP Configuration 탭을 선택합니다.
3. 바인딩 및 구성에 대한 추가 설정을 보려면 Advanced를 클릭합니다.
4. LDAP Binary Attributes 탭을 클릭하고 값이 objectGUID인 새 바이너리 속성을 추가합니다.
5. Save를 클릭합니다.
파트 K: Windchill을 리소스 서버로 구성
1단계: 사전 요구 사항
◦ Windchill가 SSL/OAuth 2.0용으로 구성되어 있어야 합니다.
◦ ThingWorx 및 PingFederate SSL 인증서를 Windchill 시스템의 jssecacerts/ cacerts 파일로 가져와야 합니다.
◦ Windchill SSL 인증서를 ThingWorx 시스템의 jssecacerts/cacerts 파일로 가져와야 합니다.
◦ Windchill SSL 인증서를 PingFederate 시스템의 jssecacerts/cacerts 파일로 가져와야 합니다.
2단계: Windchill OAuth 2.0 파일 구성 완료
<WC_install_root>\Windchill\codebase\WEB-INF\security\config에서 사용 가능한 securityContext.properties 파일을 업데이트합니다.
◦ checkTokenEndpointUrl - PingFederate 시스템의 FQDN입니다.
◦ clientId - OAuth 클라이언트 ID(예: wnc-rp-client)입니다.
◦ clientSecret - OAuth 클라이언트 보안입니다.
◦ resourceScopes - Windchill 범위(예: WINDCHILL_READ)입니다.
3단계: 리소스 서버로 Windchill의 OAuth 클라이언트 연결 만들기
| securityContext.properties 파일에서 clientId 및 clientSecret 값을 검색할 수 있습니다. |
4단계: PingFederate에서 Windchill 범위 만들기
1. PingFederate의 OAuth Server 페이지에서 Scope Management를 클릭합니다.
2. Scope Value 아래에서 Add를 클릭하여 securityContext.properties 파일에서 resourceScopes 값에 대해 추가한 동일 범위(예: WINDCHILL_READ)를 추가합니다.
3. Save를 클릭합니다.