アプリケーションデータ構造
はじめに
Logto における アプリケーション とは、Logto プラットフォームに登録され、ユーザー情報へのアクセスやユーザーの代理での操作を行う権限が付与された特定のソフトウェアプログラムまたはサービスを指します。アプリケーションは、Logto API へのリクエスト元を識別し、ユーザーがそれらのアプリケーションへアクセスする際の認証 (Authentication) および認可 (Authorization) プロセスを管理するために使用されます。
Logto のサインイン体験におけるアプリケーションの利用により、ユーザーは一元的な場所から認可されたアプリケーションへ簡単にアクセス・管理でき、統一された安全な認証 (Authentication) プロセスが提供されます。これにより、ユーザー体験が効率化され、認可された人物のみが機密情報へアクセスしたり、組織の代理で操作を行ったりできるようになります。
また、Logto の監査ログでもアプリケーションが使用され、ユーザーの活動を追跡し、潜在的なセキュリティ脅威や侵害を特定します。特定の操作を特定のアプリケーションと関連付けることで、Logto はデータのアクセスや利用状況について詳細なインサイトを提供し、組織がセキュリティやコンプライアンス要件をより適切に管理できるようにします。 アプリケーションを Logto と統合したい場合は、 Logto との統合 をご覧ください。
プロパティ
アプリケーション ID
アプリケーション ID は、Logto 内でアプリケーションを識別するための一意の自動生成キーであり、OAuth 2.0 では client id として参照されます。
アプリケーションタイプ
アプリケーション は、次のいずれかのアプリケーションタイプとなります:
- ネイティブアプリ:ネイティブ環境で動作するアプリ。例:iOS アプリ、Android アプリ。
- シングルページアプリ (SPA):Web ブラウザ上で動作し、サーバーから新しいデータを取得してページ全体を再読み込みせずに更新するアプリ。例:React DOM アプリ、Vue アプリ。
- 従来型 Web アプリ:Web サーバーのみでページをレンダリング・更新するアプリ。例:JSP、PHP。
- マシン間通信 (M2M) アプリ:ユーザー操作なしでサービス間通信を直接行うマシン環境で動作するアプリケーション。
アプリケーションシークレット
アプリケーションシークレット は、認証 (Authentication) システム内でアプリケーションを認証 (Authentication) するためのキーであり、特にプライベートクライアント(従来型 Web および M2M アプリ)におけるプライベートなセキュリティバリアとして機能します。
シングルページアプリ (SPA) およびネイティブアプリにはアプリシークレットは提供されません。SPA およびネイティブアプリは「パブリッククライアント」であり、シークレットを保持できません(ブラウザコードやアプリバンドルは検査可能なため)。アプリシークレットの代わりに、Logto は PKCE、厳格なリダイレクト URI / CORS 検証、短命なアクセス トークン、リフレッシュ トークンのローテーションで保護します。
アプリケーション名
アプリケーション名 は、アプリケーションの人間が読める名称であり、管理コンソールに表示されます。
アプリケーション名 は Logto でアプリケーションを管理する上で重要な要素であり、管理者がプラットフォーム内で個々のアプリケーションの活動を簡単に識別・追跡できるようにします。
アプリケーション名 は管理コンソールにアクセスできるすべてのユーザーに表示されるため、慎重に選択することが重要です。アプリケーションの目的や機能を正確に反映し、分かりやすく認識しやすい名称にしてください。
説明
アプリケーションの簡単な説明が管理コンソールのアプリケーション詳細ページに表示されます。説明は、アプリケーションの目的や機能、その他関連情報など、管理者に追加情報を提供することを意図しています。
リダイレクト URI
リダイレクト URI は、アプリケーションに事前設定された有効なリダイレクト URI のリストです。ユーザーが Logto にサインインしアプリケーションへアクセスしようとすると、アプリケーション設定で指定された許可された URI のいずれかにリダイレクトされます。
許可された URI リストは、認証 (Authentication) プロセス中にアプリケーションから Logto へ送信される認可 (Authorization) リクエストに含まれるリダイレクト URI を検証するために使用されます。認可 (Authorization) リクエストで指定されたリダイレクト URI がアプリケーション設定の許可リストのいずれかと一致する場合、認証 (Authentication) 成功後にその URI へリダイレクトされます。リダイレクト URI が許可リストにない場合、ユーザーはリダイレクトされず、認証 (Authentication) プロセスは失敗します。
すべての有効なリダイレクト URI を Logto のアプリケーションの許可リストに追加しておくことが重要です。これにより、認証 (Authentication) 後にユーザーが正常にアプリケーションへアクセスできるようになります。
詳細は Redirection endpoint をご覧ください。
OIDC の認可コードフローにおけるリダイレクト URI の理解
サインアウト後リダイレクト URI
サインアウト後リダイレクト URI は、Logto からサインアウトした後にユーザーをリダイレクトするためにアプリケーションに事前設定された有効な URI のリストです。
Allowed Post Sign-out Redirect URIs の利用は、OIDC の RP-Initiated (Relying Party Initiated) Logout 仕様の一部です。この仕様は、アプリケーションがユーザーのログアウトリクエストを開始し、サインアウト後にユーザーを事前設定されたエンドポイントへリダイレクトする標準化された方法を提供します。
ユーザーが Logto からサインアウトすると、そのセッションは終了し、アプリケーション設定で指定された許可された URI のいずれかにリダイレクトされます。これにより、サインアウト後にユーザーが認可された有効なエンドポイントのみに誘導され、未知または未検証のエンドポイントへのリダイレクトによる不正アクセスやセキュリティリスクを防ぎます。
詳細は RP-initiated logout をご覧ください。
CORS 許可オリジン
CORS (クロスオリジンリソースシェアリング) 許可オリジン は、アプリケーションが Logto サービスへリクエストを送信できる許可されたオリジンのリストです。許可リストに含まれていないオリジンからは Logto サービスへのリクエストはできません。
CORS 許可オリジンリストは、未認可ドメインからの Logto サービスへのアクセスを制限し、クロスサイトリクエストフォージェリ (CSRF) 攻撃を防ぐのに役立ちます。Logto でアプリケーションごとに許可オリジンを指定することで、認可されたドメインのみがサービスへリクエストできるようにします。
許可オリジンリストには、アプリケーションが提供されるオリジンを含めてください。これにより、アプリケーションからのリクエストは許可され、未認可オリジンからのリクエストはブロックされます。
OpenID プロバイダー構成エンドポイント
OpenID Connect Discovery のエンドポイントです。
認可 (Authorization) エンドポイント
認可 (Authorization) エンドポイント は OIDC 用語であり、ユーザーの認証 (Authentication) プロセスを開始するために使用される必須エンドポイントです。ユーザーが Logto プラットフォームに登録された保護されたリソースやアプリケーションへアクセスしようとすると、認可 (Authorization) エンドポイント へリダイレクトされ、アイデンティティの認証 (Authentication) およびリソースへのアクセス権限の取得が行われます。
詳細は Authorization Endpoint をご覧ください。
トークンエンドポイント
トークンエンドポイント は OIDC 用語であり、OIDC クライアントが OIDC プロバイダーからアクセス トークン、ID トークン、リフレッシュ トークンを取得するための Web API エンドポイントです。
OIDC クライアントがアクセス トークンや ID トークンを取得する必要がある場合、認可 (Authorization) グラント(通常は認可コードまたはリフレッシュ トークン)とともにトークンエンドポイントへリクエストを送信します。トークンエンドポイントは認可 (Authorization) グラントを検証し、有効であればクライアントにアクセス トークンや ID トークンを発行します。
詳細は Token Endpoint をご覧ください。
Userinfo エンドポイント
OpenID Connect の UserInfo Endpoint です。
常にリフレッシュ トークンを発行
利用可能:従来型 Web、SPA
有効にすると、認証 (Authentication) リクエストで prompt=consent やスコープに offline_access が指定されていなくても、Logto は常にリフレッシュ トークンを発行します。
ただし、この運用は必要な場合(通常はリフレッシュ トークンを必要とする一部のサードパーティ OAuth 統合)を除き推奨されません。OpenID Connect との互換性がなく、問題が発生する可能性があります。
リフレッシュ トークンのローテーション
デフォルト:true
有効にすると、Logto は次の条件下でトークンリクエスト時に新しいリフレッシュ トークンを発行します:
- リフレッシュ トークンがローテーションされ(新しいものが発行されて有効期限が延長された)状態で 1 年経過した場合;または
- リフレッシュ トークンの有効期限が近い場合(元の有効期間 (TTL) の 70% 以上経過した場合);または
- クライアントがパブリッククライアント(例:ネイティブアプリやシングルページアプリ (SPA))の場合。
パブリッククライアントの場合、この機能が有効だと、リフレッシュ トークンを使って新しいアクセス トークンを取得するたびに常に新しいリフレッシュ トークンが発行されます。 パブリッククライアントでもこの機能を無効にできますが、セキュリティ上の理由から有効のままにすることを強く推奨します。
リフレッシュ トークンのローテーションの理解
リフレッシュ トークンの有効期間 (TTL) (日数)
利用可能:SPA 以外;デフォルト:14 日
リフレッシュ トークンが新しいアクセス トークンをリクエストできる期間(有効期限)です。トークンリクエストにより、リフレッシュ トークンの TTL はこの値まで延長されます。
通常は、より低い値が推奨されます。
注意:SPA(シングルページアプリ)ではセキュリティ上の理由から TTL の延長はできません。つまり、Logto はトークンリクエストによる TTL 延長を行いません。ユーザー体験を向上させるため、「リフレッシュ トークンのローテーション」機能を有効にし、必要に応じて新しいリフレッシュ トークンを発行できるようにしてください。
バックチャネルログアウト URI
OpenID Connect のバックチャネルログアウトエンドポイントです。詳細は フェデレーテッドサインアウト:バックチャネルログアウト をご覧ください。
カスタムデータ
事前定義されたアプリケーションプロパティに含まれない追加のカスタムアプリケーション情報です。ユーザーは、ビジネス固有の設定や構成など、特定のニーズに応じて独自のカスタムデータフィールドを定義できます。