ミロジャパンSEちゃんねる動画活用する

Microsoft Entra ID/Azure AD + miro連携 Part4 ライセンスや権限もSCIMで制御

公開日 2023年12月11日 最終更新日 2023年12月11日

Microsoft Entra ID/Azure AD + miro連携 Part4 ライセンスや権限もSCIMで制御

こんにちは!高木です。
今回も Microsoft Entra ID (旧Azure Active Directory) と miro の連携環境を作り直しているわけですが、いよいよちょっとだけ複雑なことをやっていこうと思います!前回まででSSOを構成し、Entra ID側でのSSOへのユーザー割り当てが不要になる設定をして、アカウントプロビジョニングを使ってアカウント管理を自動化してきました。
さて今回の話題に入っていきましょう!
動画はこの記事の後半にリンクを入れてありますので気になる方は読み飛ばしちゃってください!


お献立

前回まででセットアップしたアカウント登録の自動化を発展させて、miroのライセンス割り当てや管理者権限割り当てもEntra IDから実行できるようにしていきます。

ってことで、今日のお献立はコチラ!
・Entra IDのアプリロールを使ったmiroのライセンス割り当て
・Entra IDのアプリロールを使ったmiroの管理者権限割り当て

どんな仕組み?

例えば、Entra ID上に「ミロライセンス」というグループがあったとします。そのグループにEntra ID上でユーザーを追加するだけでmiro側でライセンスが割り当てられたりしたら便利じゃないですか?前回アカウント登録を自動化したわけですが、それに加えてライセンス割り当ても同時に完了できるようなイメージになります。
引き続きEntra IDのSCIMを使って設定を制御していきますが、標準的な設定だけではこのあたりの制御は残念ながらできません。今回は「アプリロール」と言われるものを使ってアカウントにフラグをセットして、SCIMプロビジョニング時にそれを属性としてmiroへ同期していく方法でやっていきます。

お材料

今回の動画の中では色々なURLや値、長文の式などが登場します。動画概要欄に貼り付けるにも長いので、、ここをコピペ用素材箱にしちゃいます!

00:02:00 アプリロール表示名と値

Full
miro_license

00:04:05 属性リストを表示できるようにするためのリンク

https://portal.azure.com/?Microsoft_AAD_Connect_Provisioning_forceSchemaEditorEnabled=true

00:04:57 Miro Userの属性の名前

userType

00:05:25 属性の式

IgnoreFlowIfNullOrEmpty(IIF(CBool(Item(AppRoleAssignmentsComplex([appRoleAssignments]), 3)), "Full", IIF(CBool(Item(AppRoleAssignmentsComplex([appRoleAssignments]), 2)), IIF(CBool(Item(Instr(AppRoleAssignmentsComplex([appRoleAssignments]), "\"displayName\":\"Full\"", , ), 1)), "Full", IIF(CBool(Item(Instr(AppRoleAssignmentsComplex([appRoleAssignments]), "\"displayName\":\"Full\"", , ), 2)), "Full", "")), IIF(CBool(Item(Instr(AppRoleAssignmentsComplex([appRoleAssignments]), "\"displayName\":\"Full\"", , ), 1)), "Full", ""))))

00:08:00 アプリロール表示名と値

Admin
miro_company_admin

00:09:06 Miro Userの属性の名前

roles[primary eq "True"].value

00:09:24 属性の式

IIF(CBool(Item(AppRoleAssignmentsComplex([appRoleAssignments]), 3)), "ORGANIZATION_INTERNAL_ADMIN", IIF(CBool(Item(AppRoleAssignmentsComplex([appRoleAssignments]), 2)), IIF(CBool(Item(Instr(AppRoleAssignmentsComplex([appRoleAssignments]), "\"displayName\":\"Admin\"", , ), 1)), "ORGANIZATION_INTERNAL_ADMIN", IIF(CBool(Item(Instr(AppRoleAssignmentsComplex([appRoleAssignments]), "\"displayName\":\"Admin\"", , ), 2)), "ORGANIZATION_INTERNAL_ADMIN", "ORGANIZATION_INTERNAL_USER")), IIF(CBool(Item(Instr(AppRoleAssignmentsComplex([appRoleAssignments]), "\"displayName\":\"Admin\"", , ), 1)), "ORGANIZATION_INTERNAL_ADMIN", "ORGANIZATION_INTERNAL_USER")))

続きは動画で

今回はだいぶ濃口な内容の動画になってまいますので、お試しいただくかたは是非動画を見ながら一緒にやってみてください!
動画はコチラの ミロジャパンSEちゃんねる で公開しています!
https://www.youtube.com/@mirojapan
もしもこの動画が役に立ったと思った方はチャンネル登録、高評価をしていただけるととっても嬉しいです!

こちらの記事で紹介している構成や手順は動画撮影時点での仕様や撮影に利用している環境の構成を前提とした動作の紹介記事となっております。お試しいただく際の環境や設定の実装時期の仕様および制限等により動作が異なる場合もございます。出来る限り正確な情報を提供するように努めておりますが、Microsoftおよびmiroの公式な見解やガイダンスと異なる場合には公式なガイダンスや見解を優先するものといたします。
また記事内および動画内で使用している設定や式などは、テスト環境で動作可否や影響を予めご確認いただき、ご利用の環境に合わせてカスタマイズいただく前提でご流用ください。

今回も最後まで読んでいただきありがとうございました!