BEACHSIDE BLOG

Azure と GitHub と C# が好きなエンジニアの個人メモ ( ・ㅂ・)و ̑̑

Azure Active Directory のテナントを削除する

いらなくなった Azure AD のテナントを削除する際、以下図のよう削除前にやるべきことを示唆されます。
ほとんどが画面上からポチポチして状態をグリーンにできるんですが、エンタープライズアプリケーションの削除は、画面上では削除できないやつがあります。イラっとしますね。

f:id:beachside:20200722141753p:plain:w600

Azure Portal からは削除できないエンタープライズアプリケーションを PowerShell を使って削除する方法のメモです。

PowerShell の準備

公式ドキュメント に記載がある通り、利用できるの PowerShell の 5.1 ~ 6、64 bit OS のみなので要注意です。

ドキュメントを疑って PowerShell 7 を Windows Terminal から起動して試しましたが、コマンドを実行してサインイン後に死にました)。

モジュールのインストール

PowerShell を管理者権限 で起動します。ちなみに私は Windows Terminal から PowerShell を実行しました。

今回使うコマンドは Azure Active Directory PowerShell for Graph (通称 AzureADv2) を使うので、インストールします。

Install-Module AzureAD

エンタープライズアプリケーションをぶっころ...

AAD のテナント ID を取得

Azure AD へのサインインをするのにテナントのテナント IDを使いたいので、Azure Portal で削除したい Azure AD にログインして、概要のメニューからテナント IDをコピーしておきます。

f:id:beachside:20200722145957p:plain:w480

モジュールの Import

では、モジュールをインポートするのに以下のコマンドを打ちます。そうするとなんか聞かれますがもちろん実行します。

Import-Module -Name AzureAD

f:id:beachside:20200722151536p:plain

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

ここからようやく本題です。引き続き PowerShell で以下のコマンドをたたきます。コマンドのオプションで前述で取得した AADの テナント ID を指定することでと想定外のテナントと接続してしまうリスクを避けます。

connect-azuread -tenantid <テナント ID>

サインインのウインドウが開きますのでサインインします (縦長やな...) 。

f:id:beachside:20200722150643p:plain:w300

サインインできたら、接続した情報が表示されます。TenantDomain が、削除したい AAD であることを確認しておきましょう。

f:id:beachside:20200722153012p:plain

次は Azure Portal で Azure AD を開く > テナントの削除 をクリック > (以下図の画面で) すべてのエンタープライズアプリケーションを削除するをクリックします。

f:id:beachside:20200722141753p:plain:w600

手で削除できなかったエンタープライズアプリケーションを開き、オブジェクト ID を確認しておきましょう。

で、PowerShell で Remove-AzureADServicePrincipal のコマンドを打ちます。オプションでオブジェクト ID を付けます。

Remove-AzureADServicePrincipal -ObjectId <オブジェクト ID>

f:id:beachside:20200722154227p:plain

Get-AzureADServicePrincipal のコマンドでサービスプリンシパルの一覧を取ってきて ForEachで片っ端から削除することができますが、私の場合 1つだけなのでやりません。やるならこんな感じのコード
$targetApps = Get-AzureADServicePrincipal
$targetApps.ForEach{ Remove-AzureADServicePrincipal -ObjectId $_.ObjectId}

Azure Portal でエンタープライズアプリケーションを見ると空っぽになりました!縦から見ても横から見てもリロードしてもログインしなおしてみても完全無欠の空っぽです ( ・ㅂ・)و ̑̑

f:id:beachside:20200722154755p:plain:w600

いざAzure AD のテナントを削除!........っておい ( 'д'⊂彡☆))Д´) パーン!!!!!!!!
エンタープライズアプリケーションをぶっころせてない?!

f:id:beachside:20200722155251p:plain:w600

と、上の画面は今日4つのディレクトリを削除なかで唯一削除できなかったテナントの話なのですが、ほかの3つのディレクトリは普通に削除できたし、以前にもこのやり方でたくさん削除してきたので手順は問題ないと思っています。
(根拠はありませんが、今までも削除はできてるしっていうあくまで個人的な感覚です)

f:id:beachside:20200722162825p:plain

ちなみに削除できなかったディレクトリは5年以上前に作った古いものなんですよねー(ほかのはここ1-3年くらいに作ったもの)。その辺もなんか関係あるのかな...知らんけど。。。
サービスプリンシパルの一覧から全部削除したろうかとも思いましたが、それだと原因がよくわからない状態になる気がするので試さず、原因わかったらまた追記しようと思います(放置しそう...。

参考