11
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Azure Logic AppsでAzure ADの属性値を操作してみた話

Last updated at Posted at 2022-12-20

本記事は、Power Automate Advent Calendar 2022 21日目の投稿です。

こんにちわ、 のりじ です。
Azure Logic AppsでAzure ADの属性値をあれこれしようとしたとき、ぶん殴られまくって自分的につまづいたところが色々あったので覚え書き的な内容です。

1. Azure ADコネクタを利用するときの準備

Azure AD コネクタは、ユーザーの作成・取得・更新、グループの作成・取得・更新など基礎的な情報の操作ができます。が、「削除」アクションは用意されていません。
じゃあ削除操作はどうするの?できないの?ってなるんですが、ユーザーもグループも削除操作は Microsoft Graph API を利用すれば対応できます。

またAzure ADコネクタを利用するためには、ドメインを管理できる権限の付与と「Azure ADのドメインに属するユーザー」が必要になります。

aad001.jpg

既存のAzure ADのドメインに属するユーザーで操作してもいいのですが、Logic Appsの処理用のユーザーを作成して権限付与など行った方がいいのかな?と個人意見。このあたりは運用に合わせるのが吉かと。

そしてAzure ADコネクタ関連のドキュメントですが、残念ながらMicrosoft公式ドキュメント「コネクタ参照の概要」の「Azure AD」の項目には、利用時に必要な設定などの詳細は記載されていません…。
なので、何かしらこのコネクタで問題が起きた場合は「Azure AD関連」のドキュメントを漁りましょう。

2. 「ユーザーの作成する」アクションを使ってみる

今回は「ユーザーの作成する」アクションを例として説明します。

add002.jpg

新規のユーザー作成を行う場合「ユーザーの作成する」アクションを利用しますが、「Add new parameter」の内容を入れたとしても、このコネクタだけでは会社名や国または地域などの情報を入力することができません。

add003.jpg

ですので、後続に「ユーザーの更新」アクションを追加し「追加のプロパティ」を利用して属性値を追加します。

add005.jpg

記入方法はこんな感じ。図のように「キーの入力」と「値の入力」を利用していきます。

2-1. Azure ADコネクターで追加可能なプロパティ名

「追加のプロパティ」で扱える内容のうち、登録が発生しやすいかな?と思うものを抜粋してみました。

キー
会社名 CompanyName
国または地域 Country
従業員 ID employeeId
利用場所 UsageLocation
従業員入社日 employeeHireDate
メール mail
その他のメール otherMails

マネージャーはAzure ADコネクタの「管理者の割り当て」アクションを利用すると自動登録できます。

2-1-1. 従業員入社日(employeeHireDate)の注意点

ユーザーのプロパティ「ジョブ情報」を確認すると、「従業員入社日」はカレンダー形式で選択して入力する形であることがわかります。

add004.jpg

なので「追加のプロパティ」のemployeeHireDateに「2022-12-21」のような形で入力してもエラーになってしまうので「May 01 2022」 のような形になるように整形が必要です。
この部分は「式」を利用することで回避できるので、以下の内容を参考にしてください。(式の内容間違ってたらゴメンナサイ…)

concat(formatDateTime(parseDateTime(triggerBody()['key-button-date'], 'ja-JP', 'yyyy-MM-dd'), 'MMM', 'en-US'), ' ', formatDateTime(parseDateTime(triggerBody()['key-button-date'], 'ja-JP', 'yyyy-MM-dd'), 'dd', 'ja-JP'), ' ', formatDateTime(parseDateTime(triggerBody()['key-button-date'], 'ja-JP', 'yyyy-MM-dd'), 'yyyy', 'ja-JP'))

2-1-2. その他のメール(otherMails)の注意点

「連絡先情報」で確認できる複数のメールアドレスが登録できる部分です。

add004-1.jpg

キーは「otherMails」になりますが、入力時は配列の形式で記述(例:[aaa, bbb, ccc])になります。この部分、普通にメールアドレス入力だとエラーになってしまうのが個人的にハマりました…。

2-1-3. 「その他のメール(otherMails)」を設定後エラーになる場合

コネクタ上ではキチンと配列の形で入力されているにも関わらずエラーになる場合があります。

add006.jpg

そのときは「追加のプロパティをテキストモードに変える」をクリックします。

add007.jpg

JSON形式で入力した内容が表示されますが、エラーになる場合は「その他のメール(otherMails)」部分の表記が崩れていないか(ダブルクォーテーションやスラッシュが入っていないか)確認してください。

add008.jpg

ダブルクォーテーションやスラッシュを削除し、図のような形に修正し、ワークフローを保存します。
「その他のメール」を追加した場合、「キー値モード」に戻すとこのような状況になりやすいので「テキストモード」のままで利用した方がいいかなと。ワークフローの修正時には注意してみてください。

3. 最後に

Azure ADコネクタは実際に使ってみるとLogic Apps以外の問題(権限付与とかMicrosoft Graph APIの利用、アプリの登録など)と色々な問題が絡んでくるので結構クセが強いな…という感想でした。
ただこのAzure ADコネクタは仲良くなればできることが一気に増えると言う印象なので、私も頑張って仲良くなりたいと思いますw

4. 参考URL

11
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?