はじめに
こちらの記事ではレンタルサーバでcoesiteレポジトリを使用してベクトルタイルをホスティングしました。リバースプロキシを使用していましたが、ふとリバースプロキシを使用しないパターンでは適切に認証出来るのか気になり試してみました。
コードの設定をする
まずはこちらのcoesiteのコードをクローンしてきます。
default.hjsonの一部を修正
privkeyPath: ./key/privkey.pem
fullchainPath: ./key/cert.pem
port: 3000
tz:{
naturalEarth: 6
produce-gsc-un: 6
}
sTileName:{
naturalEarth: 0-0-0naturalEarth
produce-gsc-un: 6-35-31
}
.envの設定
OAUTH_REDIRECT_URI=https://k96mz.com:3000/auth/callback
とします。
Entra IDにも上記URLをRedirect URIsとして登録しておきます。
keyフォルダ
keyフォルダを作成し、その中にcert.pemとprivkey.pemを格納します。
ファイルの追加等
こちらの編集されたcoesiteレポジトリの以下のコードをコピーして持ってきます。
- views/index.hbs
- public/map以下の6つのファイル
そして、
naturalEarth.json
などのベクトルタイルのURLの設定を以下の通りとします。
「k96mz.com」から「k96mz.com:3000」に変更し、さらに、
「vtile-open」から「vtile-m」に修正します。
認証を試してみる
node app.jsとして
https://k96mz.com:3000/
としてみましたが、以下のエラーが発生しました。
(failed)net::ERR_HTTP2_PROTOCOL_ERROR
こちらの記事のように、routes/index.jsを変更してみます。
そうすると、うまくいきました。
その後の認証もうまくいきました。
map/naturalEarth.html
をクリックしてみてみると、以下のようなエラーがやはり発生しました。
(failed)net::ERR_HTTP2_PROTOCOL_ERROR
まとめ
リバースプロキシを使用せずに、レンタルサーバでcoesiteレポジトリを使用してベクトルタイルをホスティングしました。
routes/index.jsを変更すると、Entra IDの認証がうまくいくことが分かりましたが、リバースプロキシを使用すると変更せずにうまくいったりするので、結局謎のままです。
また、リバースプロキシを使用しないと、やはり「(failed)net::ERR_HTTP2_PROTOCOL_ERROR」というエラーが発生することが確かめられました。
Reference