Azure AD のユーザー情報を扱えるUsers (ユーザー )テーブルですが、大元のAzure AD側でユーザーアカウントが削除されたときはどのような挙動になるのでしょうか?Dataverse テーブル側の関連レコードも削除されてしまうのか
目次
ユーザーテーブルの普通のテーブルとの列の違い
通常のテーブルではレコードの状態を管理するstatus, statecode 列がありません。
代わりにstatus という表示名ですがIsDisabled という列が存在しています。こちらでレコードの状態を管理しています。
Dataverse テーブルでの確認
Dataverse のデザイナー画面から見ると以下のようになっています。
列を確認すると以下のように定義されています。スキーマとしてはIsDisabled というYes/No のデータ型で管理されています。
Advanced option から確認すると以下のようになっています。
OData API での確認
APIからJSONで確認すると以下のように応答が返ってきます。
JSON
"isdisabled@OData.Community.Display.V1.FormattedValue": "Enabled",
"isdisabled": false
ユーザーアカウントがAzure ADから削除されたときのDataverse ユーザー テーブルの挙動
ではユーザーアカウントが大元のテーブルから削除されたアカウントを確認してみます。
すると以下のようになっています。
JSON
@OData.Community.Display.V1.FormattedValue": "Disabled",
"isdisabled": true
つまり、Status 列 (IsDisabled) がtrue となっている事がわかります。Dataverse での表示状況を見てみます。
ユーザーアカウントの状態はInactive となっていることがわかります。
Dataverse ユーザー テーブルのStatus 列の活用方法
例えば「有効なユーザーの一覧」を表示したいとき、以下のOData Query を設定することで実現できます。
OData Query
https://<Base URL>/systemusers?$filter=isdisabled eq false
Power Automate では以下のように記述できます。Filter rows に記述します。
OData Query
isdisabled eq false
以上ご参考になれば幸いです。