こんにちは。 CI/CD を含むクラウドインフラの構築や技術支援を担当している、クラウドエンジニアの佐藤です。
Azure の検証にも使える Microsoft 365 開発者プログラムの E5 ライセンスを無料で手に入れてみた
Visual Studio サブスクリプション特典の Azure を Microsoft 365 開発者プログラムのテナントに追加してみた
GitHub Codespaces を使って無料で Azure CLI を実行する環境を整えてみた
の続きです。
E5 ライセンスと Azure サブスクリプションと Azure CLI の実行環境が無料で手に入り、この検証環境を使って様々な検証結果をお届けしていきます。
まずは、今後の検証にも大いに活躍するであろう、検証環境用の カスタムドメインを Azure で取得 します。それから DNS を設定して、ユーザー作成して、E5 ライセンスを付与して、Outlook on the web でメール送受信を試します。
私がお届けする検証内容は、なるべく Azure CLI を使ってリソース作成を行い、実行結果を Azure ポータルなどで確認していく流れとなります。リソース作成を Azure CLI にしておけば、パラメーターを変更するだけで別の Azure 環境での再現性も高く、作ったり変更したり削除したりが容易です。
前回 Azure CLI 環境を整えた、GitHub Codespaces を使用します。
「 az account show 」を実行して作業対象の Azure サブスクリプションである事を確認します。
az account show
リソースグループを作成します。
az group create \
--name ceblog-rg \
--location japaneast
リソースグループが作成された事を確認します。
カスタムドメイン取得者情報用のテンプレート JSON をダウンロードします。
wget https://raw.githubusercontent.com/AzureAppServiceCLI/appservice_domains_templates/master/contact_info.json
事前に調べておいた、使われていないドメイン「 ceblog.com 」でカスタムドメインを取得します。
※
az appservice domain create
az appservice domain create \
--resource-group ceblog-rg \
--hostname ceblog.com \
--contact-info=@contact-info.json \
--accept-terms
先ほどとは異なるドメイン「 ceblog.net 」でカスタムドメインを取得します。
az appservice domain create \
--resource-group ceblog-rg \
--hostname ceblog.net \
--contact-info=@contact-info.json \
--accept-terms
Azure ポータルで作成されたリソースを確認します。
「 App Service ドメイン」と、カスタムドメインの DNS を管理する「 DNS ゾーン」が作成されました。
「 App Service ドメイン」の有効期限は 1 年後、自動更新は有効、プライバシー保護も有効である事が確認できます。
「 DNS ゾーン」に NS レコードと SOA レコードが自動登録されている事が確認できます。
App Service ドメインは毎年 11.99 ドルの利用料金が発生します。
私の検証環境は Visual Studio サブスクリプション特典の Azure クレジットが適用されるので、とても助かります。
※
App Service の価格
Microsoft 365 の認証基盤である Azure AD にカスタムドメインを追加します。
※
ドメインを作成する
az rest \
--method post \
--url https://graph.microsoft.com/v1.0/domains \
--body '{
"id": "ceblog.net"
}'
追加できたカスタムドメインを Azure ポータルで確認します。
追加できたカスタムドメインを Microsoft 365 管理センターで確認します。
※
Microsoft 365 管理センター
未確認のカスタムドメインを確認済みにするための DNS 登録情報を取得します。
※
リストの検証DnsRecords
az rest \
--method get \
--url https://graph.microsoft.com/v1.0/domains/ceblog.net/verificationDnsRecords
私の場合は TXT レコードを DNS ゾーンに登録しカスタムドメインの確認を進めます。
※
az network dns record-set txt add-record
az network dns record-set txt add-record \
--resource-group ceblog-rg \
--record-set-name @ \
--value "MS=ms54820428" \
--zone-name ceblog.net
Azure ポータルで DNS ゾーンに登録された TXT レコードを確認します。
GitHub Codespaces 上で名前解決できるか確認します。
host -t txt ceblog.net
host コマンドが使用できるように Ubuntu のパッケージ「 dnsutils 」をインストールします。
sudo apt install -y dnsutils
host -t txt ceblog.net
カスタムドメインの所有権を検証します。
※
ドメインを確認する
az rest \
--method post \
--url https://graph.microsoft.com/v1.0/domains/ceblog.net/verify
Azure ポータルでカスタムドメインの状態が「確認済み」になっているのを確認します。
カスタムドメインをプライマリ(デフォルトドメイン)にします。
※
ドメインを更新する
az rest \
--method patch \
--url https://graph.microsoft.com/v1.0/domains/ceblog.net \
--body '{
"isDefault": true
}'
デフォルトドメインをクエリーに指定してカスタムドメインが取得できるか確認します。
az rest \
--method get \
--uri https://graph.microsoft.com/v1.0/domains \
--query "value[?isDefault].id" \
--output tsv
Microsoft 365 管理センターでカスタムドメインの状態を確認します。
Azure AD 側では確認済みとなりましたが、Microsoft 365 側では追加の DNS 登録が必要なため「セットアップ未完了」となっています。
カスタムドメインをクリックし、下記の画面で「セットアップを続ける」をクリックします。
「続行」をクリックします。
DNS ゾーンに登録する MX CNAME TXT レコードが表示されます。
MX レコードを DNS ゾーンに登録します。
az network dns record-set mx add-record \
--resource-group ceblog-rg \
--record-set-name @ \
--exchange "ceblog-net.mail.protection.outlook.com" \
--preference 0 \
--zone-name ceblog.net
CNAME レコードを DNS ゾーンに登録します。
az network dns record-set cname set-record \
--resource-group ceblog-rg \
--record-set-name autodiscover \
--cname "autodiscover.outlook.com" \
--zone-name ceblog.net
TXT レコードを DNS ゾーンに登録します。
az network dns record-set txt add-record \
--resource-group ceblog-rg \
--record-set-name @ \
--value "v=spf1 include:spf.protection.outlook.com -all" \
--zone-name ceblog.net
Azure ポータルで DNS ゾーンに登録された MX CNAME TXT レコードを確認します。
Microsoft 365 管理センターに戻って「続行」をクリックします。
「完了」をクリックします。
ドメインの状態が「セットアップ未完了」と表示されたままなので「更新」をクリックします。
ドメインの状態が「正常」と表示されました。
デフォルトドメインで新規ユーザー「 testuser 」を作成します。
ここで表示しているパスワードは Microsoft のオンラインドキュメントにも記載されているサンプルのパスワードです。
domain=$(az rest \
--method get \
--uri https://graph.microsoft.com/v1.0/domains \
--query "value[?isDefault].id" \
--output tsv)
echo $domain
az ad user create \
--display-name testuser \
--password st0r0nGp@ssw0rd \
--user-principal-name testuser@$domain
Azure ポータルで「 testuser 」が作成されていることを確認します。
E5 ライセンスを割り当てる前に「 testuser 」の利用場所を日本に設定します。
az rest \
--method patch \
--uri https://graph.microsoft.com/v1.0/users/$(az ad user show \
--id testuser@$domain \
--query id \
--output tsv) \
--body '{
"usageLocation": "JP"
}'
Microsoft 365 開発者プログラムの E5 ライセンスの SKU 番号を調べます。
az rest \
--method get \
--uri https://graph.microsoft.com/v1.0/subscribedSkus \
--query "value[].{skuId:skuId, skuPartNumber:skuPartNumber}[?contains(skuPartNumber,'DEVELOPERPACK_E5')]"
「 testuser 」に E5 ライセンスを割り当てます。
az rest \
--method post \
--uri https://graph.microsoft.com/v1.0/users/$(az ad user show \
--id testuser@$domain \
--query id \
--output tsv)/assignLicense \
--body '{
"addLicenses": [
{
"disabledPlans": [],
"skuId": "c42b9cae-ea4f-4ab7-9717-81576235ccac"
}
],
"removeLicenses": []
}'
Azure ポータルで「 testuser 」に E5 ライセンスが割り当てられているか確認します。
Outlook on the web
にアクセスします。
ユーザー名を入力し「次へ」をクリックします。
パスワードを入力し「サインイン」をクリックします。
「今はしない」をクリックします。
「はい」をクリックします。
Outlook on the web にサインインできました。
「新規メール」をクリックします。
宛先、件名、本文を入力します。
送信アイコンをクリックします。
宛先に指定したメールアカウントでメール受信を確認します。
「 testuser 」からメールが送られてきた事が確認できます。
「返信」をクリックします。
本文を入力し「送信」をクリックします。
Outlook on the web に戻りメール受信を確認します。
検証用に作成した「 testuser 」を削除します。
az ad user delete \
--id testuser@$domain
「削除されたユーザー」をクリックすると「 testuser 」が表示されます。
一定期間内であれば、ここから誤って削除したユーザーを復元する事ができます。
これで、カスタムドメインを使った Azure や Microsoft 365 の検証が可能となりました。
このブログ記事が誰かの何かの参考になればうれしいです。 最後まで読んで頂き、ありがとうございます。