Logto で OAuth および OIDC 認証を効率化
私たちのコミュニティは、特定の製品、例えば Outline や ChatGPT プラグインのために Logto をアイデンティティプロバイダーとして使用したいという関心を示しています。理論的には、統合したい製品がいずれかのプロトコルをサポートしている限り、Logto は OAuth または OIDC (OpenID Connect) プロバイダーとして機能できます。
私たちのコミュニティは、特定の製品、例えば Outline や ChatGPT プラグインのために Logto をアイデンティティプロバイダーとして使用したいという関心を示しています。理論的には、統合したい製品がいずれかのプロトコルをサポートしている限り、Logto は OAuth または OIDC (OpenID Connect) プロバイダーとして機能できます。
Logto は、必要なすべての機能を提供する使いやすいアイデンティティソリューションです。ユーザー名、メールアドレス、電話番号、Google や GitHub などの人気のソーシャルサインインを含む、さまざまなサインイン方法をサポートしています。個人であれ、あらゆる規模の企業であれ、Logto はあなたのプロジェクトの特定のニーズに合わせた完璧な カスタマーアイデンティティとアクセス管理 (CIAM) ソリューションを提供します。
私たちのコミュニティは、特定の製品、例えば Outline や ChatGPT プラグインのために Logto をアイデンティティプロバイダーとして使用したいという関心を示しています。理論的には、統合したい製品がいずれかのプロトコルをサポートしている限り、Logto は OAuth 2.0 (OAuth) または OpenID Connect (OIDC) プロバイダーとして機能できます。
この記事では、Logto をアイデンティティプロバイダーとして使用した OAuth または OIDC の統合に関する一般的なチュートリアルを提供します。さらに、特定の統合に関する専用のチュートリアルも提供しています。
製品によっていくつかの詳細が異なる場合がありますが、基本的な構成は一般的です。質問がある場合やさらにサポートが必要な場合は、ぜひ私たちの Discord サーバーに参加してさらなる議論に加わってください。
さあ、始めましょう!
始める前に、以下のものを用意してください:
Logto を自分でホストしている場合は、Logto インスタンスのセットアップに関する Logto の「スタートガイド」ドキュメントを参照してください。
Logto Cloud を利用している場合は、URL https://cloud.logto.io/ にアクセスして Logto コンソールを開き、自分でホストしている場合は設定したエンドポイントを使用します。
「アプリケーション」タブに移動し、「アプリケーションを作成」をクリックします。

表示されるモーダルで「従来の Web」を選択し、例えば「My App」のようなアプリケーション名を入力します。「アプリケーションを作成」をクリックします。

Logto のチュートリアルページに移動します。「スキップ」 を右上隅でクリックしてアプリケーションの詳細ページに進みます。

「リダイレクト URI」セクションで、製品のドキュメントに記載された値を入力します。通常、ID や製品のエンドポイント設定に基づいて動的です。 例えば、ChatGPT プラグイン では、リダイレクト URI は次のようになります:
https://chat.openai.com/aip/[your-plugin-id]/oauth/callback
プラグイン ID が foo123 の場合、値は次のとおりです:
https://chat.openai.com/aip/foo123/oauth/callback

また、「リダイレクト URL」、「コールバック URI」、または 「コールバック URL」と呼ばれることもあります。
一部の製品では、Logto にトークン交換リクエストを送信する際に リフレッシュトークン が必要な場合があります。 OAuth の場合、offline_access スコープが含まれていることを確認するだけで済みます。OIDC プロトコルに従って、デフォルトでは、製品はオーソリゼーションコードフローの初期認可要求で prompt=consent 検索パラメータも追加する必要があります。そうしないと、リフレッシュトークンは発行されません。
製品が OAuth を使用している場合や、prompt=consent パラメータまたは offline_access スコープを追加せずにリフレッシュトークンが必要な場合(例: ChatGPT プラグイン)、「詳細設定」セクションにスクロールして「リフレッシュトークンを常に発行する」を有効にしてください。

ページ下部にある「変更を保存」ボタンをクリックします。これで、さらなる設定に役立つようにこのページを開いたままにしておいてください。

製品のドキュメントに記載されている OAuth または OIDC 設定手順に従います。
必要な構成値の大半は、Logto アプリケーションの詳細ページで見つけることができます。名前に異なる別名があるかもしれないので、以下の表を参照してください:
| Logto 名称 | 別名 | 使用法 |
|---|---|---|
| アプリ ID | アプリケーション ID, クライアント ID | |
| アプリシークレット | アプリケーションシークレット, クライアントシークレット | |
| リダイレクト URI | リダイレクト URL, コールバック URI, コールバック URL | サインイン後にリダイレクト |
| サインアウト後のリダイレクト URI | サインアウト後のリダイレクト URL、ログアウト後のリダイレクト URI、ログアウト後のリダイレクト URL | サインアウト後にリダイレクト |
| 認可エンドポイント | 認可 URI, 認可 URL, 認可エンドポイント, 認可 URL, 認可 URI | 初期認証 |
| トークンエンドポイント | トークン URL, トークン URI | トークン付与リクエスト |
| ユーザー情報エンドポイント | ユーザー情報 URL, ユーザー情報 URI, ユーザーインフォエンドポイント, ユーザーインフォ URL, ユーザーインフォ URI | 現在のユーザー情報の取得 |
モダンな製品の場合、「ディスカバリーエンドポイント」だけで十分かもしれません。このような場合、認可エンドポイント内の auth を .well-known/openid-configuration に置き換えます。例えば、認可エンドポイントが https://default.logto.app/oidc/auth の場合、ディスカバリーエンドポイントは https://default.logto.app/oidc/.well-known/openid-configuration となります。
製品が OIDC をサポートする場合や ID トークンの発行を必要とする場合、スコープ設定に openid profile を追加します。以下のクレーム・スコープ表を参照してください:
| クレーム | タイプ | 必要なスコープ |
|---|---|---|
| sub | string | openid |
| name | string | profile |
| ユーザー名 | string | profile |
| 画像 | string | profile |
| メールアドレス | string | |
| メール確認済み | boolean | |
| 電話番号 | string | phone |
| 電話番号確認済み | boolean | phone |
製品でサインインボタンをクリックすると、Logto のサインインエクスペリエンスに誘導されます。
すべてが正常に設定されていれば、Logto でサインインまたは登録プロセスを完了すると、エラーなく製品にリダイレクトされます。
これにて、Logto を使った OAuth および OIDC 認証の効率化に関するガイドを終了します。統合中に問題が発生した場合は、[email protected] までメールでご連絡いただくか、Discord サーバーに参加して気軽にご相談ください!