Microsoft Entra ID 外部連携モジュール

UCIDM では Microsoft Entra ID に対して ID 連携できます。

Microsoft Entra ID 外部連携モジュールはコンテナとして稼働させます。次のように docker-compose.yml に設定します。

  consumer-meid:
    depends_on:
      rabbitmq:
        condition: service_healthy
    container_name: consumer-meid
    image: docker.io/osstech/ucidm-consumer:latest
    logging: *default-logging
    volumes:
      - ./server-data:/ucidm
    entrypoint:
      - ./bin/app-main
      - -jsonl
    environment:
      DESTINATION_ID: "meid-001"
      AMQP_URL: "${AMQP_URL}"
      MONGO_USER: "${MONGO_USER}"
      MONGO_PASSWORD: "${MONGO_PASSWORD}"
      MONGO_HOSTS: "${MONGO_HOSTS}"
      MONGO_REPLICA_SET: "${MONGO_REPLICA_SET}"
      MEID_CLIENT_ID: "${MEID_CLIENT_ID}"
      MEID_CLIENT_SECRET: "${MEID_CLIENT_SECRET}"
      MEID_TENANT_ID: "${MEID_TENANT_ID}"
    restart: "always"

ここで参照する環境変数は .env に設定します。

起動時のオプション設定

entrypoint にて、次の設定をすることができます。

entrypoint では次の設定ができます。

  • -verbose: デバッグログを出力
  • -jsonl: JSON 形式でログを出力

環境変数の設定

環境変数規定値説明
DESTINATION_ID任意外部連携先 ID
管理画面で作成した外部連携先 ID を指定
AMQP_URL任意接続する RabbitMQ の URL
MONGO_USER任意接続する MongoDB のユーザ名
MONGO_PASSWORD任意接続する MongoDB のパスワード
MONGO_HOSTS任意接続する MongoDB のホスト
MONGO_REPLICA_SET任意接続する MongoDB のレプリカセットの名前
MEID_CLIENT_ID任意Microsoft Entra ID の Client ID
MEID_CLIENT_SECRET任意Microsoft Entra ID の Client ID のパスワード
MEID_TENANT_ID任意Microsoft Entra ID の Tenant 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 外部連携モジュールでは次のマッピング設定をすることができます。

  • 属性マッピング

次でマッピング設定について説明します。

属性マッピング

次の 属性マッピング設定 を参考にしてください。

Microsoft Entra ID では階層構造を持つ属性があります。 例えば、passwordProfile 内の forceChangePasswordNextSignIn に対して属性値をマッピングする場合は、「passwordProfile.forceChangePasswordNextSignIn」に対してマッピングをする必要があります。

また、以下の属性は 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 では、外部連携処理の前後で任意のシェルスクリプトを実行することができます。

次の 外部連携の前処理/後処理で実行するスクリプトの配置 を参考に、スクリプトファイルを配置後、外部連携の前処理/後処理で実行するスクリプトの設定 を参考に、実行したいスクリプトファイルを指定してください。