Power Automate x MSGraphでメンバーとしてユーザーを招待する
必要なアクセス許可
今回必要なアクセス許可の種類は以下の2つです。
User.Invite.All
Directory.AccessAsUser.All(ゲストで招待する場合は不要)
事前にAzureADでアクセス許可を設定しておきましょう。
ユーザーをメンバーとして招待する
以下のような感じで実行するとユーザーを招待することができます。
ユーザーの招待 サンプル
{
"requests": [
{
"id": 1,
"url": "/invitations",
"method": "POST",
"headers": {
"Content-Type": "application/json"
},
"body": {
"invitedUserEmailAddress": "abc@gmail.com",
"inviteRedirectUrl": "https://www.office.com/?auth=2",
"invitedUserType": "Member",
"sendInvitationMessage": true
}
}
]
}
ユーザーの招待 パラメータの解説
invitedUserEmailAddress:必須
→招待するユーザーのメールアドレスを指定します。必須です。
inviteRedirectUrl:必須
→招待後リダイレクトする先を指定できます。任意のページを指定できますが、空にすることはできません。
invitedUserType
→招待ユーザーの種類を指定できます。初期値はGuestです。ゲストでよければ指定する必要はありません。
sendInvitationMessage
→招待時にメールを送るか否かの設定です。初期値はfalseです。メールを送る必要がなければ指定する必要はありません。
上記パラメータをカスタマイズして使用してください。
他にも必要に応じてパラメータを設定することができます。
メンバーとして招待するために必要な権限
ゲストではなくメンバーとして追加するには、実行ユーザーにグローバル管理者権限が必要になります。
加えて、AzureADのアプリケーションのアクセス許可ではDirectory.AccessAsUser.Allも追加します。
これはアプリにユーザーと同様のアクセス権をもたせるものです。
権限がない場合はゲストでのみ招待することができます。
ここまででユーザーの招待をすることができます。
招待したユーザーID
応答のinvitedUserのidから招待するユーザーのIDを取得することができます。
Power Automateで続けて処理をする場合はこのユーザーIDを使うことができますね。
招待後の動作について
実行すると、ユーザーへ招待メールが送られます。リンクからアクセスすることでテナントに参加できます。
処理後、リダイレクト設定した任意のURLへ移動します。
参考URL
外部ユーザを招待する リファレンス
https://docs.microsoft.com/ja-jp/graph/api/invitation-post?view=graph-rest-1.0&tabs=http
Company Administratorについて
ディレクトリのアクセス許可
https://docs.microsoft.com/ja-jp/graph/permissions-reference#directory-permissions