Microsoft Entra ID 外部連携モジュール
UCIDM では Microsoft Entra ID に対して ID 連携できます。
Microsoft Entra ID 外部連携設定手順
事前準備
外部連携先の Microsoft Entra ID をご用意下さい。また、UCIDM 稼働サーバーから外部連携先 Microsoft Entra ID への以下の接続情報をご準備ください。
- Microsoft Entra ID の Client ID
- Microsoft Entra ID の Client Secret
- Microsoft Entra ID の Tenant ID
コンテナの設定
Microsoft Entra ID 外部連携モジュールはコンテナとして稼働させます。次のように compose.yml に設定します。entrypoint では次の設定ができます。
-verbose: デバッグログを出力-jsonl: JSON 形式でログを出力
consumer-meid:
depends_on:
rabbitmq:
condition: service_healthy
container_name: consumer-meid
image: docker.io/osstech/ucidm-consumer:latest
logging: *default-logging
ports:
- 7099:7099
volumes:
- type: bind
source: ./server-data
target: /ucidm
bind:
create_host_path: false
entrypoint:
- ./bin/app-main
- -jsonl
environment:
TZ: "${TZ}"
DESTINATION_ID: "meid-001"
MONGO_USER: "${MONGO_USER}"
MONGO_PASSWORD: "${MONGO_PASSWORD}"
MONGO_DATABASE: "${MONGO_DATABASE}"
MONGO_HOSTS: "${MONGO_HOSTS}"
MONGO_REPLICA_SET: "${MONGO_REPLICA_SET}"
RABBITMQ_USER: "${RABBITMQ_USER}"
RABBITMQ_PASSWORD: "${RABBITMQ_PASSWORD}"
RABBITMQ_HOST: "${RABBITMQ_HOST}"
MEID_CLIENT_ID: "${MEID_CLIENT_ID}"
MEID_CLIENT_SECRET: "${MEID_CLIENT_SECRET}"
MEID_TENANT_ID: "${MEID_TENANT_ID}"
restart: "always"
ここで参照する環境変数は ucidm.env に設定します。
環境変数の設定
| 環境変数 | 値 | 既定値 | 説明 |
|---|---|---|---|
| TZ | 任意 | – | タイムゾーン情報 |
| DESTINATION_ID | 任意 | – | 外部連携先 ID 管理画面で作成した外部連携先 ID を指定 |
| MONGO_USER | 任意 | – | 接続する MongoDB のユーザ名 |
| MONGO_PASSWORD | 任意 | – | 接続する MongoDB のパスワード |
| MONGO_DATABASE | 任意 | ucidm | 接続する MongoDB のデータベース |
| MONGO_HOSTS | 任意 | – | 接続する MongoDB のホスト |
| MONGO_REPLICA_SET | 任意 | – | 接続する MongoDB のレプリカセットの名前 |
| RABBITMQ_USER | 任意 | – | 接続する RabbitMQ のユーザ名 |
| RABBITMQ_PASSWORD | 任意 | – | 接続する RabbitMQ のパスワード |
| RABBITMQ_HOST | 任意 | – | 接続する RabbitMQ のホスト |
| MEID_CLIENT_ID | 任意 | – | Microsoft Entra ID の Client ID |
| MEID_CLIENT_SECRET | 任意 | – | Microsoft Entra ID の Client Secret |
| MEID_TENANT_ID | 任意 | – | Microsoft Entra ID の Tenant ID |
| ENABLE_SCRIPT_PASSWORD | true または false | false | ユーザーパスワード更新時に外部連携の 前処理/後処理スクリプトにパスワードの値を連携するかどうか |
Microsoft Entra ID 外部連携設定
管理画面にて Microsoft Entra ID の外部連携設定が行えます。ホーム画面の「外部連携設定」を選択し、外部連携設定一覧画面に遷移します。外部連携設定一覧画面で、登録ボタンを押下することで新規外部連携設定画面が表示されます。

この新規外部連携設定画面の各タブで詳細内容を設定します。設定が完了したら「登録」ボタンを押下することで外部連携設定が作成されます。
外部連携設定作成後は、ルーティング設定 にてこの外部連携設定を適用するユーザーおよびグループを指定して下さい。
外部連携主要情報
Microsoft Entra ID 外部連携の主要情報を指定します。
- 連携 ID
- 一意の連携 ID を指定します
- 外部連携先 ID
- 上記コンテナの DESTINATION_ID 環境変数で設定した値を指定します
- 外部連携先 タイプ
- Microsoft Entra ID
動作設定
管理画面にて Microsoft Entra ID の動作設定をすることができます。
設定項目と内容は次になります。
- ドメイン名
- Microsoft Entra ID のドメイン名を指定します
- Immutable ID を自動生成
- Immutable ID を自動生成するかどうかを指定します
- true の場合、onPremisesImmutableId に UCIDM で発行された値がセットされます
- ドライランモード
- 接続の取得やエントリの検索は行いますが、実際にエントリの追加/変更/削除は行わないモードとなります
- 主にテスト時の動作確認等に使うことを想定しています
実施しない操作の設定
- ユーザー追加/更新を行わない
- Microsoft Entra ID に対してユーザー追加/更新を行わない場合は、この項目をオン(true)にしてください
- ユーザー削除を行わない
- Microsoft Entra ID に対してユーザー削除を行わない場合は、この項目をオン(true)にしてください
- ユーザーパスワード更新を行わない
- Microsoft Entra ID に対してユーザーパスワード更新を行わない場合は、この項目をオン(true)にしてください
- グループ追加/更新を行わない
- Microsoft Entra ID に対してグループ追加/更新を行わない場合は、この項目をオン(true)にしてください
- グループ削除を行わない
- Microsoft Entra ID に対してグループ削除を行わない場合は、この項目をオン(true)にしてください
- グループメンバー追加を行わない
- Microsoft Entra ID に対してグループメンバー追加を行わない場合は、この項目をオン(true)にしてください
- グループメンバー削除を行わない
- Microsoft Entra ID に対してグループメンバー削除を行わない場合は、この項目をオン(true)にしてください
マッピング
Microsoft Entra ID 外部連携の以下マッピング設定を行います。
- 属性マッピング
次でマッピング設定について説明します。
属性マッピング
次の 属性マッピング設定 を参考にしてください。
Microsoft Entra ID では階層構造を持つ属性があります。 例えば、passwordProfile 内の forceChangePasswordNextSignIn に対して属性値をマッピングする場合は、「passwordProfile.forceChangePasswordNextSignIn」に対してマッピングをする必要があります。
以下は Microsoft Entra ID 外部連携のユーザーマッピング設定の一例です。
| 連携先の属性名 | 連携元の属性名 | ビルトイン関数名 | テンプレート文字列 | 固定値 |
|---|---|---|---|---|
| surname | sn | – | – | – |
| displayName | – | – | %{sn} %{givenName} | – |
| usageLocation | – | – | – | JP |
| givenName | givenName | – | – | – |
| accountEnabled | – | – | – | true |
| mailNickname | uid | – | – | – |
| assignedLicenses | – | – | – | STREAM |
| passwordPolicies | – | – | – | DisablePasswordExpiration, DisableStrongPassword |
| passwordProfile.forceChangePasswordNextSignIn | – | – | – | true |
以下は Microsoft Entra ID 外部連携のグループマッピング設定の一例です。
| 連携先の属性名 | 連携元の属性名 | ビルトイン関数名 | テンプレート文字列 | 固定値 |
|---|---|---|---|---|
| displayName | cn | – | – | – |
| description | description | – | – | – |
| mailEnabled | – | – | – | false |
| mailNickname | cn | – | – | – |
| securityEnabled | – | – | – | true |
また、以下の属性は Microsoft Entra ID 外部連携モジュール独自のマッピングになるため、合わせてご参照ください。
ユーザ・グループ共通の属性
assignedLicenses 属性
- Microsoft Entra ID では、ひとつのライセンスに複数のプランが紐付いています - 例えば STREAM と TEAMS_EXPLORATORY のライセンスを利用し、TEAMS_EXPLORATORY ライセンスにて MCO_TEAMS_IW と YAMMER_ENTERPRISE のプランを利用しない場合は、assignedLicenses 属性へのマッ
ピングが次になるように設定します。(一部のプランを無効にする場合は、
<ライセンス名>/<プラン名>:<プラン名>:...の形で指定します。) -['STREAM', 'TEAMS_EXPLORATORY/MCO_TEAMS_IW:YAMMER_ENTERPRISE']
ユーザ属性
userPrincipalName 属性
本属性については、連携されてきた primaryID の値を使用し、${primaryID}@${ドメイン} の値が自動でセットされるので、マッピング設定は必要ありません。
accountEnabled 属性
ユーザの有効化/無効化を制御するための属性となります。この属性に対して、true/false が設定されるようマッピングを行うことで、ユーザの有効化/無効化のステータスを 制御することができます。(有効化の場合は true、無効化の場合は false が割り当てられる必要があります)
グループ属性
displayName 属性
本属性については、連携されてきた primaryID の値が自動でセットされるので、マッピング設定は必要ありません。
前処理・後処理スクリプト設定
UCIDM では、外部連携処理の前後で任意のシェルスクリプトを実行することができます。
次の 外部連携の前処理/後処理で実行するスクリプトの配置 を参考に、スクリプトファイルを配置後、外部連携の前処理/後処理で実行するスクリプトの設定 を参考に、実行したいスクリプトファイルを指定してください。