No3.Azure ADの認証基盤からの移行(Directory Sync利用あり)
Azure ADを認証基盤に利用している状態から、IIJ IDサービスに認証基盤を移行します。
Azure AD Connectなどを利用せずにAzure AD(Microsoft 365)上で直接アカウントを管理している状態から、IIJ IDサービスに認証基盤を移行します。
【参考】
ここに記載された内容は参考です。
実際の作業は、お客様の環境に合わせて実施してください。
連携のイメージ
Directory SyncによりActive DirectoryからIIJ IDにユーザを同期します。
また、IIJ IDからAzure ADにユーザをプロビジョニングし、プロビジョニングされたユーザとのフェデレーションを行います。
Azure AD上には既存のAzure ADユーザが存在するため、既存のAzure ADユーザとの連携も考慮します。
既存のAzure ADユーザについては、IIJ IDユーザのIDをAzure ADのuserPrincipalNameに揃えます。
なお、Azure ADにて外部の認証基盤とのフェデレーションを有効にしていない場合、Azure ADユーザのimmutableIdに値は設定されていません。
そのため、IIJ IDからのプロビジョニングによってIIJ IDの外部IDに上書きされます。
セットアップフロー例
1. 事前準備 | 備考 | ||
---|---|---|---|
1.1 Microsoft 365でのドメインの登録 | |||
1.2 Windows PowerShellのセットアップ | |||
1.3 Microsoft 365アプリケーションの追加 | |||
2. Directory Syncのセットアップ | |||
2.1 Directory Syncのセットアップ | |||
3. 連携設定 | |||
3.1 アプリケーションの基本設定の変更 | |||
3.2 Graph APIの設定 | |||
3.3 プロビジョニングの設定 | |||
3.4 利用者の設定 | |||
3.5 フェデレーションの設定 | Microsoft 365へのユーザのプロビジョニングが完了していることを必ず確認してください プロビジョニング処理によってIIJ IDからAzure ADの各ユーザに対してimmutableIdの値が設定されます。ユーザのプロビジョニング処理が完了していない状態でフェデレーション設定を有効にした場合、immutabeldの値が設定されていないユーザはMicrosoft 365にログインできなくなります |
Directory Syncの設定例
以下のように同期させます。
【参考】
この例では、既存のAzure ADユーザのuserPrincipalNameがActive DirectoryユーザのuserPrincipalNameと一致している必要があります。
Active Directory | IIJ ID | Azure AD | 備考 | ||
---|---|---|---|---|---|
ms-DS-ConsistencyGuid objectGUID | -> | アプリケーション連携ID(downstreamId) | -> | immutalbeId | 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