Office365 独自ドメインをAzureDNSで設定したメモ – PowerShell

Office365で外部DNSを利用して、独自のドメインを利用することができると。
ポータルからはまだよく見えてなかったけど存在しているAzureDNSを使って設定したメモをマスクしながらここに残しておきます。
ただ、最近はポータルからも設定できるようになってきましたので、そもそもこれでやるメリットはそこまでないと思う。テンプレート化してというのもあるけど、ARMもあるわけで、メモ程度と考えてください
課金形態は、クエリ単位のものなので、利用者が極端に多い場合は、DNSサーバー使ったほうがいいかもしれない。けど可用性や負荷の面倒から解放されるというの機能も捨てがたいかもしれない。
また、AzureDNSは一つのゾーンで、4つのDNSサーバーを持つ様子。
おそらくは、それぞれの地域でサーバーが存在していると思われる。
(多分、それぞれの地域でIPにResolveすればわかる気がするけど、試してはいない)
最初にDNSゾーンの作成、その後レコードセットと言われるDNSのレコードを登録していきました。PowerShellの参考として考えてください。

[ゾーンの作成と確認]

New-AzureDnsZone -Name [ドメイン名] -ResourceGroupName [リソースグループ名]
Get-AzureDnsRecordSet -ZoneName [ドメイン名] -ResourceGroupName [リソースグループ名]

[レコードセットの作成 – MX]

$rsmx = New-AzureDnsRecordSet -Name "@" -RecordType "MX" -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Ttl 3600
Add-AzureDnsRecordConfig -RecordSet $rsmx -Exchange [mailホスト名].mail.protection.outlook.com -Preference 0
Set-AzureDnsRecordSet -RecordSet $rsmx

[作成済みの場合]
$rsmx = Get-AzureDnsRecordSet -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Name "@" -RecordType "MX"

[レコードセットの作成 – TXT]

$rstxt = New-AzureDnsRecordSet -Name "@" -RecordType "TXT" -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Ttl 3600
Add-AzureDnsRecordConfig -RecordSet $rstxt -Value "v=spf1 include:spf.protection.outlook.com -all"
Set-AzureDnsRecordSet -RecordSet $rstxt

[作成済みの場合]
$rstxt = Get-AzureDnsRecordSet -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Name "@" -RecordType "TXT"

[レコードセットの作成 – CNAME autodiscover]

$rscnameautodiscover = New-AzureDnsRecordSet -Name "autodiscover" -RecordType "CNAME" -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Ttl 3600
Add-AzureDnsRecordConfig -RecordSet $rscnameautodiscover -Cname "autodiscover.outlook.com"
Set-AzureDnsRecordSet -RecordSet $rscnameautodiscover 

[作成済みの場合]
$rscnameautodiscover = Get-AzureDnsRecordSet -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Name "autodiscover" -RecordType "CNAME"

[レコードセットの作成 – CNAME lyncdiscover]

$rscnamelyncdiscover = New-AzureDnsRecordSet -Name "lyncdiscover" -RecordType "CNAME" -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Ttl 3600
Add-AzureDnsRecordConfig -RecordSet $rscnamelyncdiscover -Cname "webdir.online.lync.com"
Set-AzureDnsRecordSet -RecordSet $rscnamelyncdiscover 

[作成済みの場合]
$rscnamelyncdiscover = Get-AzureDnsRecordSet -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Name "lyncdiscover" -RecordType "CNAME"

[レコードセットの作成 – CNAME msoid]

$rscnamemsoid = New-AzureDnsRecordSet -Name "msoid" -RecordType "CNAME" -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Ttl 3600
Add-AzureDnsRecordConfig -RecordSet $rscnamemsoid -Cname "clientconfig.microsoftonline-p.net"
Set-AzureDnsRecordSet -RecordSet $rscnamemsoid 

[作成済みの場合]
$rscnamemsoid = Get-AzureDnsRecordSet -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Name "msoid" -RecordType "CNAME"

[レコードセットの作成 – CNAME sip]

$rscnamesip = New-AzureDnsRecordSet -Name "sip" -RecordType "CNAME" -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Ttl 3600
Add-AzureDnsRecordConfig -RecordSet $rscnamesip -Cname "sipdir.online.lync.com"
Set-AzureDnsRecordSet -RecordSet $rscnamesip 

[作成済みの場合]
$rscnamesip = Get-AzureDnsRecordSet -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Name "sip" -RecordType "CNAME"

[レコードセットの作成 – CNAME enterpriseregistration]

$rscnameenterpriseregistration = New-AzureDnsRecordSet -Name "enterpriseregistration" -RecordType "CNAME" -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Ttl 3600
Add-AzureDnsRecordConfig -RecordSet $rscnameenterpriseregistration -Cname "enterpriseregistration.windows.net"
Set-AzureDnsRecordSet -RecordSet $rscnameenterpriseregistration 

[作成済みの場合]
$rscnameenterpriseregistration = Get-AzureDnsRecordSet -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Name "enterpriseregistration" -RecordType "CNAME"

[レコードセットの作成 – CNAME enterpriseenrollment]

$rscnameenterpriseenrollment = New-AzureDnsRecordSet -Name "enterpriseenrollment" -RecordType "CNAME" -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Ttl 3600
Add-AzureDnsRecordConfig -RecordSet $rscnameenterpriseenrollment -Cname "enterpriseenrollment.manage.microsoft.com"
Set-AzureDnsRecordSet -RecordSet $rscnameenterpriseenrollment 

[作成済みの場合]
$rscnameenterpriseenrollment = Get-AzureDnsRecordSet -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Name "enterpriseenrollment" -RecordType "CNAME"

[レコードセットの作成 – SRV _sipfederationtls._tcp]

$rssrv_sipfederationtls_tcp = New-AzureDnsRecordSet -Name "_sipfederationtls._tcp" -RecordType "SRV" -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Ttl 3600
Add-AzureDnsRecordConfig -RecordSet $rssrv_sipfederationtls_tcp –Priority 100 –Weight 1 –Port 5061 –Target "sipfed.online.lync.com"
Set-AzureDnsRecordSet -RecordSet $rssrv_sipfederationtls_tcp

[作成済みの場合]
$rssrv_sipfederationtls_tcp = Get-AzureDnsRecordSet -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Name "_sip._tls" -RecordType "SRV"

[レコードセットの作成 – SRV _sip._tls]

$rssrv_sip_tls = New-AzureDnsRecordSet -Name "_sip._tls" -RecordType "SRV" -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Ttl 3600
Add-AzureDnsRecordConfig -RecordSet $rssrv_sip_tls –Priority 100 –Weight 1 –Port 443 –Target "sipdir.online.lync.com"
Set-AzureDnsRecordSet -RecordSet $rssrv_sip_tls

[作成済みの場合]
$rssrv_sip_tls = Get-AzureDnsRecordSet -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Name "_sip._tls" -RecordType "SRV"

そして、最後に確認!

Get-AzureDnsRecordSet -ZoneName [ドメイン名] -ResourceGroupName [リソースグループ名]

追記 2016/02/17

Azure No1の方がポータルでの設定をまとめていらっしゃいました

Azure DNSの管理(ポータル編)

「第13回 Office365 勉強会 ~ 北の国から2016 ~」に参加させていただきました

こんにちわ!おそくなりましたが、参加報告です。

http://jpo365ug.com/o365-meeting/meeting-13/

セッションの内容は、聞いた人によって受け取り方はさまざまだったんじゃないかと思います。機能の紹介から始まって、運用の話、開発の話と幅広い内容を4セッションで聞かせていただきました。

これは、非常に面白かったです。というのも、MicrosoftAzureは完全にプラットフォームなところですが、Office365はエンドユーザーに向けたサービスというのが一番の理由でしょうか。レイヤーでいうなら、OSとかミドルウェア、プラットフォームまでがAzureですが、Office365は完全な機能(アプリケーション)を提供するサービスです。それもAPI(Application-Plugin Interface)付き。ので、ここに携わる開発者というのはこういうサービスを作りたいという発想だけではなく、今あるものを便利にしようとか、より使い勝手をよくしようとか、活用できるようにしよう。運用からこんなことに困っているとか、営業やら運用からあがる具体的な事柄に対して立ち向かっていくというのが、開発者の一番の役目なのだなぁと感じました。

ディスカッションにおいては、まとめをしゃべる役目を承りましてマイクの電源が入っていない落ちどころからはじまって、話のオチで終わるという落ちてばかりでしたが、笑ってもらえただけありがたいと感じています。

ところで、Office365とAzureの結ぶ点にAzureADという認証を行うサービスがあったりします。Office365の視点だとあまりAzureADは、バックエンドであるため見えてきません。セッションの中でも開発を中心として紹介されていました。オンプレミスのADと連携する機能や、多要素認証・2段階認証(※別途有償だけど)、またはOAuthなどの認証サービス、。そして・・・Azureとの連携もあります。

http://msdn.microsoft.com/ja-jp/library/azure/jj573650.aspx

Azureの視点でみるなら、ここにユーザー・グループを作ってリソース管理にアクセス制御をするということ、またサービス自体の認証に使ってしまうということでWebアプリの認証としてポータルから設定することもできます。AzureAutomation用のアカウントを作ったりとかもありますね。

という具合に切っても切れない結びつきがありますので、ここつないでいったらクラウドの閉ざされたサービスというのももうちょっと面白い展開ができそうな気がしました。

それでは!