メインコンテンツまでスキップ
新しい友達のために:

Logto は、モダンなアプリや SaaS 製品向けに設計された Auth0 の代替です。 Cloudオープンソース の両方のサービスを提供し、アイデンティティと管理 (IAM) システムを迅速に立ち上げるのに役立ちます。認証 (Authentication)、認可 (Authorization)、マルチテナント管理を すべて一つに まとめて楽しんでください。

Logto Cloud で無料の開発テナントから始めることをお勧めします。これにより、すべての機能を簡単に探索できます。

この記事では、WordPress プラグインLogto を使用して、OIDC サインイン体験(ユーザー認証 (Authentication))を迅速に構築する手順を説明します。

前提条件

Logto でアプリケーションを作成する

Logto は OpenID Connect (OIDC) 認証 (Authentication) と OAuth 2.0 認可 (Authorization) に基づいています。これは、複数のアプリケーション間でのフェデレーテッドアイデンティティ管理をサポートし、一般的にシングルサインオン (SSO) と呼ばれます。

あなたの 従来のウェブ アプリケーションを作成するには、次の手順に従ってください:

  1. Logto コンソール を開きます。「Get started」セクションで、「View all」リンクをクリックしてアプリケーションフレームワークのリストを開きます。あるいは、Logto Console > Applications に移動し、「Create application」ボタンをクリックします。 Get started
  2. 開いたモーダルで、左側のクイックフィルターチェックボックスを使用して、利用可能なすべての "従来のウェブ" フレームワークをフィルタリングするか、"従来のウェブ" セクションをクリックします。"WordPress" フレームワークカードをクリックして、アプリケーションの作成を開始します。 Frameworks
  3. アプリケーション名を入力します。例:「Bookstore」と入力し、「Create application」をクリックします。

🎉 タダーン!Logto で最初のアプリケーションを作成しました。詳細な統合ガイドを含むお祝いページが表示されます。ガイドに従って、アプリケーションでの体験を確認してください。

WordPress SDK を統合する

プラグインのインストール

備考:

現在、プラグインはまだ審査中で、WordPress プラグインディレクトリにはありません。利用可能になり次第、このページを更新します。

  1. 次のリンクのいずれかから Logto WordPress プラグインをダウンロードします:
    • 最新リリースlogto-plugin-<version>.zip 形式のファイルをダウンロードします。
  2. プラグインの ZIP ファイルをダウンロードします。
  3. WordPress 管理パネルで プラグイン > 新規追加 に移動します。
  4. プラグインのアップロード をクリックします。
  5. ダウンロードした ZIP ファイルを選択し、今すぐインストール をクリックします。
  6. 有効化 をクリックします。

プラグインの設定

これで、WordPress 管理パネルのサイドバーに Logto メニューが表示されるはずです。Logto > 設定 をクリックしてプラグインを設定します。

注記:

プラグインを設定する前に、Logto コンソールで 従来のウェブ アプリケーションを作成しておく必要があります。まだ作成していない場合は、アプリケーションへの Logto 統合 を参照してください。

プラグインを開始するための最小限の設定は次のとおりです:

  • Logto エンドポイント:Logto テナントのエンドポイント。
  • アプリ ID:Logto アプリケーションのアプリ ID。
  • アプリシークレット:Logto アプリケーションの有効なアプリシークレットのいずれか。

すべての値は Logto コンソールのアプリケーション詳細ページで見つけることができます。

値を入力したら、変更を保存 をクリックします(ボタンが見つからない場合はページの下までスクロールしてください)。

リダイレクト URI の設定

リダイレクト URI は、ユーザーが認証された後に Logto がリダイレクトする URL です。また、サインアウト後のリダイレクト URI は、ユーザーがログアウトした後に Logto がリダイレクトする URL です。

サインインフローを説明する非規範的なシーケンス図はこちらです:

サインアウトフローを説明する非規範的なシーケンス図はこちらです:

リダイレクトが必要な理由について詳しくは、サインイン体験の説明 を参照してください。

この場合、Logto コンソールで両方のリダイレクト URI を設定する必要があります。リダイレクト URI を見つけるには、WordPress 管理パネルの Logto > 設定 ページに移動します。リダイレクト URIサインアウト後のリダイレクト URI フィールドが表示されます。

  1. リダイレクト URIサインアウト後のリダイレクト URI の値をコピーし、Logto コンソールの リダイレクト URIサインアウト後のリダイレクト URI フィールドに貼り付けます。
  2. Logto コンソールで 変更を保存 をクリックします。

チェックポイント:WordPress ウェブサイトのテスト

これで、WordPress ウェブサイトで Logto 統合をテストできます:

  1. 必要に応じてシークレットブラウザウィンドウを開きます。
  2. WordPress ウェブサイトを訪問し、該当する場合は ログイン リンクをクリックします。または、直接ログインページ(例:https://example.com/wp-login.php)を訪問します。
  3. ページは Logto サインインページにリダイレクトされるはずです。
  4. サインインまたはサインアッププロセスを完了します。
  5. 認証が成功すると、WordPress ウェブサイトに戻り、自動的にログインされるはずです。
  6. ログアウト リンクをクリックして WordPress ウェブサイトからログアウトします。
  7. Logto サインアウトページにリダイレクトされ、その後 WordPress ウェブサイトに戻るはずです。
  8. WordPress ウェブサイトからログアウトされているはずです。

WordPress プラグインの設定について詳しく知るには、 WordPress クイックスタート を参照してください。

OIDC コネクターを追加する

迅速なサインインを有効にし、ユーザーコンバージョンを向上させるために、アイデンティティプロバイダー (IdP) として WordPress を接続します。Logto ソーシャルコネクターは、いくつかのパラメーター入力を許可することで、この接続を数分で確立するのに役立ちます。

ソーシャルコネクターを追加するには、次の手順に従ってください:

  1. Console > Connectors > Social Connectors に移動します。
  2. 「Add social connector」をクリックし、「OIDC」を選択します。
  3. README ガイドに従い、必要なフィールドを完了し、設定をカスタマイズします。
Connector tab
注記:

インプレースコネクターガイドに従っている場合は、次のセクションをスキップできます。

Standard OIDC app を設定する

OIDC アプリを作成する

このページを開いたときには、接続したいソーシャルアイデンティティプロバイダーがすでにわかっていると考えています。最初に行うべきことは、アイデンティティプロバイダーが OIDC プロトコルをサポートしていることを確認することです。これは有効なコネクターを設定するための前提条件です。その後、アイデンティティプロバイダーの指示に従って、OIDC 認可のための関連アプリを登録して作成します。

コネクターを設定する

セキュリティ上の考慮から、「Authorization Code」グラントタイプのみをサポートしており、これは Logto のシナリオに完全に適合します。

clientIdclientSecret は、OIDC アプリの詳細ページで見つけることができます。

clientId: クライアント ID は、認可サーバーへの登録時にクライアントアプリケーションを識別する一意の識別子です。この ID は、認可サーバーがクライアントアプリケーションのアイデンティティを確認し、その特定のクライアントアプリケーションに関連付けられた認可されたアクセス トークンを関連付けるために使用されます。

clientSecret: クライアントシークレットは、登録時に認可サーバーからクライアントアプリケーションに発行される秘密のキーです。クライアントアプリケーションは、この秘密キーを使用して、アクセス トークンを要求する際に認可サーバーに対して自分自身を認証します。クライアントシークレットは機密情報と見なされ、常に安全に保たれるべきです。

tokenEndpointAuthMethod: トークンエンドポイント認証方法は、クライアントアプリケーションがアクセス トークンを要求する際に認可サーバーに対して自分自身を認証するために使用されます。サポートされている方法を確認するには、OAuth 2.0 サービスプロバイダーの OpenID Connect ディスカバリーエンドポイントで利用可能な token_endpoint_auth_methods_supported フィールドを参照するか、OAuth 2.0 サービスプロバイダーが提供する関連ドキュメントを参照してください。

clientSecretJwtSigningAlgorithm (オプション): tokenEndpointAuthMethodclient_secret_jwt の場合にのみ必要です。クライアントシークレット JWT 署名アルゴリズムは、トークンリクエスト中に認可サーバーに送信される JWT をクライアントアプリケーションが署名するために使用されます。

scope: スコープパラメーターは、クライアントアプリケーションがアクセスを要求しているリソースと権限のセットを指定するために使用されます。スコープパラメーターは通常、特定の権限を表す値のスペース区切りリストとして定義されます。たとえば、スコープ値が「read write」の場合、クライアントアプリケーションがユーザーのデータへの読み取りおよび書き込みアクセスを要求していることを示すかもしれません。

authorizationEndpointtokenEndpointjwksUri、および issuer を OpenID プロバイダーの構成情報として見つけることが期待されます。これらはソーシャルベンダーのドキュメントで利用可能であるべきです。

authenticationEndpoint: このエンドポイントは、認証プロセスを開始するために使用されます。認証プロセスは通常、ユーザーがログインし、クライアントアプリケーションがリソースにアクセスするための認可を与えることを含みます。

tokenEndpoint: このエンドポイントは、クライアントアプリケーションが要求されたリソースにアクセスするために使用できる ID トークンを取得するために使用されます。クライアントアプリケーションは通常、トークンエンドポイントにグラントタイプと認可コードを含むリクエストを送信して、ID トークンを受け取ります。

jwksUri: これは、ソーシャルアイデンティティプロバイダー(略して IdP)の JSON Web Key Set (JWKS) を取得できる URL エンドポイントです。JWKS は、認証プロセス中に発行される JSON Web トークン (JWT) を IdP が署名および検証するために使用する暗号化キーのセットです。jwksUri は、IdP が JWT に署名するために使用する公開鍵を取得するために RP が使用し、RP が IdP から受け取った JWT の真正性と整合性を検証できるようにします。

issuer: これは、IdP から受け取った JWT を RP が検証するために使用する IdP の一意の識別子です。これは JWT に iss クレーム として含まれています(ID トークンは常に JWT です)。発行者の値は、IdP の認可サーバーの URL と一致する必要があり、RP が信頼する URI である必要があります。RP が JWT を受け取ると、iss クレームを確認して、それが信頼できる IdP によって発行されたものであり、RP で使用することを意図していることを確認します。

jwksUriissuer は、認証プロセス中に RP がエンドユーザーのアイデンティティを検証するための安全なメカニズムを提供します。jwksUri から取得した公開鍵を使用することで、RP は IdP によって発行された JWT の真正性と整合性を検証できます。発行者の値は、RP が信頼できる IdP によって発行された JWT のみを受け入れ、JWT が RP で使用することを意図していることを保証します。

認証リクエストは常に必要であるため、authRequestOptionalConfig が提供され、すべてのオプション設定をラップします。詳細は OIDC 認証リクエスト を参照してください。また、この設定に nonce が欠けていることに気付くかもしれません。nonce は各リクエストで同一である必要があるため、nonce の生成はコード実装に含めています。心配しないでください!前述の jwksUriissueridTokenVerificationConfig に含まれています。

標準の OIDC プロトコルがインプリシットおよびハイブリッドフローの両方をサポートしているのに対し、Logto コネクターが認可フローのみをサポートしている理由に興味があるかもしれません。インプリシットおよびハイブリッドフローは、認可フローよりも安全性が低いと判断されています。Logto はセキュリティに重点を置いているため、ユーザーに最高レベルのセキュリティを提供するために、認可フローのみをサポートしていますが、若干の不便さがあります。

responseTypegrantType は「Authorization Code」フローでのみ固定値にできるため、オプションとして設定し、デフォルト値が自動的に入力されます。

注記:

すべてのフロータイプに対して、カスタマイズパラメーターを配置するためのオプションの customConfig キーを提供しています。 各ソーシャルアイデンティティプロバイダーは、OIDC 標準プロトコルに独自のバリアントを持つことがあります。希望するソーシャルアイデンティティプロバイダーが OIDC 標準プロトコルに厳密に従っている場合、customConfig を気にする必要はありません。

設定タイプ

名前タイプ必須
scopestringTrue
clientIdstringTrue
clientSecretstringTrue
authorizationEndpointstringTrue
tokenEndpointstringTrue
idTokenVerificationConfigIdTokenVerificationConfigTrue
authRequestOptionalConfigAuthRequestOptionalConfigFalse
customConfigRecord<string, string>False
AuthRequestOptionalConfig プロパティタイプ必須
responseTypestringFalse
tokenEndpointstringFalse
responseModestringFalse
displaystringFalse
promptstringFalse
maxAgestringFalse
uiLocalesstringFalse
idTokenHintstringFalse
loginHintstringFalse
acrValuesstringFalse
IdTokenVerificationConfig プロパティタイプ必須
jwksUristringTrue
issuerstring | string[]False
audiencestring | string[]False
algorithmsstring[]False
clockTolerancestring | numberFalse
critRecord<string, string | boolean>False
currentDateDateFalse
maxTokenAgestring | numberFalse
subjectstringFalse
typstringFalse

IdTokenVerificationConfig の詳細については こちら を参照してください。

設定を保存する

Logto コネクター設定エリアで必要な値をすべて記入したことを確認してください。「保存して完了」または「変更を保存」をクリックすると、OIDC コネクターが利用可能になります。

サインイン体験で OIDC コネクターを有効にする

ソーシャルコネクターを正常に作成したら、サインイン体験で「OIDC で続行」ボタンとして有効にすることができます。

  1. Console > サインイン体験 > サインアップとサインイン に移動します。
  2. (オプション)ソーシャルログインのみが必要な場合は、サインアップ識別子に「該当なし」を選択します。
  3. 設定済みの OIDC コネクターを「ソーシャルサインイン」セクションに追加します。
サインイン体験タブ

テストと検証

WordPress プラグイン アプリに戻ります。これで OIDC を使用してサインインできるはずです。お楽しみください!

さらなる読み物

エンドユーザーフロー:Logto は、MFA やエンタープライズシングルサインオン (SSO) を含む即時使用可能な認証 (Authentication) フローを提供し、アカウント設定、セキュリティ検証、マルチテナント体験の柔軟な実装のための強力な API を備えています。

認可 (Authorization):認可 (Authorization) は、ユーザーが認証 (Authentication) された後に行えるアクションやアクセスできるリソースを定義します。ネイティブおよびシングルページアプリケーションの API を保護し、ロールベースのアクセス制御 (RBAC) を実装する方法を探ります。

組織 (Organizations):特にマルチテナント SaaS や B2B アプリで効果的な組織機能は、テナントの作成、メンバー管理、組織レベルの RBAC、およびジャストインタイムプロビジョニングを可能にします。

顧客 IAM シリーズ:顧客(または消費者)アイデンティティとアクセス管理に関する連続ブログ投稿で、101 から高度なトピックまでを網羅しています。