見出し画像

エンタープライズアプリケーションの制限

こんにちは、ICTLINKのカケフダです。
IT業界新参者の私はtry&errorの繰り返しで、帰りが遅くなってしまうことが多いです。お風呂に浸かるのが大好きな私でも、中々平日ゆっくり入浴することは難しいです。お休みの日には中からフィギュアが出てくるような、可愛いバスボムをお供に優雅なバスタイムを演出しています。
可愛いバスボムがあったら教えてください〇.゜。

さて、今回は私を苦しめたエラーについて皆さんに共有しようと思います。掲題にもある通りですが、エンタープライズアプリケーションの制限についてです。

☆豆知識☆
パスワードベースのSSOが構成されたエンタープライズアプリケーションは、1つのユーザー・グループに対して、最大48個までしか割り当てることができない。

ここでいう「ユーザー・グループを割り当てる」というのはエンタープライズアプリケーションを利用するユーザー・グループ割り当てのことです。
もし超過してユーザー・グループ割り当てを行った場合、MyAppsからエンタープライズアプリケーションを利用する際に以下の流れでエラーが発生して、利用することができません。
(ユーザー・グループ割り当て自体は完了できるので注意です)
【エラーの場合】
MyApps→エンタープライズアプリケーション押下→ID/PW入力→エラー
【正常な場合】
MyApps→エンタープライズアプリケーション押下→ID/PW入力→SSO先サイトのログイン画面(自動入力)→サイトログイン完了

今回1つのグループに対して1,500個のエンタープライズアプリケーションを割り当てていたため、所属メンバーが同じグループを全部で32個(1,500÷48=31.3≒32)作成して、1(グループ):48(エンタープライズアプリケーション)となるように割り当てしなおすことで解決しました。

グループ再割り当て作業(割り当て解除+割り当て)を行うことが決まった時「めっちゃ時間かかるやんwwwオラワクワクすっぞwww」って思いましたが、PowerShellのコマンドで実行可能「ホッ」でしたので共有しますね。

☆割り当て解除☆
【前提】
エンタープライズアプリケーションをグループに割り当てると、グループにロールが設定されます。
アプリケーションのオブジェクトIDと、グループのロールのオブジェクトIDの情報を使って割り当て解除を行うのが、今から説明するコマンドです。

「ICTLINK」と「ハッピーホワイトデー」というエンタープライズアプリケーションに割り当てられた、「テストグループ①」というグループの割り当てを、コマンドで解除していきます。

ホワイトデー楽しみだなあ

【スクリプト】
日本語で表記している各オブジェクトIDは、実際の値に変更して実行してます。


①$EAlistという変数(エンタープライズアプリケーションのオブジェクトIDのリスト)をforeachで1行を$EAと定義してループ処理する

②$groupで割り当て解除したいグループの情報を、グループのオブジェクトIDを用いて取得する

③$spoでエンタープライズアプリケーションの情報を、$EA(エンタープライズアプリケーションのオブジェクトID)で取得

④$assignmentsでロールのオブジェクトIdの情報を取得する
※ここに必要な情報が詰まってます

⑤Remove-AzureADServiceAppRoleAssignment で割り当て解除を実行
$spo.ObjectId(エンタープライズアプリケーションのオブジェクトId)と
$assignments[0].ObjectID(ロールのオブジェクトID)の情報で割り当てが解除されています。

⑥ ⑤のコマンドが正常に実行されたら、以下の二つの項目表示されます。
割り当て解除OK
エンタープライズアプリケーションの名称

【結果】
2つのエンタープライズアプリケーションから、無事に「テストグループ①」の割り当てが解除されました😢👏
割り当て確認画面を見てみましょう~

ICTLINKのエンタープライズアプリケーション

ハッピーホワイトデーのエンタープライズアプリケーション


手順は以上となります!
どうですか?グループのオブジェクトIDとエンタープライズアプリケーションのオブジェクトIDを指定するだけでこんなに簡単に割り当て解除できちゃうんです素敵~(⋈◍>◡<◍)。✧♡

PowerShellでエンタープライズアプリケーションにグループを割り当てる方法はまた今度喋らせてください☆彡
それでは皆様、HAPPY WHITE DAY 卍


この記事が気に入ったらサポートをしてみませんか?