IFTTTとFirebaseの連携で認証を追加
先日 PS4 をGoogle Home から操作できるように設定を行いました。
しかし、Firebase のプロジェクトの読み書きが自由に行える状態のため、Webhook で実行している URL が第三者にバレてしまうと、誰でもアクセスできてしまいます。
セキュリティ的にも良くないので、ひとまず認証を追加しました。
今回追加した設定は firebase 的にはレガシーとなっていますが、何もセキュリティ対策が無いよりはあったほうが良いでしょう。
設定自体は数分で完了しました。
Firebase のシークレットを確認
- Firebase にアクセス
- [歯車]-[プロジェクトの設定] をクリック
- 初めてアクセスすると利用規約が表示されるため [同意する] をクリック
- [サービスアカウント] タブをクリック
- [データベースのシークレット] をクリックしてシークレットコードを確認
データベースのルールを変更
- [データベース]-[ルール] をクリックして、以下のようにルールを書き換える
{
“rules”: {
“.read”: false,
“.write”: false,“googlehome”: {
“.read”: true,
“.write”: true,
“words”: {
“.validate”: “(auth != null || newData.val() === ”)”
}
}
}
}
IFTTT のアプレットに認証コードを追加
- IFTTT のマイアプレットへアクセス
- 認証を追加するアプレットの [歯車] をクリック
- [URL] に記載されているアドレスの最後に以下を追加
※[シークレット] は Firebase の設定で確認したシークレットです。
?auth=[シークレット]
1~2分後に確認したところ、問題なく動作しました。
あまり早すぎると IFTTT 側の認証設定が反映されていないためか、想定通りに動きませんでした。
その影響でアプリ側もフリーズしてしまったので、OS ごと再起動して直りました。
コメントを書く