omuronの備忘録

個人的な備忘録

Tech-on MeetUp Online#04「いまエンタープライズのエンジニアが押さえておきたい認証認可、IDaaS」 #TechOn東京 受講メモ

techplay.jp

「さて、今夜お話しいただくのは認証・認可・IDaaSです。」
という内容で、実装は自力ですべきでないけど知っておきたい認証認可と IDaaS の話です。

「IDaaS を利用すべき理由とエンジニアが押さえておくべきポイント」

講師:日本電気株式会社・釜山 公徳さん

ノンテクニカルサイド

  • エンジニアもノンテクニカルサイドも抑える必要あり
  • NIST, ISO, OpenID Foundation, FIDO Alliance は抑える
    • NIST SP800-63, ISO/IEC 24760-1
  • 身元確認(自己申告、身分証)、当人確認(ID/Password, 生体認証)
    • 本人確認(身元+当人)
  • IDaaS 市場
  • 古くは SAML 認証
  • OpenID Foundation の参加で規格
    • OAuth2.0 : ID/Pass を使わなくてアプリ連携ができる
    • OpenID Coonect : OAuth2.0 を使ったユーザ認証、1つのプロトコルで多くの IdP とやり取り可能(利便性がある)
    • FAPI : Financial-grade API, 金融向けに利便性を高めた規格の策定中
    • CIBA : Client Initiated Backchannel Authentication, デカップルド・フロー
  • FIDO : モバイル生体認証、FIDO 仕様準拠がデファクト

テクニカルサイド

  • 認証: Authentication(AuthN)
    • リソースにアクセスする個人の身元確認
    • OpenID Coonect, SAML
  • 認可: Authorization(AuthZ)
    • 認証後アクセス権のレベルを確認するプロセス
    • OAuth
  • ID/Password が氾濫すると情報漏えいに繋がる
  • OneLogin ができること
    • アカウント管理
    • セキュリティ強化
      • アクセスコントロール
      • 多要素認証
        • 最も効果が高い
      • ログレポート
        • レポートを見るとASIS分析ができる
        • 課題解決できる、見ないと課題解決できない
  • Azure AD の認証方法
  • まとめ
    • ID 関連はビジネスサイドとテクニカルサイドの両サイド抑える
    • 複雑なのでガイドラインを活用

「Auth0とクラウドサービスを組み合わせて作るメディアコマースの開発事例」

講師:株式会社Serverless Operations 堀家 隆宏さん

IDaaS の採用の意味とメリット

  • 一昔前: DB にユーザー情報を保存して CRUD 操作
    • セキュリティ対策コスト, ユーザー管理コスト
    • 個人情報を扱う標準規格への準拠
  • これらを解決する昨今の IDaaS
    • セキュリティ、利便性、運用コスト
    • 一元管理して SAML で各種社内利用サービスへログイン
    • アプリ開発も IDaaS、OIDC/OAuth2.0 プロトコルが容易になる

Auth0

  • 認証認可の SaaS プラットフォーム
  • ソーシャルログインの導入が一瞬、GUI で設定するだけ
    • 自力実装すると数ヶ月かかる
  • Automatic Migration 機能により無停止で Auth0 移行可能
    • 再パスワード入力不要
  • CI/CD で本番テナント設定可能
    • YAML で設定可能なので出力してインポート

EC TOKION における実例

  • AWSWordPress
  • ログイン機能は WordPress
    • Auth0 と直接認証するのは WordPress のみ
    • Auth0 の WordPress プラグイン利用
      • 高機能でカスタマイズできるので本番で使える
    • Shopify の Multipass 機能を使って Shopify に引き継ぐ
    • WordPress と S3 ホスティングのログイン状態のやり取り
      • SSO の機能を使って実装
    • ログアウトしたら全サービスでログアウト状態にするのが大変
  • EC2 on WordPress を使っているのでメンテコストがかかる

AppSync での実装例

  • AppSync
    • GraphQL のバックエンドマネージドサービス
  • Shifter Headless
  • AppSync + Auth0
    • AppSync が OIDC に対応しているので Auth0 が簡単に使える
    • AppSync を BFF としてフロントからの認証を集約
      • ログイン状態の引き継ぎが不要
  • WordPress を Shifter にしているのでメンテコスト削減
    • AppSync の学習コストはいる

まとめ

  • Auth0 のような IDaaS を導入しないメリットはないので使う
  • TOKIO のような複数サービスだと状態管理がいる
  • AppSync のような BFF も検討

ガヤタイム

  • AWS のログはちゃんと見ておこう
    • 退職者がでたらすぐアクセス権消す
    • そもそも持っていけるものを持っていくことが悪いと思ってない場合もある
      • 文化や教育次第なところ
  • ログは開発者が作るもの
    • 100%信用できるか?ミスリードしないように。
    • Java のエラーが出た
      • 追っかけるとメモリが間欠故障してた...とか
  • 監査ログ10年残せ
    • 本当にいるのか?プロアクティブに動けるのか?
    • 法律のためでコストばかりかかる
  • ログが整形されているか?
    • hadoop で解析しようとしたけど整形されてなくて無理だった
    • awk で手動で整形...
      • ある程度整形したらエクセルに貼り付けてピボットテーブル
    • LogFormat は大事

所感

ovice.in というツール利用してのプレゼンでした。 バーチャルセミナー会場みたいな感じのツールが最近はやってますね。

メモを取りきれませんでしたが、金融のセキュリティの話を聞けたのが新鮮でした。 普段とは違うセキュリティ観点の話なので、やはりお金周りがメインの仕事だともう一つ大変なんですね。

Auth0 の実装が楽なのはそのとおりに感じてます。 自力実装に比べると本当に楽なんだけど、理解して使い始めるスタート地点のハードルはそこそこ高いと感じてます。 ゆえに理解を深めるために引き続き勉強がまだまだ続きそうです。