Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PHP開発者が挑むDKIM導入: Googleガイドライン対応の実例と学び / phpcon2024
Search
kazuki.uemura
December 24, 2024
0
450
PHP開発者が挑むDKIM導入: Googleガイドライン対応の実例と学び / phpcon2024
kazuki.uemura
December 24, 2024
Tweet
Share
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
52k
Code Review Best Practice
trishagee
65
17k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
The Pragmatic Product Professional
lauravandoore
32
6.4k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
98
18k
BBQ
matthewcrist
85
9.4k
Designing for Performance
lara
604
68k
Six Lessons from altMBA
skipperchong
27
3.6k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Speed Design
sergeychernyshev
25
760
Transcript
© RAKUS Co., Ltd. PHP開発者が挑むDKIM導⼊: Googleガイドライン対応の実例と学び PHP Conference Japan 2024
株式会社ラクス 上村和輝 2024/12/22
⾃⼰紹介 • 略歴 ◦ 2016〜 中⼩開発会社 Webアプリ、Android ◦ 2022/11〜 株式会社ラクス
PHP使って機能開発 • 趣味 ◦ ドラムとギターと⽇本酒🍶 2 上村和輝
サービス紹介 • 販売管理のSaaS • PHP / PostgreSQL • 15年続く歴史あるサービス 3
楽楽販売
4 本⽇のテーマ
5 去年、メール配信界隈で 話題になったコレ
ガイドラインが⾔ってること 6 Gmail宛にメール送信するときはこれを守るようにしてね • 送信ドメイン認証を設定する ◦ SPF‧DKIM‧DMARC • ドメインの迷惑メール率を0.3%以下にする •
Gmailを送信元として設定しない • メールの形式はRFC5322に準拠する ...などなど
7 メールを送るサービスは守るルールが めっちゃ増えた
8 しかも、2023/10に発表 2024/2から施⾏
9 楽楽販売も急いで対応🏃
話すこと • 結局何をしたらいいんだ? • 事業サイドにガイドラインを理解してもらうための取り組み • OpenDKIMとPHPによる2段階でのDKIMリリース 10
この発表のゴール 11 メール送信システムに関わるフルスタックなエンジニアが • メールセキュリティ周りで考えるべきことがなんとなく分かってい ること • PJを進める上でのヒントが得られていること
話すこと • 結局何をしたらいいんだ? • 事業サイドにガイドラインを理解してもらうための取り組み • OpenDKIMとPHPによる2段階でのDKIMリリース 12
(再掲)ガイドラインが⾔ってること • 送信ドメイン認証を設定する ◦ SPF‧DKIM‧DMARC • ドメインの迷惑メール率を0.3%以下にする • Gmailを送信元として設定しない •
メールの形式はRFC5322に準拠する ...などなど 13 Gmail宛にメール送信するときはこれを守るようにしてね
14 全部対応しなきゃいけない? ➡ サービス特性に依る
15 サービス特性 • ⾃由にリレーショナルデータベースの構築が可能 • データベースで管理している情報 × ノーコードツール で顧客業 務の⾃動化が可能
顧客ごとにカスタマイズ可能な販売管理サービス
16 サービス特性 • 業務を補助するオプション的機能としてメール送信も可能 • タイトル、メール本⽂、Toアドレス Fromアドレス、エンベロープFrom などがカスタマイズ可能 • メール専⾨のサービスほどメールインフラは整っていない
メール周りの特性
17 CS(カスタマーサクセス) ソフトウェア エンジニア(私) アドバイス インフラ エンジニア メール配信 サービス エンジニア
組織横断で要件別に対応⽅針を検討
楽楽販売が対応することにしたもの 18 • 送信ドメイン認証を設定する ◦ DKIM • Gmailを送信元として設定しない • メールの形式はRFC5322に準拠する
19 送信ドメイン認証を設定する(DKIM) • 作成者署名を付与できるように ◦ サービスの特性上、DKIMでのアライメントも提供したい • リリース時に、顧客には作成者署名を設定頂くよう案内 サービスとしての対応⽅針
20 Gmailを送信元として設定しない • FromアドレスにGmailアドレスは利⽤できないよう制限 • 既にGmailアドレスを利⽤していた顧客が約300社 ◦ 顧客ドメインを準備いただくようCSから各顧客へ依頼 サービスとしての対応⽅針
21 メールの形式はRFC5322に準拠する • RFCに違反し得る実装がないか調査... ◦ メールアドレスの制限が緩かった • RFC違反アドレスは利⽤できないよう制限 • 既にRFC違反アドレスを利⽤していた顧客が数社
◦ アドレスの変更をCSから各顧客へ依頼 サービスとしての対応⽅針
22 やることだいたい決まってきた
23 ここで問題が...
話すこと • 結局何をしたらいいんだ? • 事業サイドにガイドラインを理解してもらうための取り組み • OpenDKIMとPHPによる2段階でのDKIMリリース 24
25 やることだいたい決まってきた
26 どの対応も顧客協⼒が⽋かせない ➡ CS協⼒が⽋かせない
27 CS ソフトウェア エンジニア(私) アドバイス CSの理解が追いついていない インフラ エンジニア メール配信 サービス
エンジニア
28 CS ソフトウェア エンジニア(私) アドバイス CSの理解が追いついていない インフラ エンジニア メール配信 サービス
エンジニア DKIM機能 作ります!
29 CS ソフトウェア エンジニア(私) アドバイス CSの理解が追いついていない インフラ エンジニア メール配信 サービス
エンジニア DKIM機能 作ります! ??...OK! (DKIM?)
30 CS ソフトウェア エンジニア(私) アドバイス CSの理解が追いついていない インフラ エンジニア メール配信 サービス
エンジニア DKIM機能 作ります! ??...OK! (DKIM?) Fromアドレスは独⾃ドメイン にしてもらって! 対象は300社です!
31 CS ソフトウェア エンジニア(私) アドバイス CSの理解が追いついていない インフラ エンジニア メール配信 サービス
エンジニア DKIM機能 作ります! ??...OK! (DKIM?) やらないとどう なるの? Fromアドレスは独⾃ドメイン にしてもらって! 対象は300社です!
32 CS ソフトウェア エンジニア(私) アドバイス CSの理解が追いついていない インフラ エンジニア メール配信 サービス
エンジニア DKIM機能 作ります! ??...OK! (DKIM?) やらないとどう なるの? なんか顧客問い合 わせ増えそう... Fromアドレスは独⾃ドメイン にしてもらって! 対象は300社です!
33 顧客に依頼するにはまずCSの理解が必須 何をして欲しいのか • アプリ上での操作‧設定の⽅法 • ただし、個別のケースだけを覚えても他のケースに対応できない • ⼀段抽象化した理解が必要 なぜして欲しいのか
• ガイドラインのこの要件に対応したいから • 対応しないとサービスの利⽤に影響がでるから
34 CSからの要望 • 顧客から多くの問い合わせが来ることが予想される • エンジニアにエスカレーションせずともCSで打ち返せるように なっておきたい
35 とはいえ、 そもそもの発端が技術的な話
36 CSにも伝わる表現だけで説明することが難しい 中途半端な説明では • ⼀段抽象化した理解 • CSが顧客問い合わせを打ち返せる状態 にはつながらない
CSにメールセキュリティの知識をもってもらう 37 • DMARC、SPF、DKIM、電⼦署名の基礎知識 • ガイドラインの要約と楽楽販売での対応 CS約50⼈に向けて講習を実施
メイン担当CSのキャッチアップ 38 CSから歩み寄りのおかげもあり、CS理解は進んだ エンジニアへの質問の蓄積、CS内で想定Q&Aの作成
39 よし、やること決まった(2023/12)
40 よし、やること決まった(2023/12)
当時の開発状況 41 2023/10 ガイドライン公布 2023/11 楽楽販売でガイドラインの調査開始 2023/12 楽楽販売でのガイドラインの要件整理完了 楽楽販売定期リリースポイント 2024/2
ガイドライン施⾏ 結構やることあ る💦 開発間に合わな い
当時の開発状況 42 2024/7 楽楽販売定期リリースポイント 2024/5 2024/3 OS切替、PostgreSQLのバージョンアップ対応 段階リリース この間、アプリのリリースはストップ
早くてアプリの リリースココ
43 ちょっと遅すぎる
44 より重要度が⾼いと思われる DKIMだけでも2⽉までに何とかしたい
話すこと • 結局何をしたらいいんだ? • 事業サイドにガイドラインを理解してもらうための取り組み • OpenDKIMとPHPによる2段階でのDKIMリリース 45
ミドルウェアレイヤでの暫定対応 OpenDKIM 46 アプリ 署名したいドメインと鍵を登録 受信者 DKIM署名の付与‧検証ができる
楽楽販売におけるOpenDKIMのメリデメ 47 ⭕ 低コストで素早く第三者署名を導⼊できる ❌ 作成者署名の管理に運⽤負荷がかかる
第三者署名 48 楽楽販売の署名を⼀律で付与 アプリ 楽楽販売のドメインと鍵 受信者
作成者署名 49 ドメインごとに設定が必要 顧客問い合わせを受け付け、顧客のドメイン毎に対応 アプリ 顧客Aのドメインと鍵 受信者 顧客Bのドメインと鍵
暫定対応から正式対応へ 50 • ミドルウェアレイヤの対応はあくまで暫定対応 • 正式対応として、アプリで顧客が作成者署名を管理できる機能 を提供する
暫定対応から正式対応へ 51 2024/1 OpenDKIMで第三者署名付与 2024/2 ガイドライン施⾏ OpenDKIMで作成者署名付与(顧客ごとに対応) 2024/8 DKIMを含むガイドライン対応Verをリリース OpenDKIMの作成者署名情報をアプリに移⾏
暫定対応しつつ、アプリで顧客が作成者署名を管理できる機能を開発
52 無事、ガイドライン対応完了🎉
その後 53 • 現在もちらほらとDKIM周りの問い合わせは届いている • CSおよびCSをアシストするエスカレーションエンジニアの⽅々に 対応いただいている 感謝です 顧客⽬線のインパクトは⼤きく...
54 まとめ
Googleガイドラインと向き合ってみて 55 • サービス特性を考慮して、楽楽販売がとるべき対応を決めた • メールセキュリティ周りは顧客協⼒が⽋かせない ◦ DNSを調整してもらう ◦ ドメインを取得してもらう
◦ アプリに設定してもらう 動き出しは早めに
56 • ⾮エンジニアに対応を理解してもらうために、思い切って専⾨的 な知識もがっつり学んでもらった • 開発スケジュールと相談して暫定対応と正式対応を使い分けた Googleガイドラインと向き合ってみて
57 ご清聴ありがとうございました