メインコンテンツまでスキップ

Management API によるアカウント設定

統合

Logto は、ユーザーアカウントを管理するためのさまざまな Management API を提供しています。これらの API を使用して、エンドユーザー向けのセルフサービスアカウント設定ページを構築できます。

アーキテクチャ

  1. ユーザー: アカウント設定にアクセスし管理する必要がある認証済みエンドユーザー。
  2. クライアントアプリケーション: ユーザーにアカウント設定ページを提供するクライアントアプリケーション。
  3. サーバーサイドアプリケーション: クライアントにアカウント設定 API を提供するサーバーサイドアプリケーション。Logto Management API と連携します。
  4. Logto: 認証 (Authentication) と認可 (Authorization) サービスとしての Logto。ユーザーアカウントを管理するための Management API を提供します。

シーケンス図

  1. ユーザーがクライアントアプリケーションにアクセスします。
  2. クライアントアプリケーションが Logto に認証リクエストを送り、ユーザーを Logto のサインインページにリダイレクトします。
  3. ユーザーが Logto にサインインします。
  4. 認証されたユーザーがクライアントアプリケーションに認可コードと共にリダイレクトされます。
  5. クライアントアプリケーションが Logto からセルフホスト型アカウント設定 API アクセスのためのアクセス トークンを要求します。
  6. Logto がクライアントアプリケーションにアクセス トークンを付与します。
  7. クライアントアプリケーションがユーザーアクセス トークンを使用してサーバーサイドアプリケーションにアカウント設定リクエストを送信します。
  8. サーバーサイドアプリケーションがユーザーアクセス トークンからリクエスト者のアイデンティティと権限を確認し、Logto から Management API アクセス トークンを要求します。
  9. Logto がサーバーサイドアプリケーションに Management API アクセス トークンを付与します。
  10. サーバーサイドアプリケーションが Management API アクセス トークンを使用して Logto からユーザーデータを要求します。
  11. Logto がサーバーのアイデンティティと Management API 権限を確認し、ユーザーデータを返します。
  12. サーバーサイドアプリケーションがリクエスト者の権限に基づいてユーザーデータを処理し、クライアントアプリケーションにユーザーアカウントの詳細を返します。

Management API をサーバーサイドアプリケーションに統合する

サーバーサイドアプリケーションと Management API を統合する方法については、Management API セクションを確認してください。

ユーザー管理 API

ユーザーデータスキーマ

Logto のユーザースキーマについて詳しく知るには、ユーザーデータとカスタムデータ セクションを確認してください。

ユーザープロファイルと識別子管理 API

ユーザープロファイルと識別子は、ユーザー管理において重要です。以下の API を使用して、ユーザープロファイルと識別子を管理できます。

methodpathdescription
GET/api/users/{userId}ユーザー ID でユーザー詳細を取得します。
PATCH/api/users/{userId}ユーザー詳細を更新します。
PATCH/api/users/{userId}/profileユーザー ID でユーザープロファイルフィールドを更新します。
GET/api/users/{userId}/custom-dataユーザー ID でユーザーのカスタムデータを取得します。
PATCH/api/users/{userId}/custom-dataユーザー ID でユーザーのカスタムデータを更新します。
PATCH/api/users/{userId}/is-suspendedユーザー ID でユーザーの停止状態を更新します。

メールと電話番号の確認

Logto システムでは、メールアドレスと電話番号の両方がユーザー識別子として機能するため、その確認が重要です。これをサポートするために、提供されたメールまたは電話番号を確認するための一連の確認コード API を提供しています。

注記:

新しいメールまたは電話番号でユーザープロファイルを更新する前に、メールまたは電話番号を確認してください。

methodpathdescription
POST/api/verifications/verification-codeメールまたは電話番号の確認コードを送信します。
POST/api/verifications/verification-code/verify確認コードでメールまたは電話番号を確認します。

ユーザーパスワード管理

methodpathdescription
POST/api/users/{userId}/password/verifyユーザー ID で現在のユーザーパスワードを確認します。
PATCH/api/users/{userId}/passwordユーザー ID でユーザーパスワードを更新します。
GET/api/users/{userId}/has-passwordユーザー ID でユーザーがパスワードを持っているか確認します。
注記:

ユーザーのパスワードを更新する前に、現在のパスワードを確認してください。

ユーザーソーシャルアイデンティティ管理

methodpathdescription
GET/api/users/{userId}ユーザー ID でユーザー詳細を取得します。ソーシャルアイデンティティは identities フィールドにあります。
POST/api/users/{userId}/identities認証済みのソーシャルアイデンティティをユーザー ID でリンクします。
DELETE/api/users/{userId}/identitiesソーシャルアイデンティティをユーザー ID からリンク解除します。
PUT/api/users/{userId}/identitiesユーザー ID にリンクされたソーシャルアイデンティティを直接更新します。
POST/api/connectors/{connectorId}/authorization-uriソーシャルアイデンティティプロバイダーの認可 URI を取得します。この URI を使用して新しいソーシャルアイデンティティ接続を開始します。
  1. ユーザーがクライアントアプリケーションにアクセスし、ソーシャルアイデンティティをバインドするリクエストを行います。
  2. クライアントアプリケーションがサーバーにソーシャルアイデンティティをバインドするリクエストを送信します。
  3. サーバーが Logto にソーシャルアイデンティティプロバイダーの認可 URI を取得するリクエストを送信します。リクエストには独自の state パラメータと redirect_uri を提供する必要があります。ソーシャルアイデンティティプロバイダーに redirect_uri を登録してください。
  4. Logto がサーバーに認可 URI を返します。
  5. サーバーがクライアントアプリケーションに認可 URI を返します。
  6. クライアントアプリケーションがユーザーを IdP 認可 URI にリダイレクトします。
  7. ユーザーが IdP にサインインします。
  8. IdP が redirect_uri を使用してユーザーをクライアントアプリケーションに認可コードと共にリダイレクトします。
  9. クライアントアプリケーションが state を検証し、IdP 認可レスポンスをサーバーに転送します。
  10. サーバーが Logto にソーシャルアイデンティティをユーザーにリンクするリクエストを送信します。
  11. Logto が認可コードを使用して IdP からユーザー情報を取得します。
  12. IdP がユーザー情報を Logto に返し、Logto がソーシャルアイデンティティをユーザーにリンクします。
注記:

ユーザーに新しいソーシャルアイデンティティをリンクする際に考慮すべき制限があります:

  • Management API にはセッションコンテキストがないため、ソーシャル認証状態を安全に維持するためにアクティブなセッションを必要とするソーシャルコネクターは Management API を介してリンクできません。サポートされていないコネクターには、apple、標準 OIDC、および標準 OAuth 2.0 コネクターが含まれます。
  • 同じ理由で、Logto は認可レスポンスの state パラメータを検証できません。クライアントアプリに state パラメータを保存し、認可レスポンスを受信したときにそれを検証してください。
  • ソーシャルアイデンティティプロバイダーに redirect_uri を事前に登録する必要があります。そうしないと、ソーシャル IdP はユーザーをクライアントアプリにリダイレクトしません。ソーシャル IdP は、ユーザーサインイン用と独自のプロファイルバインディングページ用の複数のコールバック redirect_uri を受け入れる必要があります。

ユーザーエンタープライズアイデンティティ管理

methodpathdescription
GET/api/users/{userId}?includeSsoIdentities=trueユーザー ID でユーザー詳細を取得します。エンタープライズアイデンティティは ssoIdentities フィールドにあります。ユーザー詳細 API に includeSsoIdentities=true クエリパラメータを追加してそれらを含めます。

現在、Management API はユーザーにエンタープライズアイデンティティをリンクまたはリンク解除することをサポートしていません。ユーザーにリンクされたエンタープライズアイデンティティを表示することのみが可能です。

パーソナルアクセストークン

methodpathdescription
GET/api/users/{userId}/personal-access-tokensユーザーのすべてのパーソナルアクセストークンを取得します。
POST/api/users/{userId}/personal-access-tokensユーザーの新しいパーソナルアクセストークンを追加します。
DELETE/api/users/{userId}/personal-access-tokens/{name}名前でユーザーのトークンを削除します。
PATCH/api/users/{userId\s}/personal-access-tokens/{name}名前でユーザーのトークンを更新します。

パーソナルアクセストークンは、ユーザーが資格情報やインタラクティブなサインインを使用せずに アクセス トークン を付与するための安全な方法を提供します。パーソナルアクセストークンの使用について詳しくは、パーソナルアクセストークンの使用 を参照してください。

ユーザー MFA 設定管理

methodpathdescription
GET/api/users/{userId}/mfa-verificationsユーザー ID でユーザーの MFA 設定を取得します。
POST/api/users/{userId}/mfa-verificationsユーザー ID でユーザーの MFA 確認を設定します。
DELETE/api/users/{userId}/mfa-verifications/{verificationId}ID でユーザーの MFA 確認を削除します。

ユーザーアカウント削除

methodpathdescription
DELETE/api/users/{userId}ユーザー ID でユーザーを削除します。

ユーザーセッション管理

methodpathdescription
GET/api/users/{userId}/sessionsユーザー ID でユーザーセッションを取得します。
GET/api/users/{userId}/sessions/{sessionId}セッション ID でユーザーセッションを取得します。
DELETE/api/users/{userId}/sessions/{sessionId}セッション ID でユーザーセッションを削除します。

ユーザー認可アプリ (グラント) の管理

methodpathdescription
GET/api/users/{userId}/grantsユーザーのアクティブなアプリグラントを一覧表示します。
DELETE/api/users/{userId}/grants/{grantId}ID で特定のアプリグラントを取り消します。

グラント一覧表示のためのオプションのクエリパラメータ:

  • appType=firstParty: ファーストパーティアプリグラントのみを返します。
  • appType=thirdParty: サードパーティアプリグラントのみを返します。
  • appType を省略: すべてのアクティブなグラントを返します。

グラントが取り消されると、そのグラントに対して以前に発行された不透明トークンとリフレッシュ トークンは無効になります。