Okta と SCIM プロビジョニング連携する (カスタム連携)

概要 {#overview}

Okta で アプリ統合を作成 して SCIM プロビジョニング連携する方法を説明します。

利用条件 {#prerequisites}

  • WORKS で SCIM プロビジョニングを設定するには、あらかじめ SSO (SAML 2.0) を構成しておく必要があります。
  • SCIM プロビジョニング連携は、有償商品を利用しているお客様が利用できます。無償商品のみを使用するお客様はご利用になれません。

サポートされる機能 {#supported-features}

以下のプロビジョニング機能が利用できます。

  • Create users
  • Update user properties
  • Deactivate users
  • Import users
  • Create groups with members
  • Update group properties and members
  • Delete groups
  • Import groups

属性マッピングの例 {#property-mapping-example}

WORKS で利用できる SCIM 属性と制約に関する情報は、属性マッピングを参照して下さい。

SCIM userName 属性は WORKS の email (アカウント) とマッピングされ、emails[type eq "alias"].value 属性は、WORKS の aliasEmails (サブメールアドレス) とマッピングされます。
このため、この属性は電子メール形式でなければならず、ドメインパートは WORKS に登録したドメインと同一でなければなりません。

既定の Okta ユーザープロファイルに設定された値の中から SCIM userName に使用できる適切な属性を選択するか、式を作成してカスタムの値を使用します。

次の表は、既定の Okta ユーザープロファイル属性と SCIM 属性のマッピングの例を示します。
使用する環境に合わせて適切な属性マッピングを設定したあとで、ユーザーのプロビジョニングを行います。

SCIM 属性Okta Mapping TypeOkta Mapping Value
userNameアプリケーションユーザー名の​形式1. Okta の username が電子メール形式であり、ドメインパートが WORKS と同一の場合
・ Oktaユーザー名 を選択
・ user.email を emails[type eq "alias"].value にマッピングして、サブメールアドレスとして使用することができます。ただし、Okta username と user.email は、異なる値である必要があります。

2. Okta ユーザープロファイルの email 属性のドメインパートが WORKS と同一の場合
・ メールアドレス を選択
・ user.email を emails[type eq "alias"].value にマッピングしてはなりません。

3. Okta の username、email のどちらも WORKS のドメインパートと同じではない場合、または電子メール形式ではない場合
・ カスタム を選択
・ 式 : toLowerCase(String.substringBefore(user.email, '@')) + "@{domainPart}"
name.familyNameOktaプロファイルからマッピングuser.firstName
name.givenNameOktaプロファイルからマッピングuser.lastName
nickNameOktaプロファイルからマッピングuser.nickName
preferredLanguageOktaプロファイルからマッピングuser.preferredLanguage
timezoneOktaプロファイルからマッピングuser.timezone
emails[type eq "alias"].type式(user.email!=null && user.email!='') ? 'alias' : ''
emails[type eq "alias"].valueOktaプロファイルからマッピングuser.email
emails[type eq "other"].type式(user.secondEmail!=null&&user.secondEmail!='') ? 'other' : ''
emails[type eq "other"].valueOktaプロファイルからマッピングuser.secondEmail
phoneNumbers[type eq "work"].type式(user.primaryPhone != null && user.primaryPhone != '') ? 'work' : ''
phoneNumbers[type eq "work"].valueOktaプロファイルからマッピングuser.primaryPhone
phoneNumbers[type eq "mobile"].type式(user.mobilePhone!= null && user.mobilePhone!= '') ? 'mobile' : ''
phoneNumbers[type eq "mobile"].valueOktaプロファイルからマッピングuser.mobilePhone

設定手順 {#configuration-step}

Step 1. Okta で Application を作成し、SSO (SAML 2.0) 連携を設定する {#scim-configuration}

  1. Okta Admin で "アプリケーション > アプリ統合を作成" をクリックし SAML 2.0 を選択します。

scim_okta_setting_custom_1_1_1 scim_okta_setting_custom_1_1_2

  1. "アプリ名" とその他の情報を入力します。

scim_okta_setting_custom_1_2

  1. SAML を設定します。
  • シングルサインオンURL
    • https://auth.worksmobile.com/acs/{domain}
    • 参考 : SAML Request
  • オーディエンスURI(SPエンティティID)
    • https://auth.worksmobile.com/acs/{domain}
    • 参考 : SAML Request
  • アプリケーションの​ユーザー名
    • 各環境に合わせて適切な値を設定する (属性マッピングの例 を参考)

scim_okta_setting_custom_1_3

  1. サインオン タブで SAML 2.0 の 詳細 より連携に必要な情報を取得し、Developer Console の SSO > WORKS as SP で設定します。
  • Okta で "サインオンURL" をコピーし、Developer Consoleの "Web Login URL" に設定します。
  • Okta で "サインアウトURL" をコピーし、Developer Consoleの "Logout URL" に設定します。
  • Okta で "署名証明書" をダウンロードし、拡張子を .cert から .pem に変更した後、Developer Consoleの "IdP-issued Certificate" にアップロードします。

scim_okta_setting_custom_1_4_1 scim_okta_setting_custom_1_4_1

Step 2. SCIM プロビジョニング設定 {#scim-provisioning-configuration}

  1. 一般 タブのプロビジョニング設定で "SCIM" を選択し保存すると、プロビジョニング タブが表示されます。

scim_okta_setting_custom_2_1

  1. 長期トークン を参考に、SCIM プロビジョニング連携のためのアクセストークンを取得する。

  2. SCIM 接続 を設定し、テストします。

  • SCIMコネクターの​ベースURL
    • https://www.worksapis.com/scim/v2
  • ユーザーの​一意の​IDフィールド
    • userName
  • サポートされている​プロビジョニングアクション
    • 使用するプロビジョニングアクションを選択
  • 認証モード
    • HTTPヘッダー を選択
  • 承認 - トークン
    • 2 で取得した長期トークンを指定

scim_okta_setting_custom_2_3

  1. "プロビジョニング > アプリへ" でユーザーのプロビジョニングを設定します。 (「パスワードを同期」はサポートされません)

scim_okta_setting_custom_2_4

  1. "プロビジョニング > アプリへ" で属性マッピングを構成します。

scim_okta_setting_custom_2_5

  1. 割り当て タブでプロビジョニングを確認します。

scim_okta_setting_custom_2_6