サードパーティアプリ (OAuth / OIDC)
Logto のサードパーティアプリケーション統合を利用すると、Logto を外部アプリケーションの アイデンティティプロバイダー (IdP) として活用できます。
アイデンティティプロバイダー (IdP) とは、ユーザーのアイデンティティを検証し、ログイン認証情報を管理するサービスです。ユーザーのアイデンティティを確認した後、IdP は認証トークンやアサーションを生成し、ユーザーが再度ログインすることなくさまざまなアプリケーションやサービスにアクセスできるようにします。
アプリケーションへの Logto 統合 ガイドで作成したアプリケーションが自分で開発・完全に管理できるものだったのに対し、サードパーティアプリケーションは外部の開発者やビジネスパートナーによって開発された独立したサービスです。
この統合アプローチは、一般的なビジネスシナリオに最適です。Logto アカウントを使ってパートナーアプリケーションにアクセスできるようにしたり、エンタープライズユーザーが Google Workspace で Slack にサインインするような体験を提供できます。また、サードパーティアプリケーションが「Logto でサインイン」機能を追加できるオープンプラットフォームを構築することも可能です(「Google でサインイン」と同様)。
Logto は OpenID Connect (OIDC) プロトコルに基づくアイデンティティサービスであり、認証 (Authentication) と 認可 (Authorization) の両方の機能を提供します。これにより、OIDC サードパーティアプリの統合は従来のウェブアプリケーションと同じくらい簡単です。
また、OIDC は OAuth 2.0 の上に認証レイヤーを追加して構築されているため、OAuth プロトコルを使ったサードパーティアプリの統合も可能です。
Logto でサードパーティアプリケーションを作成する
- コンソール > アプリケーション に移動します。
- 「アプリケーションを作成」ボタンをクリックし、「サードパーティアプリ」をアプリケーションタイプとして選択し、次のいずれかの統合プロトコルを選びます:
- OIDC / OAuth
- サードパーティアプリケーションのタイプに応じてアプリケーションタイプを選択します:
- 従来型ウェブ:バックエンドでクライアントシークレットを安全に保存できるサーバーレンダリングアプリケーション(例:Node.js、PHP、Java)。
- シングルページアプリ (SPA):完全にブラウザ上で動作し、シークレットを安全に保存できないクライアントサイドレンダリングアプリケーション(例:React、Vue、Angular)。
- ネイティブ:ユーザーデバイス上で動作するモバイルまたはデスクトップアプリケーション(例:iOS、Android、Electron)。
- アプリケーションの名前と説明を入力し、「作成」ボタンをクリックします。新しいサードパーティアプリケーションが作成されます。
作成したサードパーティアプリケーションはすべて、「アプリケーション」ページの「サードパーティアプリ」タブに一覧表示されます。この構成により、自分のアプリケーションと区別しやすくなり、すべてのアプリケーションを一元管理できます。
サードパーティアプリケーションにサインインできるユーザーを制限したい場合は、アプリケーションの ルール タブで アプリレベルのアクセス制御 を設定してください。
統合ガイド
アプリケーション設定情報の確認
アプリケーション詳細ページで、統合に必要な クライアント ID、クライアントシークレット(従来型ウェブアプリのみ)、および OIDC エンドポイントを確認できます。
サードパーティサービスが OIDC ディスカバリーに対応している場合は、ディスカバリーエンドポイント を提供するだけで済みます。対応していない場合は、エンドポイントの詳細を表示 をクリックして、認可エンドポイント や トークンエンドポイント などすべてのエンドポイントを確認してください。
サードパーティ IdP 対応サービスとの統合
外部アイデンティティプロバイダーの設定にネイティブ対応しているサービスや製品(例:エンタープライズ SaaS プラットフォーム、コラボレーションツール)と接続する場合、設定は簡単です:
- サービスの IdP または SSO 設定ページを開きます。
- Logto から クライアント ID(必要に応じて クライアントシークレット も)をコピーし、サービスの設定に貼り付けます。
- サービスが OIDC 自動ディスカバリーに対応していれば ディスカバリーエンドポイント を、対応していなければ 認可エンドポイント と トークンエンドポイント を手動でコピーします。
- サービスの設定ページから リダイレクト URI をコピーし、Logto アプリケーションの許可リダイレクト URI に追加します。
- サービスが許可していれば スコープ を設定します。Logto は OIDC プロバイダーなので、ユーザー認証が必要な場合は
openidスコープを含めてください(ID トークンや UserInfo エンドポイントへのアクセスが可能になります)。OAuth リソースアクセスのみ必要な場合はopenidスコープは任意です。
設定が完了すると、サービス側で OAuth / OIDC フローが自動的に処理されます。
OAuth / OIDC プロトコルによる統合
サードパーティアプリケーションがプログラム的に Logto を IdP として統合する場合、標準の 認可コードフロー を実装する必要があります。実装には、各プログラミング言語向けの OAuth 2.0 / OIDC クライアントライブラリの利用を推奨します。
- 従来型ウェブ
- シングルページアプリ / ネイティブ
従来型ウェブアプリケーションは、クライアントシークレットをバックエンドサーバーで安全に保存できる 機密クライアント です。実装の詳細は 認可コードフロー を参照してください。
主な手順:
- 認可の開始:
client_id、redirect_uri、response_type=code、scopeを付与して Logto の認可エンドポイントにユーザーをリダイレクトします。 - コールバックの処理:リダイレクトから認可
codeを受け取ります。 - トークンの交換:バックエンドから、code・
client_id・client_secretをトークンエンドポイントに POST します。
シングルページアプリやネイティブアプリは、シークレットを安全に保存できない パブリッククライアント です。これらのアプリケーションは、クライアントシークレットの代わりに PKCE (Proof Key for Code Exchange) を使って安全な認可を行う必要があります。実装の詳細は 認可コードフロー および PKCE を参照してください。
主な手順:
- PKCE パラメータの生成:
code_verifierを作成し、code_challenge(SHA-256)を導出します。 - 認可の開始:
code_challengeとcode_challenge_method=S256を付与して認可エンドポイントにユーザーをリダイレクトします。 - コールバックの処理:リダイレクトから認可
codeを受け取ります。 - トークンの交換:code と元の
code_verifierをトークンエンドポイントに POST します。
デバイスフローによる統合
入力が制限されたデバイス(例:スマートテレビ、ゲーム機、CLI ツール)上で動作するネイティブサードパーティアプリケーションの場合、標準のリダイレクトベースの認可コードフローは現実的でない場合があります。その場合は、OAuth 2.0 デバイス認可グラント を利用できます。
デバイスフローでは、デバイスがユーザーコードと検証用 URL を表示します。ユーザーは別のデバイス(スマートフォンやノートパソコンなど)でその URL にアクセスし、コードを入力して認証を完了します。デバイスは認可が完了するまで Logto のトークンエンドポイントをポーリングします。
デバイスフローを実装する前に、Logto コンソールでサードパーティアプリケーションに必要な 権限 を設定してください。有効化されていないスコープをリクエストした場合、サードパーティアプリはアクセスを拒否されます。
実装の詳細は デバイスフロー クイックスタート を参照してください。
OIDC サードパーティアプリケーションの同意画面 (Consent screen)
セキュリティ上の理由から、すべての OIDC サードパーティアプリケーションは Logto による認証 (Authentication) 後、ユーザー認可のために 同意画面 にリダイレクトされます。
サードパーティがリクエストした ユーザープロファイル権限、API リソーススコープ、組織権限、および組織メンバーシップ情報はすべて同意画面に表示されます。
これらのリクエストされた権限は、ユーザーが「認可」ボタンをクリックした後にのみサードパーティアプリケーションに付与されます。

次のステップ
OIDC サードパーティアプリケーションの権限管理方法を学べます。
同意画面の外観をブランドイメージに合わせてカスタマイズし、一貫したユーザー体験を提供できます。
よくある質問
同意画面でユーザーが実際に持っている権限だけを付与できるようにするには?
関連リソース
ユースケース:Apache Answer を統合してユーザー向けコミュニティを立ち上げる
Logto をサードパーティアイデンティティプロバイダー (IdP) として利用する