認証
サインイン、セッション、OAuth、OIDC/SSO、デバイスフローを設定します。
認証
ObjectOS は、Better Auth を基盤とする ObjectStack 認証プラグインを使用します。認証はプロジェクトローカルであり、各プロジェクトは独自のアイデンティティテーブルとセッションスコープを持ちます。
サポートされる機能
パッケージ化されたアプリケーションと有効化された設定に応じて、ObjectOS は以下をサポートできます。
- メール/パスワードによるサインイン
- セッション管理
- パスワードリセットとメール検証
- Google、GitHub、Microsoft、Apple などのソーシャル OAuth プロバイダー
- Okta、Entra ID、Keycloak、Ping などのエンタープライズ OIDC/SSO
- 二要素認証
- パスキー/WebAuthn
- マジックリンク
- CLI/ブラウザのデバイスフロー
必須のシークレット
次を設定します。
OS_AUTH_SECRET=replace-with-a-strong-random-secretObjectOS は、この値とプロジェクト環境 id から、安定したプロジェクトごとのシークレットを導出します。これにより以下が実現されます。
- セッションがコンテナの再起動後も維持される
- あるプロジェクトのトークンを別のプロジェクトで再利用できない
OS_AUTH_SECRETをローテーションするとセッションが無効化される
レガシーの AUTH_SECRET エイリアスを含む、認証関連の設定の完全な一覧については、Environment variables を参照してください。
セッションの分離
マルチプロジェクト構成のデプロイでは、Cookie はプロジェクトのホスト名にスコープされます。ObjectOS は、プロジェクトセッションに対して広範なルートドメイン Cookie を意図的に使用しません。これにより、セッションが顧客プロジェクト間で漏えいすることを防ぎます。
ソーシャルログイン
アプリケーションパッケージが認証設定をどのように公開するかに応じて、プロバイダーの認証情報を環境変数またはシステム設定を通じて設定します。
プロバイダーのコールバック URL はプロバイダーの種類によって異なります。ObjectStack は 2 つの異なるコールバックパスを公開しており、これらは互いに入れ替えできません。
| プロバイダーの種類 | コールバックパス |
|---|---|
| 組み込みソーシャル(Google、GitHub、Microsoft、Apple、…) | /api/v1/auth/callback/<provider> |
| 汎用 OIDC / OAuth2(Okta、Entra ID、Keycloak、Ping、…) | /api/v1/auth/oauth2/callback/<provider> |
例:
https://crm.example.com/api/v1/auth/callback/google
https://crm.example.com/api/v1/auth/callback/microsoft
https://crm.example.com/api/v1/auth/oauth2/callback/okta
https://crm.example.com/api/v1/auth/oauth2/callback/entraObjectOS でプロバイダーを有効化する前に、アイデンティティプロバイダーのアプリケーション登録で、対応するリダイレクト URI を設定してください。
エンタープライズ OIDC/SSO
OIDC プロバイダーは汎用 OAuth2 プロバイダーとして登録され、/api/v1/auth/oauth2/callback/<provider> パスを使用します。一般的な設定には次が必要です。
| フィールド | 説明 |
|---|---|
| Provider id | okta や entra などの安定した id(コールバック URL で使用) |
| Display name | ユーザーに表示されるボタンのラベル |
| Discovery URL | .well-known/openid-configuration エンドポイント |
| Client id | アイデンティティプロバイダーのアプリケーション client id |
| Client secret | 環境変数または暗号化された設定に保存されるシークレット |
| Scopes | 通常は openid email profile |
顧客向けのデプロイでは、手動で設定する authorization/token/userinfo エンドポイントよりも、OIDC ディスカバリ URL を優先してください。
プラットフォーム SSO
クラウド接続されたデプロイでは、ObjectOS はコントロールプレーンのログインをプラットフォーム SSO プロバイダーとして使用できます。すでにコントロールプレーンにサインインしているビルダーは、別のプロジェクトローカルアカウントを作成することなく、プロジェクトランタイムにプロビジョニングできます。
これには、コントロールプレーンと ObjectOS が同じ OS_AUTH_SECRET のベースシークレットを共有している必要があります。すべてのプロジェクトが完全に独立したログイン境界を持つことを顧客が望む場合にのみ、プラットフォーム SSO を無効化してください。
運用上のチェック
本番環境に移行する前に、以下を確認します。
- 期限切れトークンが
401を返すことを確認する - ログアウトでアクティブなセッションが取り消されることを確認する
- ポリシーで必要とされる場合、パスワードリセットが他のセッションを取り消すことを確認する
- コールバック URL が公開プロジェクトドメインと一致することを確認する
- 信頼されたオリジンに承認済みのドメインのみが含まれることを確認する
OS_AUTH_SECRETがソースコードではなくシークレットマネージャーに保存されていることを確認する
次のステップ
認証は、ユーザーが誰であるかを確立します。サインイン後に何にアクセスできるかを制御するには、Permissions を参照してください。ブラウザ以外のクライアントやマシン間アクセスについては、API access を参照してください。