青柳 @ShinichiAoyagi です。
Microsoftデベロッパーセンターでいろいろしていたらいつの間にかAzure ADが新しくできていて、そのAzure ADを変更することも削除することもできず困ったことになりました。マイクロソフトのサポートに問い合わせて無事解決できましたが自分的には「こんなのわかんねえよ!」だったので記録しておきます。
なにが起こったか
Microsoftデベロッパーセンター はMicrosoft Storeで公開するアプリを管理したり、公開するために審査に出したりといったことをするサイトです。
※そういえば以前は「Windowsストア」という名前でしたが2017 Fall Creators Updateで「Microsoft Store」という名称に変わったようですね。アイコンもカラフルになりました。
このMicrosoftデベロッパーセンターにはMicrosoftアカウントでログインしますがそれだとその人本人しかログインできません。
複数の人でストアアプリを管理したいときは以前は公式のドキュメントにも「専用のメールアドレスでMicrosoftアカウントを取得してメアドとパスワードを共有しろ」なんていう残念なことが書いてありましたが、今はAzure ADで管理できるようになっています。
さて、今回個人のMicrosoftアカウントでログインしていたMicrosoftデベロッパーセンターを複数人で使えるようにしてみることにしました。
そのためにはこのMicrosoftデベロッパーセンターをAzure ADに関連付ける必要があります。下図のように右上の歯車アイコンをクリックして「ユーザー」を選択します。
続いて「テナント」をクリック。
ここで既存のAzure ADを関連付けるか新規にAzure ADを作成します。
MicrosoftデベロッパーセンターにAzure ADが関連付けできていれば「ユーザー」でユーザーを追加したりすることができます。「外部のユーザーを招待する」を使えばそのAzure ADに属さないユーザー(Microsoftアカウントのユーザー)を追加することもできます。
というのが普通の流れです。
困ったことというのは、MicrosoftデベロッパーセンターにAzure ADを関連付けするときに「新しいAzure ADの作成」ボタンを押したり、キャンセルしたりといろいろやっているときに起こりました。
実は今回の作業は単に設定したというわけではなく、複数人数で使えるようにする方法をまとめるためにスクリーンキャプチャーを取ったりしながらいろいろやっていたんです。
そんなときに事が起こりました。
作成したつもりはないのにいつの間にか新しいAzure ADができてました。
それによってこんなことが起こったんです。
- そのAzure ADをAzureポータルで見てみると見えるユーザーは自分だけ。
- その自分は一般ユーザー。なのでユーザーの追加も削除もできない。もちろん、自分を削除することもAzure AD自体を削除することもできない。
- Azure ADの管理者(グローバル管理者とか全体管理者とかと言う)のアカウントはまったく不明。存在しないのかも?
- ログインしていたのが aoyagi@example.com だとすると、そのAzure ADにはexample.comが信頼済みになっている。
- 実はexample.comは他のAzure ADのカスタムドメイン名として使うつもりのものだった。同じドメイン名は1つのAzure ADのカスタムドメイン名としてしか使えないはずだから信頼済みを解除する必要がある。けど管理者じゃないと解除は不可能。
結局のところ新しく作られたAzure ADの管理者になって変更なり削除なりしないといろいろと困ることが発生するわけですが管理者のアカウントが不明な状態ということです。
で、どうしたか?
自力ではどうにもできないのでマイクロソフトのサポートに問い合わせました。 あいかわらずこういうときにどこから問い合わせたらいいのかわかりにくいですがいろいろリンクを辿っていたらそれっぽいところがあったのでそこから状況を報告してどうしたらいいか教えてほしいと送信しました。
すると24時間も経たないうちに返事がきました。
それによると今回新しく作られたAzure ADはセルフサインアップテナントと呼ばれるものだそうです。
以下、マイクロソフトサポートからの返信にあった内容をそのまま貼り付けます。
セルフサインアップ テナントとは
PowerBI や RMS などを利用する際には組織アカウントが必要です。 これらのサービスは利用を開始する際に指定したメール アドレスに含まれるドメインが Azure AD に登録されてない場合、自動的に対応する Azure AD のテナント (ディレクトリ) を作成します (セルフサインアップします)。 このセルフサインアップの結果作成されたテナントには、指定したメール アドレスに含まれるドメインがカスタム ドメインとして登録されます。
セルフ サインアップ テナント (バイラル テナントとも呼ばれる) には、管理者が存在しないため、テナントに存在するアカウントを削除したり、紐づけられたカスタム ドメインを別のテナントで利用しようとする際には、まず最初に管理者への昇格作業が必要です。
管理者への昇格作業では、カスタム ドメインを登録する際と同じように DNS レコードによる検証作業が必要です。 検証作業が完了すると作業アカウントが管理者となり、セルフ サインアップ テナントは通常の Azure AD と同じ状態になります。
まったくもってそのまんまです。
- セルフサインアップテナントには管理者は存在しない。
- セルフサインアップしたときのアカウントのドメイン名が自動的にカスタムドメイン名として信頼済みに設定される。
で、肝心の管理者への昇格方法ですがこれももちろん教えてもらえました。
まず Office 365ポータル に問題のアカウントでログインします。「え?なんでOffice 365?」と思いますがOffice 365なんです。
続いて上部にあるツールバーの四角形(アプリ一覧。下図の「これ」と書いたやつ)をクリックして「管理者」をクリックします。
そうしたらやけにでかい文字で「管理者になりますか?」と聞かれます(笑)
「はい、私が管理者になります」をクリックするとDNSにTXTレコードを追加するように言われますので指示通りにDNSを更新します。DNSの内容を変更できるのはそのドメインの所有者だけですからこれによって所有者であることを確認しているわけですね(ドメイン関係の操作ではよくあります)。
TXTレコードの確認が済むと管理者に昇格されます。昇格後はTXTレコードは消してしまって大丈夫です。
Azureポータル のAzure Active Directoryで確認してみると無事全体管理者になっていました。
ふぅ、これでなんとかなりそう。
しかし、なんで管理者への昇格がOffice 365ポータルにあるんだろう?
最初にOffice 365でこういう機能(セルフサインアップテナント)が必要になって、あとから「おっ、その機能いいな。オレも使うわ」という感じで他のサービスでも使うようになったとかそんなところかな。
普通にAzureポータルのAzure ADのところに「管理者へ昇格する」ボタンでもあればすぐにわかるのに。。。
さて、あとは後始末です。
まず、MicrosoftデベロッパーセンターでAzure ADへの関連付けを解除しておきます。
続いて、AzureポータルでAzure ADを開き、カスタムドメイン名を解除します。プライマリになっていると解除できないのでAzure ADのドメイン(XXXXX.onmicrosoft.comってやつ)をプライマリにしてからカスタムドメイン名を削除してやります。
と思ったら使用されてると削除できないんですね。自分(aoyagi@example.com)がユーザーとして存在するためにexample.comは削除できません。えーと、ということは、まずユーザーの追加でAzure ADドメインのユーザー(aoyagi@XXXXX.onmicrosoft.com)を全体管理者として追加して、そのユーザーでログインしなおして、元の自分(aoyagi@example.com)を削除してからカスタムドメイン名を削除すればいいのか。ちなみに元の自分を削除すると言ってもあくまでAzure AD上のユーザーなので元となったMicrosoftアカウントとかには影響ありません(はず。影響あったら困る)。
と、こんな感じで後始末完了です。
ところで
もともとMicrosoftアカウントとして存在するメールアドレスをAzure ADのゲストユーザーとして登録すると1つのメールアドレスがMicrosoftアカウントでもあり、Azure ADアカウントでもあることになります。Microsoftデベロッパーセンターなどはどちらのアカウントにも対応しているのでどちらなのか区別する必要が出てきます。この場合、そのメールアドレスでログインしようとすると下のような選択が出るようになります。
ちなみに、上の「職場または学校アカウント IT部署が作成」というのはAzure ADのアカウントで、下の「個人のアカウント お客様が作成」がMicrosoftアカウントのことです。確かにAzure ADは個人ではなく会社や学校の管理者が作るだろうし、Microsoftアカウントは個人が作るはずのものだから間違っているわけではないけど。。。なんともわかりにくい。普通に「Azure ADアカウント」「Microsoftアカウント」とも併記しておいてくれた方がよっぽとわかりやすいと思うんだけどそれじゃなにか問題あるんだろうか?
このあたりはマイクロソフトもわかりにくいと思っているようで「#AzureAD と Microsoft アカウントの重複問題に対する取り組み」なんていう記事もあります。