認証とログイン
TODO(内部向け・リリース前に対応して削除)
Section titled “TODO(内部向け・リリース前に対応して削除)”Keelson にデプロイされたアプリは、すべて認証が必要です。 アプリの URL を知っているだけではアクセスできず、ログインしたうえで、そのアプリへの権限を持つユーザーだけが利用できます。
このページでは、Keelson における認証の仕組みとログインの流れを説明します。
認証プロキシによる保護
Section titled “認証プロキシによる保護”Keelson では、アプリの前段に認証プロキシが配置されています。 ユーザーのリクエストは必ずこのプロキシを経由し、認証と権限の確認が行われたうえでアプリに到達します。
この仕組みにより、アプリのコードに認証ロジックを書く必要はありません。 どの言語・フレームワークで作ったアプリでも、デプロイするだけで認証つきの状態になります。 AI ツールで生成したアプリをそのまま載せても、認証なしで外部に公開されることはありません。
ログイン方式
Section titled “ログイン方式”Keelson では、次のアカウントでログインできます。
- Google アカウント
- Microsoft アカウント
ワークスペースのメンバーとして登録されているユーザーだけがログインできます。 ワークスペースに参加していないユーザーは、正しいアカウントを持っていてもアプリにアクセスできません。
メンバーの追加方法については、メンバーとアプリ権限 を参照してください。
ログインの流れ
Section titled “ログインの流れ”- ユーザーがアプリの URL にアクセスします
- ログインしていない場合、ログイン画面に移動します
- Google または Microsoft アカウントで認証します
- ログイン後、元のアプリに戻ります
- そのアプリへの権限がある場合、アプリが表示されます
- 権限がない場合、アクセスが拒否されます
ログイン状態は一定期間保持されます。有効期間中は、同じワークスペース内の他のアプリにもログインなしでアクセスできます。
ログインと権限の違い
Section titled “ログインと権限の違い”ログインできることと、アプリを使えることは同じではありません。
Keelson では、次の順序でアクセスが判断されます。
- ログインしているか — ユーザーが認証済みかどうか
- アプリへの権限があるか — そのユーザーが対象アプリのメンバーかどうか
- ネットワーク条件を満たしているか — 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 制御との違い
Section titled “IP 制御との違い”認証は「誰がアクセスするか」を制御します。 IP 制御は「どのネットワークからアクセスするか」を制御します。
IP 制御を設定している場合、許可されていないネットワークからはログイン画面にも到達しません。 認証と IP 制御は独立した仕組みですが、組み合わせることでより安全に運用できます。
IP 制御について詳しくは IP制御 を参照してください。
- メンバーとアプリ権限 — メンバーの管理とアプリごとの権限設定
- IP制御 — IP アドレスによるアクセス制限
- 公開URL — デプロイ後のアプリ URL
- カスタムドメイン — 独自ドメインの設定