AADでユーザ管理しよう
JAZUG TOKYO NIGHT 16
2019/01/30
自己紹介
• よしのつばさ
• Microsoft MVP for Azure
• Web系のお仕事をしてます。
アプリケーションにユーザ管理を実装したい!
ユーザ管理とは
• ユーザのIDとアクセスの管理
• ユーザを認証 or 認可する
– 認証 : ID + パスワードで本人確認する
• ID + パスワードがあっていれば正しい人だから何してもいいよ
– 認可 : リソースのアクセス権を特定の条件で与える
• このリソースへのアクセス権をあげるよ。でも何でもできるわけじゃない
よ
• AAD B2Cは、基本的に認可に基づく認証
– Open ID Connectを使用します
ユーザ管理に必要なこと
• フロント機能
– 認証・認可の仕組み
– ユーザがサインアップ・サインインするためのUI
• バックオフィス機能
– 管理者用の管理画面
• その他
– データベース
– etc
考えることがかなり多い!
楽にユーザ管理を実装したい!
なぜ楽に実装したいのかを考え
る
• センシティブな情報を扱う必要がある
– ユーザデータは、個人情報の塊
– 個人情報を持つ = 潜在的なリスク
– パスワード平文問題
• ユーザ情報を複数のサービスで連携したい
– Open ID Connect、OAuth2.0を自前で実装しますか?
• パフォーマンス命
– ユーザ管理の死 = サービスがピンチ
なぜ楽に実装したいのかを考え
る
• 定型的な割に作ることが多い
– 大量の入力項目
– データのバリデーション
– ユーザの重複チェック
– 大体似たようなサインアップ・サインイン画面
– ユーザが使う画面
– バックオフィスの画面
– Etc
• 大体どう作っても同じような画面に行き着くことが多い
• ユーザ管理を提供するサービスでどうにかなるのでは?
要件の例
フロントの要件
• Web・ネイティブアプリに組み込む
• 外部認証を使用したサインアップ・サイン
イン
• 関連サービスとのシングルサインオン
バックオフィスの要件
• ユーザ情報を管理するUIがある
• 管理ユーザに権限のロールがある
非機能要件
• データを安全に保持できる
• 高い可用性
• 外部からの攻撃に対する堅牢性
超大変じゃん。。。
Identity as a Service (IDaaS)
• サービスとしてのID管理
• ユーザのID管理をクラウドで行える
• ID管理のコストを激減可能
• ユーザ管理を爆速で実装可能
IDaaSの種類
• Azure AD B2C
– Azure
• Auth0
– 元MS系スタートアップ
• Firebase Authentication
– GCP
• Cognito
– AWS
本題
料金の話
料金体系(ユーザ登録料)
保存済みユーザ/月 金額
~ 50,000 名 無料
50,001 ~ 950,000 名 0.13
950,001 ~ 9,000,000 名 0.11
9,000,001 ~ 40,000,000 名 0.08759
それ以上 0.07056
料金体系(認証料)
認証/月 金額
~ 50,000 無料
50,001 ~ 950,000 名 0.32
950,000 ~ 9,000,000 名 0.24
9,000,001 ~ 40,000,000 名 0.16
それ以上 0.0.784
※MFAを使用すると、1認証あたり3.36
10万人/月の料金(ざっくり)
サービス名 料金
AAD B2C 12,500
Firebase 590,000
Cognito 495,000
Auth0 178,026
Auth0は、SLAが無いエディション
SLA有の場合は、要相談
AAD B2Cは、MFAを使用しない(使用した場合は、349,000程)
※セッションで出た45,000は、大幅な誤りです
AAD B2Cで何ができる?
AAD B2Cで何ができる(フロン
ト)
• ユーザ管理用UIをノンコーディングで提供
– カスタマイズも可能
• 認証・認可の仕組みを提供
– Open ID Connect準拠
• 豊富な外部ログインの提供
– 主要なSNS・アカウントサービスに対応
AAD B2Cで何ができる(バックオ
フィス)
• 高度なユーザ管理の提供
– サインインアクティビティの確認
– アカウントBAN機能など可能
– Azureポータルから管理
– Azure Graphを使用した管理
AAD B2Cで何ができる(非機能要件)
• 高い可用性
– SLA 99.9%
• 高度なセキュリティを提供
– DOS攻撃
– ブルートフォース
– 辞書攻撃などに対する軽減策を提供
考えることがめっちゃ減った!
デモ
カスタムUIについて
• Q. JavaScriptは使える?
– セキュリティの観点からjsは、ブロックされます
• Q. cssを外部からロードできる?
– cssは、特に制限なくロード可能です
• Q. カスタムUIでオリジナルをコピーしてもいい
の?
– 既存コンテンツのコピー・変更は、避ける必要があり
ます
– あくまで参考に留めてください
サポートブラウザ
• IE11、IE10、IE9、IE8
– IE9、IE8は、限定的サポート
• Microsoft Edge
• Google Chrome 42.0 ~
• Mozilla FireFox 38.0 ~
AAD B2Cの良いところ
• OIDC準拠
• GUIによる簡単設定
• アクセス管理が容易
• 多要素認証の実装が簡単
• 豊富な外部認証コネクト
使える外部認証
使える外部認証
• OIDC対応のサービスなら繋ぎこみ可
• 例
– LINE
– Yahoo ID連携
AAD B2Cの微妙なところ
• MS Graph APIが使用不可
– まだAzure Graph API
• メールのカスタマイズがほぼ出来ない
– 現在実装中とのこと
– 要件に合わない場合は、メール部分を自作
• MFAがSMSのみ
• ページのカスタマイズが辛い
まとめ
• AAD B2Cで会員機能を爆速で実装しよう
• 会員管理を作るコストを他に回そう
• メールなど要件の合う・合わないが結構あ
る
– 早めの要件のすり合わせが大事

JAZUG TOKYO NIGHT 2019-01 AADでユーザ管理しよう