Okta의 Applications에서 App Catalog로 SCIM 프로비저닝을 연동하는 방법을 설명한다.
SCIM 프로비저닝은 유료 상품에서만 사용할 수 있다. 무료 상품에서는 사용할 수 없다.
아래에 명시된 프로비저닝 기능을 제공한다.
App Catalog로 LINE WORKS 앱을 생성하면 기본 속성 매핑이 제공된다.
SCIM 프로비저닝 구성을 완료한 후 Provisioning 탭에서 확인할 수 있다.
SCIM userName 속성은 WORKS의 email(계정)과 매핑되고, emails[type eq "alias"].value 속성은 WORKS의 aliasEmails(보조 메일 주소)와 매핑된다.
따라서 이 속성들은 반드시 이메일 형식이어야 하고, 도메인 파트는 WORKS에 등록한 도메인과 일치해야 한다.
Okta User Profile에 설정한 값 중에서 SCIM userName으로 사용할 수 있는 적절한 속성을 선택하거나 식을 작성하여 Custom 값을 사용할 수 있다.
Sign On 탭에서 선택하는 Application username format에 따라 WORKS 계정으로 연동할 값을 지정한다.
Custom 선택(권장)toLowerCase(String.substringBefore(user.login, '@')) + "@{domainPart}")을 사용해 설정할 수 있다. 예를 들어 사용 중인 WORKS의 도메인이 'works.com'이라면 toLowerCase(String.substringBefore(user.login, '@')) + "@works.com"을 입력한다.Okta username 선택Email 선택emails[type eq "alias"].value로 매핑하지 않아야 한다(이메일 중복 이슈).App Catalog의 LINE WORKS 앱에서 제공하는 기본 속성 매핑은 다음과 같다.
Application username format을 Custom 식으로 선택하여 입력하는 것을 가정한다.
기본 속성 매핑을 사용하는 환경에 맞게 수정할 수 있다.
만약 Application username format으로 Email을 선택한다면 보조 이메일을 매핑에서 제거해야 한다.
WORKS에서 제공하는 SCIM 속성 정보와 제약 조건은 속성 매핑을 참고한다.
| Okta Property | WORKS Property | Description |
|---|---|---|
| username (Application username format 설정에 따라 다름) | WORKS 로그인 계정 (도메인 파트는 WORKS 도메인과 일치해야 한다.) | |
| user.lastName | lastName | 이름 (성과 이름 중 하나는 반드시 입력해야 한다.) |
| user.givenName | firstName | 성 (성과 이름 중 하나는 반드시 입력해야 한다.) |
| user.nickName | nickName | 닉네임 |
| user.preferredLanguage | locale | 언어 |
| user.timezone | timeZone | 타임존 |
| user.email | aliasEmails | 보조 이메일 (도메인 파트는 WORKS 도메인과 일치해야 한다.) |
| user.secondEmail | privateEmail | 개인 이메일 |
| user.primaryPhone | telephone | 사내 전화번호 |
| user.mobilePhone | cellPhone | 휴대폰 번호 |
Okta Admin에서 Applications > Browse App Catalog를 클릭한다.

검색 창에 "LINE WORKS"를 입력한 후 클릭한다.

App Integration 버튼을 클릭한다.

App 이름을 입력한 후 Done 버튼을 클릭한다.

Sign On 탭에서 Application username format을 설정한다. 이 값은 WORKS의 계정(email)으로 사용되며, 반드시 제약 사항을 준수해야 한다. 속성 매핑을 참고하여 사용 환경에 맞는 적절한 값을 설정한다.

Custom을 선택하고, 아래의 표를 참고하여 식(expression)을 입력하는 것을 권장한다.| 계정 localpart 사용 방식 | 예시 |
|---|---|
| Okta Login 계정의 앞부분 사용 시 (권장) | 식: toLowerCase(String.substringBefore(user.login, '@')) + '@{enter your domain}'{enter your domain} 부분에는 사용 중인 WORKS의 도메인을 입력한다 |
| Okta User Profile에 설정한 Primary email의 localpart 사용 시 | 식: toLowerCase(String.substringBefore(user.email, '@')) + '@{enter your domain}'{enter your domain} 부분에는 사용 중인 WORKS의 도메인을 입력한다 |
| Okta User Profile(Default)의 다른 속성 사용 시 | 식: toLowerCase(user.$attribute) + '@{enter your domain}'{enter your domain} 부분에는 사용 중인 WORKS의 도메인을 입력한다$attribute 부분은 Okta User Profile의 속성에 맞게 수정한다. |
Provisioning 탭에서 왼쪽의 Settings > Integration을 클릭하여 이동한다. 그러고 나서 Configure API Integration을 클릭한 후 Enable API integration을 선택한다.

SCIM 전용 Long-Lived Token 발급 방법을 참고하여 Access Token을 획득한다.
다시 Okta로 돌아와서 API Token에 3에서 획득한 Token을 입력하고, Test API Credentials를 클릭하여 정상적으로 연동되는지 확인한 후 Save를 클릭한다.

SCIM 프로비저닝 설정은 Provisioning 탭에서 할 수 있다.
To App에서 Okta→WORKS 사용자 프로비저닝이 발생하는 시점을 설정할 수 있다.

emails[type eq "other"].value)을 반드시 전달해야 한다.To App에서 Okta→WORKS 프로비저닝 속성 매핑을 설정할 수 있다.

Assignments 탭에서 사용자 Assign으로 프로비저닝 상태를 확인한다.

Sign On 탭에서 연동에 필요한 정보를 얻어서 Developer Console의 SSO > WORKS as SP에 설정한다.
openssl x509 -inform PEM -in okta.cert -out okta.pem).

Sign On 탭에서 Edit 버튼을 누르고, Advanced Sign-on Settings의 Domain name 항목에 사용 중인 WORKS 도메인을 입력한다.
