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

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

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

この記事では、WordPress プラグインLogto を使用して、OAuth2 サインイン体験(ユーザー認証 (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 を統合する

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

  1. プラグイン > 新規追加 に移動します。
  2. 「Logto」を検索するか、検索ボックスに https://wordpress.org/plugins/logto/ を入力します。
  3. 今すぐインストール をクリックします。
  4. 有効化 をクリックします。

プラグインの設定

これで、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 クイックスタート を参照してください。

OAuth2 コネクターを追加する

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

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

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

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

標準 OAuth 2.0 アプリ を設定する

OAuth アプリの作成

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

コネクターの構成

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

clientIdclientSecret は OAuth アプリの詳細ページで確認できます。

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" の場合、クライアントアプリケーションがユーザーデータの読み取りおよび書き込みアクセスを要求していることを示します。

authorizationEndpointtokenEndpointuserInfoEndpoint は、ソーシャルベンダーのドキュメントで確認できます。

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

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

userInfoEndpoint:このエンドポイントは、クライアントアプリケーションがユーザーのフルネーム、メールアドレス、プロフィール画像などの追加情報を取得するために使用されます。ユーザー情報エンドポイントは、クライアントアプリケーションがトークンエンドポイントからアクセス トークンを取得した後にアクセスされるのが一般的です。

Logto では、profileMap フィールドも提供しており、ソーシャルベンダーのプロフィール情報(通常は標準化されていない)からのマッピングをカスタマイズできます。キーは Logto の標準ユーザープロフィールフィールド名で、対応する値はソーシャルプロフィールのフィールド名です。現時点では、Logto はソーシャルプロフィールから 'id'、'name'、'avatar'、'email'、'phone' のみを対象とし、'id' のみ必須で他はオプションです。

responseTypegrantType は認可コードグラントタイプでのみ固定値となるため、オプション扱いとし、デフォルト値が自動的に入力されます。

例えば、Google ユーザープロフィールレスポンス を参照でき、その profileMap は次のようになります:

{
"id": "sub",
"avatar": "picture"
}
注記:

カスタマイズパラメーターを格納するためのオプションの customConfig キーを用意しています。 各ソーシャルアイデンティティプロバイダーは、OAuth 標準プロトコルに独自のバリエーションを持つ場合があります。ご利用のソーシャルアイデンティティプロバイダーが OAuth 標準プロトコルに厳密に準拠している場合は、customConfig を気にする必要はありません。

設定タイプ

NameTypeRequired
authorizationEndpointstringtrue
userInfoEndpointstringtrue
clientIdstringtrue
clientSecretstringtrue
tokenEndpointResponseTypeenumfalse
responseTypestringfalse
grantTypestringfalse
tokenEndpointstringfalse
scopestringfalse
customConfigRecord<string, string>false
profileMapProfileMapfalse
ProfileMap fieldsTypeRequiredDefault value
idstringfalseid
namestringfalsename
avatarstringfalseavatar
emailstringfalseemail
phonestringfalsephone

一般設定

ここでは、アイデンティティプロバイダーへの接続を妨げることはありませんが、エンドユーザーの認証 (Authentication) 体験に影響を与える可能性のある一般的な設定を紹介します。

ログインページにソーシャルボタンを表示したい場合は、ソーシャルアイデンティティプロバイダーの 名前ロゴ(ダークモード・ライトモード)を設定できます。これにより、ユーザーがソーシャルログインオプションを認識しやすくなります。

アイデンティティプロバイダー名

各ソーシャルコネクターには、ユーザーアイデンティティを区別するための一意のアイデンティティプロバイダー (IdP) 名があります。一般的なコネクターは固定の IdP 名を使用しますが、カスタムコネクターは一意の値が必要です。詳細は IdP 名について をご覧ください。

プロフィール情報の同期

OAuth コネクターでは、ユーザー名やアバターなどのプロフィール情報の同期ポリシーを設定できます。以下から選択可能です:

  • サインアップ時のみ同期:ユーザーが初めてサインインしたときにプロフィール情報を一度だけ取得します。
  • サインイン時に常に同期:ユーザーがサインインするたびにプロフィール情報を更新します。

サードパーティ API へのトークン保存(オプション)

アイデンティティプロバイダーの API にアクセスし、ユーザーの認可で操作を行いたい場合(ソーシャルサインインまたはアカウント連携経由)、Logto は特定の API スコープを取得し、トークンを保存する必要があります。

  1. 上記の手順に従い、scope フィールドに必要なスコープを追加します
  2. Logto OAuth コネクターで API への永続的なアクセスのためにトークンを保存 を有効にします。Logto はアクセス トークンを Secret Vault に安全に保存します。
  3. 標準 の OAuth/OIDC アイデンティティプロバイダーの場合、リフレッシュ トークンを取得するには offline_access スコープを含める必要があり、これによりユーザーの同意プロンプトの繰り返しを防ぎます。
警告:

クライアントシークレットは安全に保管し、クライアントサイドのコードで絶対に公開しないでください。漏洩した場合は、アイデンティティプロバイダーのアプリ設定で直ちに新しいものを発行してください。

OAuth コネクターの活用

OAuth コネクターを作成し、アイデンティティプロバイダーと接続したら、エンドユーザーフローに組み込むことができます。ニーズに合ったオプションを選択してください:

ソーシャルサインインボタンの有効化

  1. Logto コンソールで サインイン体験 > サインアップとサインイン に移動します。
  2. ソーシャルサインイン セクションで OAuth コネクターを追加し、ユーザーがアイデンティティプロバイダーで認証 (Authentication) できるようにします。

ソーシャルサインイン体験 について詳しく学ぶ。

Account API を利用して、アプリ内でサインイン済みユーザーがソーシャルアカウントを連携・解除できるカスタムアカウントセンターを構築できます。Account API チュートリアルを参照

ヒント:

OAuth コネクターは、ソーシャルサインインを有効にせず、アカウント連携や API アクセスのみに利用することも可能です。

アイデンティティプロバイダー API へのアクセスと操作

アプリケーションは Secret Vault から保存されたアクセス トークンを取得し、アイデンティティプロバイダーの API を呼び出してバックエンドタスクを自動化できます。具体的な機能は、アイデンティティプロバイダーとリクエストしたスコープによって異なります。API アクセス用の保存トークン取得ガイドを参照してください。

ユーザーのソーシャルアイデンティティ管理

ユーザーがソーシャルアカウントを連携した後、管理者は Logto コンソールでその接続を管理できます:

  1. Logto コンソール > ユーザー管理 に移動し、ユーザープロフィールを開きます。
  2. ソーシャル接続 セクションでアイデンティティプロバイダー項目を見つけ、管理 をクリックします。
  3. このページで管理者は、ユーザーのソーシャル接続を管理し、ソーシャルアカウントから付与・同期されたすべてのプロフィール情報を確認し、アクセス トークンの状態をチェックできます。
注記:

一部のアイデンティティプロバイダーのアクセス トークンレスポンスには、特定のスコープ情報が含まれていない場合があります。そのため、Logto ではユーザーが付与した権限リストを直接表示できません。ただし、ユーザーが認可時にリクエストされたスコープに同意していれば、アプリケーションは OAuth API へアクセスする際に対応する権限を持ちます。

設定を保存する

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

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

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

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

テストと検証

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

さらなる読み物

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

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

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

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