Microsoft Entra ID 向け Agent

UCIDM はクラウドの Microsoft Entra ID から ID 情報を取得して UCIDM API に連携します。

Microsoft Entra ID 向け Agent はコンテナとして稼働させます。次のように compose.yml に設定します。

  agent-meid:
    depends_on:
      - api
    container_name: agent-meid
    image: docker.io/osstech/ucidm-agent:latest
    logging: *default-logging
    volumes:
      - type: bind
        source: ./agent-data/meid
        target: ${AGENT_PAGE_KEY_PATH}
        bind:
          create_host_path: true
    entrypoint:
      - ./bin/agent
      - -verbose
      - -jsonl
    environment:
      LDAP_HOSTS: "dummy"
      MEID_TENANT_ID: "${AGENT_MEID_TENANT_ID}"
      MEID_CLIENT_ID: "${AGENT_MEID_CLIENT_ID}"
      MEID_CLIENT_SECRET: "${AGENT_MEID_CLIENT_SECRET}"
      MEID_SCOPES: "${AGENT_MEID_SCOPES}"
      MEID_USER_PROPERTIES: "${AGENT_MEID_USER_PROPERTIES}"
      MEID_GROUP_PROPERTIES: "${AGENT_MEID_GROUP_PROPERTIES}"
      PROTOCOL: "${AGENT_MEID_PROTOCOL}"
      EXCLUDE_ATTRIBUTES: "${AGENT_MEID_EXCLUDE_ATTRIBUTES}"
      POLLING_TIME: "${AGENT_POLLING_TIME}"
      PAGE_KEY_PATH: "${AGENT_PAGE_KEY_PATH}"
      API_HOST: "${API_HOST}"
      API_PORT: "${API_PORT}"
      API_ACCOUNT_AUTH_USER: "${AGENT_API_ACCOUNT_AUTH_USER}"
      API_ACCOUNT_AUTH_PASSWORD: "${AGENT_API_ACCOUNT_AUTH_PASSWORD}"
    restart: "always"

前提条件

Microsoft Graphデルタクエリを使用して変更を追跡 します。Agent モジュールからこれらの機能を使うための Microsoft Graph アプリケーションを登録する必要があります。登録した Microsoft Graph アプリケーションに適切な API のアクセス許可を設定してください。

  • アクセス許可の種類
    • 「アプリケーションの許可」
  • Microsoft Graph API の権限
    • CrossTenantInformation.ReadBasic.All
    • User.Read.All
    • Group.Read.All

Microsoft Graph アプリケーションの登録については Microsoft ID プラットフォームにアプリケーションを登録する などのドキュメントを参照してください。

Agent の永続化ディレクトリ

永続化が必要なファイルなどは volumes/agent-data/meid 配下に配置されます。

$ ls volumes/agent-data/meid

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

環境変数の設定

接続する UCIDM API サーバーの設定をします。

環境変数規定値説明
API_SCHEMEhttpshttpUCIDM API サーバーの
プロトコル
API_HOST任意localhostUCIDM API サーバー名
API_PORT任意18080UCIDM API サーバーの
ポート番号
API_BASIC_AUTH_USER任意unico接続する UCIDM API の
Basic 認証ユーザー
API_BASIC_AUTH_PASSWORD任意接続する UCIDM API の
Basic 認証パスワード
API_ACCOUNT_AUTH_USER任意接続する UCIDM API の
アカウント認証ユーザー
API_ACCOUNT_AUTH_PASSWORD任意接続する UCIDM API の
アカウント認証パスワード
  • 認証はベーシック認証またはアカウント認証はどちらか一方を設定します
    • 両方設定するとベーシック認証を使います

UCIDM API サーバーへのリクエストに失敗 (ステータスコードが 500 以上を返す) したときのリトライの設定をします。

UCIDM API サーバーへのリクエストに失敗 (ステータスコードが 500 以上を返す) したときのリトライの設定をします。

環境変数規定値説明
CLIENT_RETRY_WAIT_MIN任意1s1回目のリトライの待ち時間
CLIENT_RETRY_WAIT_MAX任意30sリトライの最大の待ち時間
CLIENT_RETRY_MAX任意4リトライの最大回数

接続する Microsoft Graph アプリケーションの設定をします。

環境変数規定値説明
LDAP_HOSTSdummy使用しないが、必須属性なので値をセットする
MEID_TENANT_ID任意ディレクトリ (テナント) ID
MEID_CLIENT_ID任意アプリケーション (クライアント) ID
MEID_CLIENT_SECRET任意クライアントシークレット
MEID_SCOPES任意https://graph.microsoft.com/
.default
トークンに与えるリソースのアクセス範囲
MEID_USER_
PROPERTIES
任意ユーザーの連携対象プロパティ
カンマ(,)区切りで複数指定
MEID_GROUP_
PROPERTIES
任意グループの連携対象プロパティ
カンマ(,)区切りで複数指定
PROTOCOLmsgraphMicrosoft Graph
EXCLUDE_
ATTRIBUTES
任意連携除外属性
カンマ(,)区切りで複数指定
POLLING_TIME1h更新を定期的に
問い合わせる間隔
PAGE_KEY_PATH任意同期状況の
保存先ディレクトリ
  • MEID_SCOPES は .default を設定し、Microsoft Graph アプリケーションにあらかじめ必要なアクセス権限を設定する
  • MEID_USER_PROPERTIES や MEID_GROUPPROPERTIES で指定したプロパティ以外の値の変更は ID 連携されません
  • Microsoft Entra ID から正常にエントリを取得して UCIDM API サーバーへの連携に失敗 (リトライしても失敗) したときは自動で復旧しません