Logto は、モダンなアプリや SaaS 製品向けに設計された Auth0 の代替です。 Cloud と オープンソース の両方のサービスを提供し、アイデンティティと管理 (IAM) システムを迅速に立ち上げるのに役立ちます。認証 (Authentication)、認可 (Authorization)、マルチテナント管理を すべて一つに まとめて楽しんでください。
Logto Cloud で無料の開発テナントから始めることをお勧めします。これにより、すべての機能を簡単に探索できます。
この記事では、WordPress プラグイン と Logto を使用して、GitHub (GitHub App) サインイン体験(ユーザー認証 (Authentication))を迅速に構築する手順を説明します。
前提条件
- 稼働中の Logto インスタンス。紹介ページ をチェックして始めてください。
- WordPress プラグイン の基本的な知識。
- 使用可能な GitHub (GitHub App) アカウント。
Logto でアプリケーションを作成する
Logto は OpenID Connect (OIDC) 認証 (Authentication) と OAuth 2.0 認可 (Authorization) に基づいています。これは、複数のアプリケーション間でのフェデレーテッドアイデンティティ管理をサポートし、一般的にシングルサインオン (SSO) と呼ばれます。
あなたの 従来のウェブ アプリケーションを作成するには、次の手順に従ってください:
- Logto コンソール を開きます。「Get started」セクションで、「View all」リンクをクリックしてアプリケーションフレームワークのリストを開きます。あるいは、Logto Console > Applications に移動し、「Create application」ボタンをクリックします。
- 開いたモーダルで、左側のクイックフィルターチェックボックスを使用して、利用可能なすべての "従来のウェブ" フレームワークをフィルタリングするか、"従来のウェブ" セクションをクリックします。"WordPress" フレームワークカードをクリックして、アプリケーションの作成を開始します。
- アプリケーション名を入力します。例:「Bookstore」と入力し、「Create application」をクリックします。
🎉 タダーン!Logto で最初のアプリケーションを作成しました。詳細な統合ガイドを含むお祝いページが表示されます。ガイドに従って、アプリケーションでの体験を確認してください。
WordPress SDK を統合する
プラグインのインストール
- WordPress 管理パネルから
- アップロードから
- プラグイン > 新規追加 に移動します。
- 「Logto」を検索するか、検索ボックスに https://wordpress.org/plugins/logto/ を入力します。
- 今すぐインストール をクリックします。
- 有効化 をクリックします。
- 次のリンクのいずれかから Logto WordPress プラグインをダウンロードします:
- 最新リリース:
logto-plugin-<version>.zip形式のファイルをダウンロードします。 - WordPress プラグインディレクトリ:ダウンロード ボタンをクリックしてファイルをダウンロードします。
- 最新リリース:
- プラグインの ZIP ファイルをダウンロードします。
- WordPress 管理パネルで プラグイン > 新規追加 に移動します。
- プラグインのアップロード をクリックします。
- ダウンロードした ZIP ファイルを選択し、今すぐインストール をクリックします。
- 有効化 をクリックします。
プラグインの設定
これで、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 フィールドが表示されます。
- リダイレクト URI と サインアウト後のリダイレクト URI の値をコピーし、Logto コンソールの リダイレクト URI と サインアウト後のリダイレクト URI フィールドに貼り付けます。
- Logto コンソールで 変更を保存 をクリックします。
チェックポイント:WordPress ウェブサイトのテスト
これで、WordPress ウェブサイトで Logto の統合をテストできます:
- 必要に応じてシークレットブラウザウィンドウを開きます。
- WordPress ウェブサイトを訪問し、該当する場合は ログイン リンクをクリックするか、直接ログインページ(例:
https://example.com/wp-login.php)にアクセスします。 - ページは Logto サインインページにリダイレクトされるはずです。
- サインインまたはサインアッププロセスを完了します。
- 認証が成功すると、WordPress ウェブサイトに戻り、自動的にログインされるはずです。
- ログアウト リンクをクリックして WordPress ウェブサイトからログアウトします。
- Logto サインアウトページにリダイレクトされ、その後 WordPress ウェブサイトに戻るはずです。
- WordPress ウェブサイトからログアウトされているはずです。
WordPress プラグインの設定について詳しく知るには、 WordPress クイックスタート を参照してください。
GitHub (GitHub App) コネクターを追加する
迅速なサインインを有効にし、ユーザーコンバージョンを向上させるために、アイデンティティプロバイダー (IdP) として WordPress を接続します。Logto ソーシャルコネクターは、いくつかのパラメーター入力を許可することで、この接続を数分で確立するのに役立ちます。
ソーシャルコネクターを追加するには、次の手順に従ってください:
- Console > Connectors > Social Connectors に移動します。
- 「Add social connector」をクリックし、「GitHub (GitHub App)」を選択します。
- README ガイドに従い、必要なフィールドを完了し、設定をカスタマイズします。
インプレースコネクターガイドに従っている場合は、次のセクションをスキップできます。
GitHub (GitHub App) を設定する
ステップ 1: GitHub App を作成する
GitHub を認証 (Authentication) プロバイダーとして利用する前に、GitHub 上で GitHub App を作成し、OAuth 2.0 資格情報を取得する必要があります。
- GitHub にアクセスし、アカウントでサインインします。必要に応じて新しいアカウントを作成してください。
- Settings > Developer settings > GitHub Apps に移動します。
- New GitHub App をクリックして新しいアプリケーションを登録します:
- GitHub App name:アプリの一意な名前を入力します。名前は 34 文字以内で、GitHub 全体で一意である必要があります。
- Homepage URL:アプリケーションのホームページ URL を入力します。
- Callback URL:Logto の GitHub コネクターから Callback URI をコピーし、ここに貼り付けます。必要に応じて複数のコールバック URL を追加できます。ユーザーが GitHub でサインインした後、ここに認可コード付きでリダイレクトされ、Logto が認証 (Authentication) を完了します。
- Expire user authorization tokens:この項目は チェックしたまま(推奨)にします。これにより、トークンの有効期限とリフレッシュ トークンが有効になり、セキュリティが強化されます。
- Request user authorization (OAuth) during installation:インストール時にユーザーにアプリの認可を求めたい場合は、オプションでチェックします。
- Webhook:Webhook イベントが不要な場合は Active のチェックを外します。認証 (Authentication) のみの用途では通常 Webhook は不要です。
- Permissions でアプリに必要な権限を設定します(詳細は下記ステップ 2 を参照)。
- Where can this GitHub App be installed? では、どの GitHub アカウントのユーザーでも認証 (Authentication) に利用できるようにしたい場合は Any account を選択します。
- Create GitHub App をクリックして GitHub App を作成します。
OAuth Apps とは異なり、GitHub Apps は広範なスコープではなく細かな権限で管理されます。アプリ作成時に GitHub ダッシュボードで権限を設定し、ユーザーは認可 (Authorization) 時に特定のリポジトリへのアクセスを許可します。
GitHub Apps のセットアップ詳細については Registering a GitHub App を参照してください。
ステップ 2: GitHub で権限を設定する
GitHub Apps は OAuth スコープの代わりに細かな権限で管理されます。GitHub App の作成または編集時に GitHub ダッシュボードで権限を設定 する必要があります。これらの権限によってアプリがアクセスできるデータが決まります。
GitHub App の権限の理解
権限は 3 種類に分類されます:
- リポジトリ権限:リポジトリレベルのリソース(コード、課題、プルリクエストなど)へのアクセス
- 組織権限:組織レベルのリソース(メンバー、チーム、プロジェクトなど)へのアクセス
- アカウント権限:ユーザーアカウントデータ(メール、プロフィール、フォロワーなど)へのアクセス
各権限ごとに次のいずれかを選択できます:
- No access:このリソースにアクセスできません
- Read-only:このリソースを読み取りのみ可能
- Read & write:このリソースの読み取りと変更が可能
認証 (Authentication) 用の推奨権限
基本的な「GitHub でサインイン」機能には、最低限次の アカウント権限 を設定してください:
| 権限 | アクセスレベル | 目的 |
|---|---|---|
| Email addresses | Read-only | アカウント作成のためにユーザーのメールアドレスを取得 |
GitHub Apps は、ユーザーの代理で動作する場合、公開プロフィール情報の読み取り権限を暗黙的に持っています。ユーザー名、アバター、公開プロフィール URL などの基本的なプロフィールデータについては明示的な権限リクエストは不要です。
API アクセス用の追加権限
認証 (Authentication) 以外で GitHub API へのアクセスが必要な場合は、GitHub ダッシュボードで該当する権限を追加してください。よくある例は以下の通りです:
| 権限タイプ | 権限 | アクセスレベル | ユースケース |
|---|---|---|---|
| リポジトリ | Contents | Read-only / Read & write | リポジトリのファイルやコードへのアクセス |
| リポジトリ | Issues | Read & write | 課題の作成と管理 |
| リポジトリ | Pull requests | Read & write | プルリクエストの作成と管理 |
| リポジトリ | Metadata | Read-only | リポジトリのメタデータへのアクセス(多くの操作で必須) |
| 組織 | Members | Read-only | 組織メンバーの一覧取得 |
| アカウント | Followers | Read-only | ユーザーのフォロワーやフォロー中ユーザーへのアクセス |
これは一部の例であり、GitHub Apps ではさらに多くの細かな権限がサポートされています。完全な一覧は Permissions required for GitHub Apps を参照してください。
OAuth Apps では Logto コネクターでスコープを設定しますが、GitHub App の権限はすべて GitHub ダッシュボードで管理します。Logto の GitHub コネクターの Scope フィールドは空のままで構いません — GitHub Apps では従来の OAuth スコープは使用しません。
必要な権限を GitHub 側で設定し、ユーザーは認可 (Authorization) 時にアクセス許可を求められます。
ステップ 3: Logto コネクターを設定する
GitHub App を作成したら、その設定ページにリダイレクトされ、資格情報を取得できます。
- GitHub App の設定ページで Client ID をコピーし、Logto の
clientIdフィールドに貼り付けます。 - Client secrets で Generate a new client secret をクリックします。生成されたシークレットをコピーし、Logto の
clientSecretフィールドに貼り付けます。 - Logto で Save and Done をクリックし、アイデンティティシステムと GitHub を接続します。
Client secret は安全に保管し、クライアントサイドのコードで絶対に公開しないでください。GitHub の client secret は紛失した場合に復元できません — 新たに生成する必要があります。
GitHub App の Client ID は App ID とは異なります。必ず設定ページに「Client ID」と表示されているものを使用してください(App ID ではありません)。
ステップ 4: 一般設定
GitHub への接続を妨げることはありませんが、エンドユーザーの認証 (Authentication) 体験に影響する一般的な設定をいくつか紹介します。
プロフィール情報の同期
GitHub コネクターでは、GitHub のユーザー情報から Logto ユーザープロフィールへの同期方法(name、avatar、email など)を設定できます。次のオプションから選択してください:
- サインアップ時のみ同期:ユーザーが初めてサインインしたときにプロフィール情報を一度だけ取得します。
- サインイン時に常に同期:ユーザーがサインインするたびにプロフィール情報を更新します。
GitHub API へのアクセス用トークンの保存(オプション)
GitHub API へのアクセスやユーザー認可での操作(ソーシャルサインインやアカウント連携経由)を行いたい場合は、Logto でトークン保存を有効にしてください:
- GitHub App の設定(ステップ 2)で必要な権限を設定します。
- Logto の GitHub コネクターで Store tokens for persistent API access を有効にします。Logto はアクセストークンとリフレッシュ トークンの両方を Secret Vault に安全に保存します。
GitHub Apps は常にリフレッシュ トークンを発行するため、Logto は両方のトークンを自動的に保存します。アクセストークンは 8 時間で期限切れになりますが、Logto はリフレッシュ トークンを使って新しいアクセストークンを取得でき、最大 6 か月間 API アクセスが途切れません。
ステップ 5: 統合のテスト(オプション)
本番運用前に、GitHub App 統合をテストしてください:
- Logto の開発テナントでコネクターを利用します。
- ユーザーが GitHub でサインインできることを確認します。
- 認可 (Authorization) 時に正しい権限がユーザーに求められることを確認します。
- トークン保存を有効にした場合、アクセストークン(およびリフレッシュ トークン)が正しく保存されていることを確認します。
- 保存されたトークンを使って API コールをテストし、権限が期待通りに機能しているか確認します。
GitHub Apps は、どの GitHub ユーザーアカウントでもすぐに利用できます。他のプラットフォームのようにテストユーザーやアプリ承認は不要です。ただし、アプリが組織にインストールされている場合は、組織オーナーによるインストール承認が必要な場合があります。
設定を保存する
Logto コネクター設定エリアで必要な値をすべて記入したことを確認してください。「保存して完了」または「変更を保存」をクリックすると、GitHub (GitHub App) コネクターが利用可能になります。
サインイン体験で GitHub (GitHub App) コネクターを有効にする
ソーシャルコネクターを正常に作成したら、サインイン体験で「GitHub (GitHub App) で続行」ボタンとして有効にすることができます。
- Console > サインイン体験 > サインアップとサインイン に移動します。
- (オプション)ソーシャルログインのみが必要な場合は、サインアップ識別子に「該当なし」を選択します。
- 設定済みの GitHub (GitHub App) コネクターを「ソーシャルサインイン」セクションに追加します。
テストと検証
WordPress プラグイン アプリに戻ります。これで GitHub (GitHub App) を使用してサインインできるはずです。お楽しみください!
さらなる読み物
エンドユーザーフロー:Logto は、MFA やエンタープライズシングルサインオン (SSO) を含む即時使用可能な認証 (Authentication) フローを提供し、アカウント設定、セキュリティ検証、マルチテナント体験の柔軟な実装のための強力な API を備えています。
認可 (Authorization):認可 (Authorization) は、ユーザーが認証 (Authentication) された後に行えるアクションやアクセスできるリソースを定義します。ネイティブおよびシングルページアプリケーションの API を保護し、ロールベースのアクセス制御 (RBAC) を実装する方法を探ります。
組織 (Organizations):特にマルチテナント SaaS や B2B アプリで効果的な組織機能は、テナントの作成、メンバー管理、組織レベルの RBAC、およびジャストインタイムプロビジョニングを可能にします。
顧客 IAM シリーズ:顧客(または消費者)アイデンティティとアクセス管理に関する連続ブログ投稿で、101 から高度なトピックまでを網羅しています。