Management API によるアカウント設定
統合
Logto は、ユーザーアカウントを管理するためのさまざまな Management API を提供しています。これらの API を使用して、エンドユーザー向けのセルフサービスアカウント設定ページを構築できます。
アーキテクチャ
- User: アカウント設定にアクセスし管理する必要がある認証済みのエンドユーザー。
- Client application: ユーザーにアカウント設定ページを提供するクライアントアプリケーション。
- Server-side application: クライアントにアカウント設定 API を提供するサーバーサイドアプリケーション。Logto Management API と連携します。
- Logto: 認証 (Authentication) と認可 (Authorization) サービスとしての Logto。ユーザーアカウントを管理するための Management API を提供します。
シーケンス図
- ユーザーがクライアントアプリケーションにアクセスします。
- クライアントアプリケーションは Logto に認証リクエストを送り、ユーザーを Logto のサインインページにリダイレクトします。
- ユーザーが Logto にサインインします。
- 認証されたユーザーは、認可トークンと共にクライアントアプリケーションにリダイレクトされます。
- クライアントアプリケーションは、セルフホストされたアカウント設定 API アクセスのために Logto からアクセス トークンを要求します。
- Logto はクライアントアプリケーションにアクセス トークンを付与します。
- クライアントアプリケーションは、ユーザーアクセス トークンを使用してサーバーサイドアプリケーションにアカウント設定リクエストを送信します。
- サーバーサイドアプリケーションは、ユーザーアクセス トークンからリクエスターのアイデンティティと権限を確認します。その後、Logto から Management API アクセス トークンを要求します。
- Logto はサーバーサイドアプリケーションに Management API アクセス トークンを付与します。
- サーバーサイドアプリケーションは、Management API アクセス トークンを使用して Logto からユーザーデータを要求します。
- Logto はサーバーのアイデンティティと Management API 権限を確認し、ユーザーデータを返します。
- サーバーサイドアプリケーションはリクエスターの権限に基づいてユーザーデータを処理し、ユーザーアカウントの詳細をクライアントアプリケーションに返します。
Management API をサーバーサイドアプリケーションに統合する
Management API をサーバーサイドアプリケーションと統合する方法については、Management API セクションを確認してください。
ユーザー管理 API
ユーザーデータスキーマ
Logto のユーザースキーマについて詳しく知るには、ユーザーデータとカスタムデータ セクションを確認してください。
ユーザープロファイルと識別子管理 API
ユーザーのプロファイルと識別子は、ユーザー管理において重要です。以下の API を使用して、ユーザープロファイルと識別子を管理できます。
method | path | description |
---|---|---|
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 を提供しています。
新しいメールまたは電話番号でユーザープロファイルを更新する前に、メールまたは電話番号を認証してください。
method | path | description |
---|---|---|
POST | /api/verifications/verification-code | メールまたは電話番号の認証コードを送信します。 |
POST | /api/verifications/verification-code/verify | 認証コードでメールまたは電話番号を認証します。 |
ユーザーパスワード管理
method | path | description |
---|---|---|
POST | /api/users/{userId}/password/verify | ユーザー ID で現在のユーザーパスワードを確認します。 |
PATCH | /api/users/{userId}/password | ユーザー ID でユーザーパスワードを更新します。 |
GET | /api/users/{userId}/has-password | ユーザー ID でユーザーがパスワードを持っているか確認します。 |
ユーザーのパスワードを更新する前に、現在のパスワードを確認してください。
ユーザーソーシャルアイデンティティ管理
method | path | description |
---|---|---|
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 を使用して新しいソーシャルアイデンティティ接続を開始します。 |
- ユーザーがクライアントアプリケーションにアクセスし、ソーシャルアイデンティティのバインドを要求します。
- クライアントアプリケーションは、ソーシャルアイデンティティのバインドをサーバーに要求します。
- サーバーは、ソーシャルアイデンティティプロバイダーの認可 URI を取得するために Logto にリクエストを送信します。このリクエストには独自の
state
パラメーターとredirect_uri
を提供する必要があります。ソーシャルアイデンティティプロバイダーにredirect_uri
を登録してください。 - Logto はサーバーに認可 URI を返します。
- サーバーはクライアントアプリケーションに認可 URI を返します。
- クライアントアプリケーションはユーザーを IdP 認可 URI にリダイレクトします。
- ユーザーが IdP にサインインします。
- IdP は
redirect_uri
を使用してユーザーをクライアントアプリケーションにリダイレクトし、認可コードを付与します。 - クライアントアプリケーションは
state
を検証し、IdP 認可応答をサーバーに転送します。 - サーバーは、ソーシャルアイデンティティをユーザーにリンクするために Logto にリクエストを送信します。
- Logto は認可コードを使用して IdP からユーザー情報を取得します。
- IdP はユーザー情報を Logto に返し、Logto はソーシャルアイデンティティをユーザーにリンクします。
新しいソーシャルアイデンティティをユーザーにリンクする際に考慮すべき制限があります:
- Management API にはセッションコンテキストがないため、ソーシャル認証状態を安全に維持するためにアクティブなセッションを必要とするソーシャルコネクターは Management API を介してリンクできません。サポートされていないコネクターには、apple、標準 OIDC、および標準 OAuth 2.0 コネクターが含まれます。
- 同じ理由で、Logto は認可応答の
state
パラメーターを検証できません。クライアントアプリでstate
パラメーターを保存し、認可応答を受信したときに検証してください。 - ソーシャルアイデンティティプロバイダーに
redirect_uri
を事前に登録する必要があります。そうしないと、ソーシャル IdP はユーザーをクライアントアプリにリダイレクトしません。ソーシャル IdP は、ユーザーサインイン用と独自のプロファイルバインディングページ用の 2 つのコールバックredirect_uri
を受け入れる必要があります。
ユーザーエンタープライズアイデンティティ管理
method | path | description |
---|---|---|
GET | /api/users/{userId}?includeSsoIdentities=true | ユーザー ID でユーザーの詳細を取得します。エンタープライズアイデンティティは ssoIdentities フィールドにあります。ユーザー詳細 API に includeSsoIdentities=true クエリパラメーターを追加して含めます。 |
現在、Management API はユーザーにエンタープライズアイデンティティをリンクまたはリンク解除することをサポートしていません。ユーザーにリンクされたエンタープライズアイデンティティを表示することのみが可能です。
パーソナルアクセストークン
method | path | description |
---|---|---|
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 設定管理
method | path | description |
---|---|---|
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 認証を削除します。 |
ユーザーアカウント削除
method | path | description |
---|---|---|
DELETE | /api/users/{userId} | ユーザー ID でユーザーを削除します。 |