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 にサインインします。
- 認証されたユーザーが認可トークンと共にクライアントアプリケーションにリダイレクトされます。
- クライアントアプリケーションが Logto からセルフホステッドアカウント設定 API アクセスのためのアクセス トークンを要求します。
- 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/verification/verification-codes | メールまたは電話番号の認証コードを送信します。 |
POST | /api/verification/verification-codes/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 を使用して新しいソーシャルアイデンティティ接続を開始します。 |
- ユーザーがクライアントアプリケーションにアクセスし、ソーシャルアイデンティティのバインドを要求します。
- クライアントアプリケーションがサーバーにソーシャルアイデンティティのバインドリクエストを送信します。
- サーバーが Logto にソーシャルアイデンティティプロバイダーの認可 URI を取得するリクエストを送信します。リクエストには独自の
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 はユーザーにエンタープライズアイデンティティをリンクまたはリンク解除することをサポートしていません。ユーザーにリンクされたエンタープライズアイデンティティを表示することのみが可能です。
ユーザー 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 でユーザーを削除します。 |