No2.外部の認証基盤からの移行(Directory Sync利用あり)

外部の認証基盤を利用している状態から、IIJ IDサービスに認証基盤を移行します。
また、Directory Syncを利用してActive DirectoryからIIJ IDにアカウントを同期します。

【参考】

ここに記載された内容は参考です。

実際の作業は、お客様の環境に合わせて実施してください。

連携のイメージ

Directory SyncによりActive DirectoryからIIJ IDにユーザを同期します。
また、IIJ IDからAzure ADにユーザをプロビジョニングし、プロビジョニングされたユーザとのフェデレーションを行います。


Azure AD上には旧認証基盤で作成された既存のAzure ADユーザが存在するため、既存のAzure ADユーザとの連携も考慮します。

既存のAzure ADユーザのimmutableIdの値は認証基盤の仕様に依存するため、事前に確認します。
そのimmutableIdの値をActive Directoryユーザの「任意のAD属性」に設定し、Directory SyncにてIIJ IDユーザの外部IDに設定されるようにします。

新規に作成するActive Directoryユーザは、前述の「任意のAD属性」には値を設定せず、Directory Syncにて別のActive Directory属性(objectGUIDなど)をIIJ IDのアプリケーション連携IDに設定するようにします。

セットアップフロー例
Directory Syncの設定例

以下のように同期させます。

【参考】

この例では、既存のAzure ADユーザのimmutableIdがActive Directoryユーザの anyADAttribute(任意のAD属性)かmS-DS-ConsistencyGuidに設定されている必要があります。

Active Directory
IIJ ID
Azure AD備考

anyADAttribute
mS-DS-ConsistencyGuid
objectGUID

->アプリケーション連携ID(downstreamId)->immutalbeIdanyADAttributeの値が空の場合にms-DS-ConsistencyGuidの値が反映されます。更に、ms-DS-ConsistencyGuidの値が空の場合はobjectGUIDの値が反映されます
userPrincipalName->ID(userName)->userPrincipalName

config.ymlサンプル

log:
  loglevel:                      info

ad:
  ldap:
    server:
      addresses:
                                 - 127.0.0.1
      user:                      'CN=administrator,CN=Users,DC=example,DC=jp'
    base_dn:                     'DC=example,DC=jp'
    filter:
      user:                      'memberOf:1.2.840.113556.1.4.1941:=CN=IID_IDaaS利用者グループ,OU=IID_Groups,DC=example,DC=jp'
      group:                     'memberOf:1.2.840.113556.1.4.1941:=CN=IID_IDaaS利用者グループ,OU=IID_Groups,DC=example,DC=jp'

iid:
  scim:
    attribute:
      user:
        default:
          emails:
            - primary:           true
        ad_bind:
          externalId:            userPrincipalName
          downstreamId:
                                 - mS-DS-ConsistencyGuid
                                 - objectGUID
          userName:              userPrincipalName
          emails:
            - value:             mail
      group:
        ad_bind:
          externalId:            objectGUID
          displayName:           name