Alternative Architecture DOJO

オルターブースのクラウドネイティブ特化型ブログです。

Azure AD B2Cのテナント削除を阻む、削除できないエンタープライズアプリケーションがあった場合の解決策

こんにちは。MLBお兄さんこと松村です。
2021年も8月に入り、MLBではトレードデッドラインを迎えました。今年の移籍市場も活発すぎました・・・。


弊社では Azure Active Directory B2C (Azure AD B2C) を使う機会が多いです。
先日、検証用に作成した Azure AD B2C テナントを削除することができなかったことがあり、解決策とあわせて紹介します。

Azure AD B2C テナントを削除するには

まず Azure AD B2C を削除する場合、Azure AD B2C テナントを含むリソースグループを削除するだけでは手順が不足しています。
Azure AD B2C は Azure AD と同じく「テナント」というものであり、テナントIDや xxx.onmicrosoft.com というドメイン名が割り当てられています。

そのため Azure AD B2C テナントを削除するにはいくつかのステップが必要であり、ドキュメントにまとめられています。
docs.microsoft.com

問題:テナント削除が途中で詰んだ!

この手順で検証用の Azure AD B2C テナントの削除を進めていき、以下のチェックリストが表示されました。
f:id:tech-tsubaki:20210731225114p:plain

このチェックリストは、テナント削除するためにどのような操作が必要か知ることができるため便利です。
リストの項目のうち「エンタープライズアプリケーション」に警告マークがついています。

削除しなければならないエンタープライズアプリケーションのリストに「Azure DevOps」がありました。これは別の作業で追加されたものです。

Azure DevOps アプリを削除しないと Azure AD B2C テナントを削除することができません。
しかし以下の警告メッセージが表示され、削除することができませんでした。

このアプリケーションは Microsoft のファースト パーティ アプリケーションであるため、削除できません

f:id:tech-tsubaki:20210731225213p:plain

削除できないアプリケーションを削除する

このままだと Azure AD B2C テナントを削除することができないため、PowerShell コマンドで削除していきます。
使用するのは Azure AD モジュール です。
PowerShell を管理者権限で起動し、 Install-Module -Name AzureAD のコマンドでモジュールをインストールします。

次に、これから削除する Azure AD B2C テナントに接続します。
Connect-AzureAD -TenantId "テナントID" コマンドを実行し、テナントにログインします。

念のため Get-AzureADDomain コマンドで、目的のテナントに接続していることを確認しましょう。
(※違うテナントに対して操作しないように注意しましょう!)

最後に以下のコマンドを実行し、アプリケーションを削除します。
Remove-AzureADServicePrincipal -ObjectID {削除するアプリケーションのオブジェクトID}

なお、上記のコマンドで指定するオブジェクトIDは、Azure ポータルで確認するか Get-AzureADServicePrincipal コマンドで調べておきましょう。

Azure AD B2C テナントを削除する

ポータルから削除できなかったアプリケーションを削除することができたため、Azure AD B2C テナントを削除できるようになりました。
チェックリストもオールグリーンとなっています。
f:id:tech-tsubaki:20210731225237p:plain


普段 PowerShell を使うことはあまり無いですが、ポータルではできない操作ができるということを知っておくと便利なときもありますね。