Introduction
Azure Active Directory をテスト的に作成したものの、削除できなくて困るという方が多いようです。
削除の方法は、基本的に以下で説明されている通りです。まずは以下をやってみてくださいね。それでも削除できない場合は先に進んでみてください。
Deleting Azure AD Tenant – Unable to delete all Enterprise Applications
https://blogs.msdn.microsoft.com/kennethteo/2017/09/19/deleting-azure-ad-tenant/
具体的に、どんな場合に上記では削除できないかというと、例えば、EMS(Enterprise Management + Security)などの評価版をつなげてしまうと、アプリに何も登録されていないのに削除でない。。。といった事態が発生します。
たとえば、こんな感じです。アプリが何も紐づいていないように見えているのに削除できない。。。。これは落ち込みますw
そんなときはどうするかといえば、PowerShell を使いましょう。
必要な PowerShell コマンドレットは3種類です。
Connect-AzureAD : Azure AD の指定したテナントにログインします
Get-AzADServicePrincipal :Azure ADに登録された「エンタープライズアプリケーション」を取得するコマンドです。Get部分をSetやRemoveに変えれば、設定や削除が行えます。サービスプリンシパルを持つと、エンタープライズアプリケーションとして認識されるようになります。ややこしいですねw
Get-AzureADApplication :上記と似ていますが、これは「アプリの登録」画面に表示されるアプリケーションの一覧を取得するコマンドレット。
以下の手順はエンタープライズアプリケーション向けの手順ですが、普通のアプリケーションでも同様です。
1. テナントID(ディレクトリID)を取得する
まずは Azure Portal の以下の画面からテナント ID(ディレクトリID)を取得しましょう。
2. PowerShell を管理者モードで起動
PowerShell ISE でなくてもかまいませんが、ISE のほうが使いやすいです。とにかく管理者モードで起動しましょう。
3. 削除したい Azure AD に接続
かならずテナントID(ディレクトリID)をつけましょう。じゃないと既定のディレクトリで認証されてしまいます。
Connect-AzureAD -TenantID xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx
4. サービスプリンシパルを確認
Get-AzADServicePrincipal で、登録されているエンタープライズアプリの一覧を確認してみましょう。以下のように、1ページに収まり切れないくらいのアプリケーションが紐づいている場合は削除できない可能性があります。
5. 片っ端からサービスプリンシパルを削除する
どうせ削除するテナントですから、後先考えずどんどんサービスプリンシパルを削除してしまいます。
1件ずつ削除したいという律儀な方は、以下のコマンドで。
Remove-AzADServicePrincipal -ApplicationId xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx
1件づつなんて眠たいことを言ってられない方は以下のコマンドで一気に。
$Appsp = Get-AzADServicePrincipal
$appsp.ForEach{ Remove-AzADServicePrincipal -ApplicationId $_.ApplicationId -Force}
中には削除できないものもありますが、それは気にせずともOKです。
最終的に、以下のような状態になればポータルで削除できるようになっているでしょう。
さいごに
同様の操作は、「アプリの登録」画面に出てくるアプリでも行えます。1点だけ注意が必要なのは、「マルチテナント」アプリは削除できないってことです。マルチテナントとは複数のディレクトリ(テナント)で共有されているアプリのことです。マルチテナントアプリの場合は、一旦、マルチテナントを「いいえ」にしておく必要があります。
コメント