コンテンツにスキップ
公式サイト →

認証とログイン

TODO(内部向け・リリース前に対応して削除)

Section titled “TODO(内部向け・リリース前に対応して削除)”

Keelson にデプロイされたアプリは、すべて認証が必要です。 アプリの URL を知っているだけではアクセスできず、ログインしたうえで、そのアプリへの権限を持つユーザーだけが利用できます。

このページでは、Keelson における認証の仕組みとログインの流れを説明します。

Keelson では、アプリの前段に認証プロキシが配置されています。 ユーザーのリクエストは必ずこのプロキシを経由し、認証と権限の確認が行われたうえでアプリに到達します。

この仕組みにより、アプリのコードに認証ロジックを書く必要はありません。 どの言語・フレームワークで作ったアプリでも、デプロイするだけで認証つきの状態になります。 AI ツールで生成したアプリをそのまま載せても、認証なしで外部に公開されることはありません。

Keelson では、次のアカウントでログインできます。

  • Google アカウント
  • Microsoft アカウント

ワークスペースのメンバーとして登録されているユーザーだけがログインできます。 ワークスペースに参加していないユーザーは、正しいアカウントを持っていてもアプリにアクセスできません。

メンバーの追加方法については、メンバーとアプリ権限 を参照してください。

  1. ユーザーがアプリの URL にアクセスします
  2. ログインしていない場合、ログイン画面に移動します
  3. Google または Microsoft アカウントで認証します
  4. ログイン後、元のアプリに戻ります
  5. そのアプリへの権限がある場合、アプリが表示されます
  6. 権限がない場合、アクセスが拒否されます

ログイン状態は一定期間保持されます。有効期間中は、同じワークスペース内の他のアプリにもログインなしでアクセスできます。

ログインできることと、アプリを使えることは同じではありません。

Keelson では、次の順序でアクセスが判断されます。

  1. ログインしているか — ユーザーが認証済みかどうか
  2. アプリへの権限があるか — そのユーザーが対象アプリのメンバーかどうか
  3. ネットワーク条件を満たしているか — IP 制御が設定されている場合、許可された IP アドレスからのアクセスかどうか

ログインに成功しても、対象アプリへの権限がなければ利用できません。

アプリから認証情報を利用する

Section titled “アプリから認証情報を利用する”

認証済みのリクエストには、認証プロキシがユーザー情報をヘッダーとして付与します。

アプリのコード内で X-Keelson-User-Id ヘッダーを読み取ることで、現在のログインユーザーを識別できます。

# Python (Flask / FastAPI など)
user_id = request.headers.get("X-Keelson-User-Id")
// Node.js (Express など)
const userId = req.headers["x-keelson-user-id"];

認証ヘッダーや Cookie は、プロキシがアプリ到達前に除去します。 アプリが受け取るのは Keelson が付与したヘッダーだけです。

認証は「誰がアクセスするか」を制御します。 IP 制御は「どのネットワークからアクセスするか」を制御します。

IP 制御を設定している場合、許可されていないネットワークからはログイン画面にも到達しません。 認証と IP 制御は独立した仕組みですが、組み合わせることでより安全に運用できます。

IP 制御について詳しくは IP制御 を参照してください。