re:newalhttp://blog.flect.co.jp/cloud/からさらに引っ越しています2019-12-18Auth0の話こんにちは。しやさんじゃない方の齋藤です。季節がやってきました。qiita.comHerokuのDynoやアドオンの構成は、定番がありつつもプロジェクトごとの微妙な色彩の違いにフィットさせる必要があり、いつも座組みに頭を悩ませるところでありますが、個人的にはカードゲームのデッキ構築みたいなものだと思っています。Creditぎりぎりまで強いカードを少しでも多く入れたい。前から存在は知っていたAuth0にようやく触れる機会が取れたので、検討している方に少しでもヒントになればと思ってAuth0の紹介をしてみたいと思います。面倒な実装をせず、強力な認証基盤をすぐさま自身のアプリに取り込むことができます。SDK、サンプルコード、対応するソーシャルログインなど、品揃えが圧倒的。Appleが標準で提供されたりしました。auth0.comまた、個人的な印象としては、管理者向けのダッシュボードがとにかく始めやすいように作られているので、従来のエンタープライズ系SSO製品と比べて、0を1にする部分の苦しみから開発者が圧倒的に解き放たれる感があります。OpenAMの複雑な管理者画面の遷移の仕方を覚えたり、ちょっと設定を変えたいだけなのに/var/lib/tomcat/webapps界隈に足を運ばないと行けなかったり・・といった手間はないので大事なコードに集中できる感は圧倒的に勝っています。引き算の美学いつもシステム構成の下敷きとして定期的に見直しているpostに以下があります。認証認可の仕組みの理解が必要になるタイミングがあると思うのですよね。Javaでいうと、スレッドプログラミングができたら中級者みたいなそんな感じかな・・(個人の意見です)現代のWebアプリにはログイン機能は当たり前のようにありますが、自前で作る場合は思ったよりも機能が爆発したり、OpenAMなどのオープンソースを使うにしても非機能要件を考慮した結果それなりにインフラ面が大掛かりになってしまったりと、トータルで見たときに手間が大きくなってしまうことがあります。全体への基盤改修リスクが大きい、といった結果として跳ね返ってきます。導線検討やセキュリティ面の考慮というのは避けて通れない。抽象化ないしスキップできてしまうのがAuth0の良いところかなと。CRMとの親和性CIAMとして見て、やはりCRMとの親和性の高さがポイントの1つかなと思っています。codeやバッチ処理からCRM・MAに取り込み、ネイティブにプッシュ配信、など。セキュリティオートメーションでも重宝しますね。FederatedにSSOしてWebアプリ側にも行き来しやすくする、といったアプローチも取れます。Auth0の良いところは、Rulesを使って認証時の様々なフック処理を書けるところです。管理者のコンソールでコード片のデバッグが出来るのは地味に強い。それはそれとして、Auth0標準のカスタムデータベースとソーシャルログインのユーザをマージする前提でWebアプリを組むときや、外のサービスを呼びつつid_tokenに必要な情報を詰め込みたいとかログインのうち何回かは外部DBからの最新情報を取ってきてキャッシュしたいとか、色々なユースケースで活躍します。主要なイベントについてはテンプレートがあるので、流用開発ベースで進めることができ、どれくらい手間がかかるのかの見立てが立てやすいところがポイント。収集・集約・アプローチのタッチポイントをAddonインストール一発で作れるのは非常にありがたいところなのではないでしょうか。今年、yonyonさんとSWTTでHerokuの話をしたとき※には認証周りの話題はしなかったのですが、当然Herokuのアプリで認証込みでサービスを作るときにはAuth0が第一の選択肢になってきます。Qiita当たり前ですがHerokuのユーザで各ステージのアプリにシングルサインオンできるし、テナントのユーザ権限もHerokuユーザに付与できるので、ちょっと管理者ユーザとして他の人に見てほしいときに、Collaboratorとして招待できますし。Add-onプランとしては以下があります。B2CAD連携やマルチデータソース戦略を取るわけでなければ、意外とキャップは少なくFreeで出来ることが多いです。Enterpriseという構成などでも良いかなと思います。Users)がベースとなります。月1回でもログインすればそのユーザは1カウントとして計算され、プランごとの上限値はそのMAUで決まります。Usersに対して先月は2,500ユーザ。Dashboardのトップでもログインユーザのサマリが確認できるのですが、各月のアクティブユーザについては以下から当月のQuotaを参照できます。User)とソーシャルログインを併用しており、両者をマージルールで1ユーザとしてマージした場合には、どちらのログインを利用してもMAUは1カウントになります。逆になると別カウントなので、マージ可否は要件として決めておいた方が良いです。リミットを超えてきそうな場合にはプランの引き上げ(再検討)が必要になりますが、最初からGold以上で行くなら最初にキャパシティ設計をしっかりやっておきます。だいたいHerokuはスモールスタートもしくは3-5年くらいを目安に非機能設計しておくのが多いと思いますが、予想よりサービスがうまくいくと、それでも不足するケースもあります。重要なのはビジネス成功に伴ってPlanを拡張するというポジティブな拡張。いえ、RFMっぽくlast_loginが一定以上な「休眠ユーザ向け」にキャンペーンを打って月のログインがスパイクするようなケースなど、予期しきれないユーザ激増などもあると思うので、適度に流量と容量は見ておいた方が良いです。APIで定期的に以下略あたりができると良いと思います。思いついただけで作ったわけではないけど・・・Freeで出来ることが非常に多いアドオンなので、とりあえず使ってみてから考えればよいかなと思います。小西さんの書いた弊社過去ブログやサンプルサイトにも載っているので、ご参考までに。http://blog.flect.co.jp/labo/2014/07/auth0-3b49.htmlhttp://blog.flect.co.jp/labo/2014/08/auth0ldap-cae7.htmlhttp://flect-heroku-sample.herokuapp.com/authちょっとだけ気になるところドキュメントやリファレンスはオープンかつそれなりに充実しているものの、使ってみて多少癖のあるところや認証基盤ならではの沼っぽいハマり方をするケースも時々あります。あるトラブルシューティングやベストプラクティスがわかるようなナレッジベースが充実するとより良いな・・・と思ってます。いえこれだけの機能をそれなりに小ささでも使うことができるのはやっぱりサービスとしての力があるのだと思いますし、こまめなアップデートも結構好きなので、たぶん来年も追っかけていくとは思います。00:00Auth0の話Tweet関連記事2020-02-13SalesforceのプラットフォームイベントをPostmanから発行するこんにちは、技術開発室の藤野です。EventBridgeにトラスト構想の夢を見るこんにちは、遠藤@Cariot事業部です。(12/3)みなさん初めまして、CI事業部のウエダです。アドオン「Sqreen」で簡単にWAF!こんにちは。エンジニアのヤス・コバヤシです。Add-onsにプロビジョンする方法こんにちは。エンジニアのオクダです。専門知識に合格しました月別アーカイブはてなブログをはじめよう!flect_techさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。