Office365 接続先IPの変更通知がXMLからRESTサービスに変更となるようです

ファイアウォールなどで通信データを制御している場合、以下のページでアクセス先を確認し、設定を行うケースは多々あるかと思います。

Office 365 URL および IP アドレス範囲 - Office 365

これを見ていたところ、以下のように注意書きが追加されており、Webサービス(RESTサービス)への移行が記されていました。

【注意書き】

f:id:mohessu:20180506133928p:plain

そして、その内容は以下。

Managing Office 365 endpoints - Office 365

f:id:mohessu:20180506135005p:plain

4.Webサービスというタブが追加され、どういったアクセスが必要となるかが記されています。

詳細は読んでいただくとして、大まかには以下3つのコマンドを用いての制御となります。

https://endpoints.office.com/version/O365Worldwide
https://endpoints.office.com/endpoints/o365worldwide
https://endpoints.office.com/changes/o365worldwide/0000000000

Office365中国、ドイツなどでは一部アドレスがことなったりしますが、概ねこれを覚えておけば問題ないかと。

ClientRequestId=の必須パラメータでGUIDをセットしないとデータがとってこれないため、これは忘れないようにしましょう。GUIDについては特に値に決まりはないようです。(サイトにも記載はありますが、この値は使えなくなるかも。とのこと)

日本語サイトだと、クエリパラメータとしてFORMAT=となる部分が形式=となっていたりで正しいパラメータがわかりにくいので、そのあたりを考慮して英語サイトで閲覧したほうがよさそうです。

試しに以下コマンドで動作を確認してみたところ、ブラウザアクセスでも応答を取得できました。

https://endpoints.office.com/version/O365Worldwide?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7&AllVersions=true&format=CSV

f:id:mohessu:20180506140549p:plain

endpointsとchangesについては、ここで取得したデータをもとに組み立てろ。ということになりますね。

上記応答より、20180503の変更点を取ってみると、、、

https://endpoints.office.com/changes/o365worldwide/2018050300?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7&format=CS

f:id:mohessu:20180506140945p:plain

なんとデータなし笑

ひとつ前でとってみると、、、

https://endpoints.office.com/changes/o365worldwide/2018033000?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7&Format=CSV

f:id:mohessu:20180506141238p:plain

きっちりとデータの取得が行えました。

実体としては、変更点の取得よりも今の状態を取ることが多いのかと思います。
その場合はendpointsを取得することになります。

https://endpoints.office.com/endpoints/o365worldwide?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7&format=CSV

加工方法によって、JSONもしくはCSVどちらで出力するか決めることになりますが、Formatパラメータを付けなければJSONとなるため、JSONでとってから加工するのが一般的になるのかと。(CSVにした方がデータ量が削減されると思います。微々たるものですが。)

この内容を定期的に取得し、うまくFWにあてる仕組みを作ってしまえばメンテが楽になると思いますので、活用を検討してみてはいかがでしょうか。

音楽:YUZURIHA