認証とログイン
Keelson では、社内アプリを利用できる人を、ワークスペースのメンバーのうち閲覧権限を持つ人に限定できます。利用者はアプリの URL を開き、Keelson のログイン画面でログインします。URL を知っているだけではアプリを開けません。
ログイン画面やログイン状態の管理は Keelson が用意するため、アプリ側で作る必要はありません。利用できる人の設定はチームにアプリを共有するで説明しています。
ログインの方法
Section titled “ログインの方法”アプリの利用者は、次のいずれかでログインします。
- Google アカウント
- Microsoft アカウント
- メールアドレス(ログイン用の使い捨てコードをメールで受け取る)
ワークスペースに登録されているメールアドレスでログインする必要があります。複数のアカウントを使い分けている場合は、登録されたアカウントを選んでください。
ワークスペースを作成する(コンソールにサインアップする)ときは、Google または Microsoft アカウントが必要です。
ログインの流れ
Section titled “ログインの流れ”- アプリの URL を開きます。
- ログインしていなければ、Keelson のログイン画面が表示されます。
- Google / Microsoft アカウント、またはメールで受け取ったコードでログインします。
- 元のアプリに戻り、閲覧権限があればアプリが表示されます。
ログイン状態が保持されている間は、同じワークスペースの別のアプリも、ログインし直さずに開けます。それぞれのアプリの閲覧権限は必要です。
開けない場合はアクセスできないときの確認を参照してください。
ログインした人の情報をアプリで使う
Section titled “ログインした人の情報をアプリで使う”アプリでは、ログインした人の名前を表示したり、その人のデータに絞って表示したりできます。AI エージェントには「Keelson が渡す利用者情報を使って、本人のデータだけを表示できるようにして」と依頼できます。
Keelson は、サーバー側のコードに利用者情報を渡します。その情報を使って、どのデータを表示・更新できるかを判断する処理はアプリ側で実装します。詳しくはログイン中のユーザー情報を使うを参照してください。
利用者情報の受け渡し(HTTP ヘッダー)
認証を通ったリクエストには、Keelson が利用者情報を HTTP ヘッダーという付加情報として付けます。主なヘッダーは次のとおりです。
| ヘッダー | 内容 |
|---|---|
X-Keelson-User-Id | 利用者の ID |
X-Keelson-User-Email | メールアドレス |
X-Keelson-User-Name | 名前 |
X-Keelson-User-App-Perms | そのアプリの権限 |
クライアントが送った同名の利用者情報ヘッダーはエッジで除去され、認証ゲートウェイがプラットフォームの DB から取得した値を付けます。ブラウザから送られた Authorization と Cookie も除去されます。利用者の確認には、Keelson が付けた情報を使います。
ブラウザからアプリを開くと、Keelson がログイン状態や権限を確認します。アプリの手前でこの確認を行う仕組みをプロキシと呼びます。
ブラウザ │ ▼Keelson ① ログインしているか ② ワークスペースの有効なメンバーか ③ このアプリの閲覧権限があるか ④ IP 制御の条件を満たすか │ ▼アプリ すべての条件を満たしたリクエストが届く- ①を満たさない場合は、ログイン画面へ移動します。
- ②③を満たさない場合は、「アクセスできません」の画面になります。
- ④を満たさない場合は、アクセスが拒否されたことを示す画面(HTTP 403)になり、接続元の IP アドレスが表示されます。
IP 制御は、接続元のネットワークでアクセスを制限する設定です。静的サイト・SPA・ハイブリッドアプリの静的ファイルには、IP 制御が適用されません。 ログイン・メンバー・閲覧権限の確認は行われます。詳しくはIP 制御を参照してください。
ログインなしで呼ばれる経路
Section titled “ログインなしで呼ばれる経路”外部サービスからの通知(Webhook)や API 呼び出しでは、ブラウザでログインする代わりに、アプリトークンや送信元の署名で呼び出し元を確認します。
AI エージェントには、連携したいサービスと受け取りたい通知・データを伝えて、設定と実装を依頼できます。ログインなしで受け付けるパスとメソッドは、keelson.yaml の auth.endpoints に設定します。詳しくは外部システムとの連携を参照してください。