Skip to content

ログインセッション管理に関する方針

Luma edited this page Nov 19, 2021 · 1 revision

ログイン状態に関するデバッグについてはログインセッション管理に関する開発TIPSも参照。

概要

  • アイデンティティ管理には Google Cloud Identity Platform (GCIP) を使用します

    • PROS: Sign in with OAuth ( vs Amazon Cognito )
    • PROS: Sign in with SAML ( vs Firebase Auth )
    • PROS: Sign in with Email, その他一通りの対応
    • PROS: Sign in as anonymous
    • GitHub は OAuth のみ実装している
  • GCIP のクライアントには Firebase Auth の SDK を使用します

  • また、次のような関連したライブラリを、アプリ側、もしくはインフラ側で使用しています

    • google-auth-library:
  • GCIP にはマルチテナント機能がありますが、使いません

    • WHY: この機能を使った状態では Firebase Admin SDK がいくつかの機能に対応していません (2021-11-18 現在)
  • キーの制限を設定してください

    • これをやらないままにしていると警告メールが来ます
    • https://console.cloud.google.com/apis/credentials
    • 上記から、アプリケーションの制限について、 HTTP リファラー(ウェブサイト) を選択します
    • ウェブサイトの制限について、開発用途であれば以下のようなものをセットしていきます。やむを得ない理由によりいくつかのポートが使えない開発者がいるかもしれないので多めに開けています。
      • *.violet-dev.com/*
      • localhost:3000/*
      • 127.0.0.1:3000/*
      • localhost:3001/*
      • 127.0.0.1:3001/*
      • localhost:8000/*
      • 127.0.0.1:8000/*
      • localhost:8001/*
      • 127.0.0.1:8001/*
      • localhost:8080/*
      • 127.0.0.1:8080/*
      • localhost:8081/*
      • 127.0.0.1:8081/*

ポリシー

  • セッション情報は http only cookie に保存します
  • フロントエンドでログイン後 Id Token を取得したら、API 経由で cookie に保存したあと、元のページにリダイレクトする、firebase.auth().signOut() する、もしくはその両方ですぐに破棄します