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

サードパーティアプリ (OAuth / OIDC)

Logto のサードパーティアプリケーション統合機能を利用すると、外部アプリケーション向けに アイデンティティプロバイダー (IdP) として Logto を活用できます。

アイデンティティプロバイダー (IdP) とは、ユーザーのアイデンティティを検証し、ログイン認証情報を管理するサービスです。ユーザーのアイデンティティを確認した後、IdP は認証トークンやアサーションを生成し、ユーザーが再度ログインすることなくさまざまなアプリケーションやサービスへアクセスできるようにします。

アプリケーションへの Logto 統合 ガイドで作成した、開発・管理が完全に自分でできるアプリケーションとは異なり、サードパーティアプリケーションは外部の開発者やビジネスパートナーによって開発された独立したサービスです。

この統合アプローチは、一般的なビジネスシナリオに最適です。Logto アカウントを使ってパートナーアプリケーションへアクセスできるようにしたり、エンタープライズユーザーが Google Workspace で Slack にサインインするような体験を提供できます。また、サードパーティアプリケーションが「Logto でサインイン」機能を追加できるオープンプラットフォームを構築することも可能です(「Google でサインイン」と同様)。

Logto は OpenID Connect (OIDC) プロトコルに基づいたアイデンティティサービスであり、認証 (Authentication)認可 (Authorization) の両方の機能を提供します。これにより、OIDC サードパーティアプリの統合は従来の Web アプリケーションと同じくらい簡単です。

また、OIDC は OAuth 2.0 の上に認証レイヤーを追加したプロトコルであるため、OAuth プロトコルを使ったサードパーティアプリの統合も可能です。

Logto でサードパーティアプリケーションを作成する

  1. コンソール > アプリケーション へ移動します。
  2. 「アプリケーションを作成」ボタンをクリックし、アプリケーションタイプとして「サードパーティアプリ」を選択し、次のいずれかの統合プロトコルを選びます:
    • OIDC / OAuth
  3. サードパーティアプリケーションのタイプに応じてアプリケーションタイプを選択します:
    • 従来型 Web:バックエンドでクライアントシークレットを安全に保管できるサーバーレンダリングアプリケーション(例:Node.js、PHP、Java)。
    • シングルページアプリ (SPA):クライアントサイドでレンダリングされ、ブラウザ上で動作しシークレットを安全に保管できないアプリケーション(例:React、Vue、Angular)。
    • ネイティブ:ユーザーデバイス上で動作するモバイルまたはデスクトップアプリケーション(例:iOS、Android、Electron)。
  4. アプリケーション名と説明を入力し、「作成」ボタンをクリックします。新しいサードパーティアプリケーションが作成されます。

作成したサードパーティアプリケーションはすべて、「アプリケーション」ページの「サードパーティアプリ」タブに一覧表示されます。この構成により、自分で作成したアプリケーションと区別しやすくなり、すべてのアプリケーションを一元管理できます。

統合ガイド

アプリケーション設定情報の確認

アプリケーション詳細ページでは、統合に必要な クライアント IDクライアントシークレット(従来型 Web アプリのみ)、OIDC エンドポイントを確認できます。

サードパーティサービスが OIDC ディスカバリーに対応している場合は、ディスカバリーエンドポイント を提供するだけで OK です。対応していない場合は、エンドポイントの詳細を表示 をクリックして、認可エンドポイントトークンエンドポイント などすべてのエンドポイントを確認してください。

サードパーティ IdP 対応サービスとの統合

外部アイデンティティプロバイダーの設定にネイティブ対応しているサービスや製品(例:エンタープライズ SaaS プラットフォーム、コラボレーションツール)と接続する場合、設定はシンプルです:

  1. サービスの IdP または SSO 設定ページを開きます。
  2. Logto から クライアント ID(必要に応じて クライアントシークレット も)をコピーし、サービスの設定に貼り付けます。
  3. サービスが OIDC 自動ディスカバリーに対応していれば ディスカバリーエンドポイント を、対応していなければ 認可エンドポイントトークンエンドポイント を手動でコピーします。
  4. サービスの設定ページから リダイレクト URI をコピーし、Logto アプリケーションの許可リダイレクト URI に追加します。
  5. サービスが許可していれば スコープ を設定します。Logto は OIDC プロバイダーなので、ユーザー認証が必要な場合は openid スコープを含めてください(ID トークンや UserInfo エンドポイントへのアクセスが可能になります)。OAuth リソースアクセスのみが必要な場合は openid スコープは任意です。

設定が完了すると、サービス側で OAuth / OIDC フローが自動的に処理されます。

OAuth / OIDC プロトコルによる統合

サードパーティアプリケーションがプログラム的に Logto を IdP として統合する場合、標準の 認可コードフロー を実装する必要があります。実装には、各プログラミング言語向けの OAuth 2.0 / OIDC クライアントライブラリの利用を推奨します。

従来型 Web アプリケーションは、バックエンドサーバーでクライアントシークレットを安全に保管できる 機密クライアント です。実装の詳細は 認可コードフロー を参照してください。

主な手順:

  1. 認可開始client_idredirect_uriresponse_type=codescope を付与して Logto の認可エンドポイントへリダイレクトします。
  2. コールバック処理:リダイレクトから認可 code を受け取ります。
  3. トークン交換:バックエンドから、code・client_idclient_secret をトークンエンドポイントへ POST します。

セキュリティ上の理由から、すべての OIDC サードパーティアプリケーションは Logto によって認証 (Authentication) された後、ユーザー認可のために 同意画面 へリダイレクトされます。

サードパーティが要求した ユーザープロファイル権限API リソーススコープ組織権限、および組織メンバーシップ情報はすべて同意画面に表示されます。

これらの要求された権限は、ユーザーが「認可 (Authorize)」ボタンをクリックした後にのみサードパーティアプリケーションへ付与されます。

consent screen

次のステップ

よくある質問

Logto はロールベースのアクセス制御 (RBAC) を使ってユーザー権限を管理しています。同意画面には、ユーザーに既に割り当てられているスコープ(権限)のみが表示されます。サードパーティアプリがユーザーの持たないスコープを要求した場合、それらは除外され、未承認の同意を防ぎます。

管理方法:

  • 特定のスコープを持つ グローバルロール または 組織ロール を定義します。
  • アクセス要件に応じてユーザーにロールを割り当てます。
  • ユーザーはロールから自動的にスコープを継承します。

ユースケース:Apache Answer を統合してユーザー向けコミュニティを立ち上げる

Logto をサードパーティアイデンティティプロバイダー (IdP) として利用する