Login by Auth0を構成する

Login by Auth0プラグインは、そのセットアップウィザードを使って構成することも、手動で構成しながら細かく制御することもできます。詳細については、「Login by Auth0をインストールする」をお読みください。以下の手順は、セットアップウィザードが完了しなかった場合や、ログインの問題のトラブルシューティングの一環としても使用できます。

Auth0の構成

Auth0テナントはWordPressサイトからのログイン要求を受け入れ、Auth0データベースやソーシャル接続、ビジネスディレクトリなど、少なくとも1つの接続からユーザーIDを取り込むように構成する必要があります。テナントの詳細については、「テナントを作成する」をお読みください。接続の詳細については、「IDプロバイダー」をお読みください。

アプリケーションのセットアップ

  1. WordPressサイトのアプリケーションを作成します。

  1. アプリケーションの[Settings(設定)]ビューを選択します。ドメイン、クライアントID、クライアントシークレットが表示されます。これらは、Auth0に接続するために[wp-admin]>[Auth0]>[Settings(設定)]で使用されます。

  2. [Application Type(アプリケーションタイプ)][Regular Web Application(通常のWebアプリケーション)]に、[Token Endpoint Authentication Method(トークンエンドポイント認証方法)][Post]に設定されている必要があります。

  3. [Allowed Callback URLs(許可されているコールバックURL)]まで下にスクロールして、WordPressサイトのURLに?auth0=1を加えて入力します。

  1. [Allowed Web Origins(許可されているWebオリジン)]フィールドに、WordPressサイトのWordPressアドレス(URL)(WordPressサイトが公開される場所)を入力して、これと異なる場合は、サイトアドレス(URL)(wp-adminが提供される場所)も入力します。これらの値は両方ともWordPressサイトの一般設定画面で確認できます。

  2. [Allowed Logout URLs(許可されているログアウトURL)]フィールドにWordPressサイトのログインURLを入力します。

  3. [Allowed Origins (CORS)(許可されているオリジン(CORS))]フィールドは空のままにします(これには先ほどの[Allowed Callback URLs(許可されているコールバックURL)]の値が使用されます)。

  1. 下にスクロールして、[Show Advanced Settings(詳細設定を表示)]を選んでから、[OAuth]ビューを選択して、[JsonWebToken Signature Algorithm(JsonWebToken署名アルゴリズム)]が[RS256]に設定されていることを確認します。もしこれを後で変更する必要がある場合は、この画面とwp-adminの両方で変更する必要があります(下の[Settings(設定)]>[Basic(基本)]を参照)。

  2. [OIDC Conformant(OIDC準拠)]を有効にします。

  3. [Grant Types(付与タイプ)]タブをクリックし、少なくとも[Authorization Code(認可コード)][Client Credentials(クライアント資格情報)]を選択します。

  4. [Save Changes(変更を保存)]をクリックします。

Management APIでアプリケーションを認可する

WordPressがAuth0テナントの代わりに特定のアクションを実行するために、先ほど作成したアプリケーションがManagement APIにアクセスできるように認可しなければなりません。これは必須ではありませんが、ログイン時に完全なユーザーデータ(user_metadataapp_metadataを含む)を取得し、ユーザーのメールとパスワードを変更し、確認済みメールが必要な場合にメール検証を再送信することが可能になります。

  1. アプリケーションがクライアント資格情報の付与を許可していることを確認してください(上記の手順10)。

  2. [Auth0 Dashboard]>[アプリケーション] > [APIs]に移動します。

  3. [Auth0 Management API]、次に[Machine to Machine Applications(M2Mアプリケーション)]ビューを選択します。

  4. WordPressアプリケーションを探し、[Unauthorized(無許可)]を選択してアクセスを付与します。

  5. 表示されるパネルで、read:usersupdate:usersのスコープのみ選び([Filter scopes(スコープのフィルタリング)]フィールドを使って検索できます)、[Update(更新)]を選択します。

データベース接続のセットアップ

データベース接続では、Auth0に保存されたユーザーレコードを使用してユーザー名とパスワードによるログインができます。このタイプの接続は必須ではなく、パスワードレスやソーシャル、エンタープライズのログインのみを使用する場合はスキップして構いません。

  1. セットアップにウィザードを使用した場合は、[Auth0 Dashboard]>[Authentication(認証)]>[Database(データベース)]に移動し、先ほど設定したアプリケーションと類似した名前の接続を探します。それ以外の場合は、接続を新規作成するか、既存の接続を使用するか、デフォルトのUsername-Password-Authentication(ユーザー名/パスワード認証)を使用することができます。既存の接続名を選択して設定を表示するか、[Create DB Connection(データベース接続を作成)]を選択して手順に従います。

  2. [Applications(アプリケーション)]ビューを選択して、先ほど作成したアプリケーションをアクティブ化します。

ソーシャル接続のセットアップ

このログイン方法をアクティブ化して構成する方法については、「ソーシャルIDプロバイダー」をお読みください。

エンタープライズ接続のセットアップ

このログイン方法をアクティブ化して構成する方法については、「エンタープライズIDプロバイダー」をお読みください。

WordPressの構成

  1. [Auth0 Dashboard]>[Applications(アプリケーション)]>[Applications(アプリケーション)]に移動して、先ほど作成したアプリケーションを選択します。

  2. 新しいタブまたはウィンドウを開き、WordPressサイトのwp-adminにログインして、[wp-admin]>[Auth0]>[Settings(設定)]に移動します。

  3. Auth0アプリケーションページにある[Domain(ドメイン)][Client ID(クライアントID)]、および[Client Secret(クライアントシークレット)]をコピーして、WordPressの設定に貼り付けます。各フィールドの横にある[Copy to Clipboard(クリップボードにコピー)]ボタンが使えます。

  4. 下にスクロールして、[Save Changes(変更を保存)]を選択します。

PHP定数の設定ストレージ

プラグインの設定はデータベースに保存できますが(デフォルト)、特定の名前のPHP定数を使用して設定することもできます。これにより、クライアントシークレットやAPIトークン、移行トークンなどの機密データをより安全に保管できるようになります(それらが定義されているファイルが安全に保存されていると仮定。詳細は、wordpress.orgの「Hardening WordPress(WordPressの強化)」をお読みください)。

定数はプラグインが読み込まれる前に定義する必要があります。そうでないと使用されません。これはwp-config.phpファイルか必須プラグインで行われます。詳細については、wordpress.orgの「Must Use Plugins(必須プラグイン)」をお読みください。定数がテーマのfunctions.phpファイル、またはAuth0に読み込まれた後のプラグインで定義された場合、値は無視されます。

PHP定数は次のように定義されます。

デフォルトの定数名はAUTH0_ENV_で、その後に上書きするオプション名をすべて大文字でつなげます(プレフィックスはauth0_settings_constant_prefixフィルターで変更できます。詳細は、「Login by Auth0 WordPressログインを拡張する」をお読みください)。すべてのプラグインオプションは上書きすることができ、そのキーはWP_Auth0_Options::defaults()メソッドで確認できます。利用可能なオプションは、当社GitHubリポジトリのWordPress Auth0ロックオプションをご覧ください。

注意:migration_tokenの値は、ユーザー移行が有効な場合にプラグインによって生成されます。管理画面にすでに値がある場合は、必ず定数を同じ値に設定してください。その値を変更する必要がある場合は、Auth0 Dashboardで使用されているデータベース接続のカスタムスクリプトでも変更しなければなりません。

設定フィールドの表示は、この新しい値に基づいて変更され、使用されている定数を参照用に表示します。この値は自動的にプラグイン全体で使用されるようになります。

重要:定数の値を設定した後に設定ページを保存すると、設定された定数値が検証され(変更はされず)、データベースに保存されているオプション配列から削除されます。この機能性をテストしているだけの場合は、値を削除する準備ができるまで、設定をWordPressの管理画面ページに保存しないでください。

WordPressマルチサイトネットワークにあるすべてのサイトが同じ定数を使用することで、単一のアプリケーションとデータベース接続を使用してネットワークを簡単にセットアップできます。

プラグインの設定

基本

  • Domain(ドメイン):ダッシュボードのアプリケーション設定からコピーされたドメイン。オプション名はdomainです。

  • カスタムドメイン(Custom Domain):テナントのカスタムドメイン(設定されている場合)。詳細については、「カスタムドメイン」をお読みください。オプション名はcustom_domainです。

  • Client ID(クライアントID):ダッシュボードのアプリケーション設定からコピーされたクライアントID。オプション名はclient_idです。

  • Client Secret(クライアントシークレット):ダッシュボードのアプリケーション設定からコピーされたクライアントシークレット。オプション名はclient_secretです。

  • JWT Signature Algorithm(JWT署名アルゴリズム):OAuth]タブの[Advanced Application Settings(アプリケーションの高度な設定)]からコピーされた、トークンの署名に使用されるアルゴリズムで、デフォルト値は「RS256」です。オプション名はclient_signing_algorithmです。

  • JWKS Cache Time (in minutes)(JWKSキャッシュ時間(分)):RS256のJWT署名アルゴリズムを使用中にJWKS情報を保存すべき時間。オプション名はcache_expirationです。

  • Original Login Form on wp-login.php(wp-login.phpのオリジナルログインフォーム):WordPressコアログインページにアクセスする方法を提供したりブロックしたりします。オプション名はwordpress_login_enabledです。ログインページコードのオプション名はwle_codeです。

    • [Never(許可しない)]は、WordPressコアログインフォームの表示を許可しません。

    • [Via a link under the Auth0 form(Auth0フォームの下のリンク経由)]は、wp-login.phpのAuth0埋め込みフォームのすぐ下にWordPressコアログインフォームへのリンクを表示します。ログインページは、ログインURLに?wleを追加することで直接アクセスすることもできます。

    • [When "wle" query parameter is present("wle"クエリパラメーターがあるとき)]は、ログインURLに?wleを追加することでログインページに直接アクセスすることを許可します。これは、ユニバーサルログインページのリダイレクトを迂回します。

    • [When "wle" query parameter contains specific code("wle"クエリパラメーターに特定のコードを含むとき)]は、?wle=とコードをログインURLに追加することで、ログインページに直接アクセスすることを許可します。コードは自動生成され、この設定の制御画面の下に表示されます。これは、ユニバーサルログインページのリダイレクトを迂回します。

  • [Allow Signups(サインアップを許可)]:ユーザーサインアップは、WordPressの「Anyone can register(誰でも登録できる)」オプションが有効な場合にのみ使用できます。この設定は、[Settings(設定)]>[General(一般)]>[Membership(メンバーシップ)]にあります。

機能

  • Universal Login Page(ユニバーサルログインページ):wp-login.phpページをユニバーサルログインページにリダイレクトして、このアプリケーションのすべてのアクティブな接続を使用してシングルサインオン(SSO)認証ができるようにします。オプション名はauto_loginです。

  • Auto Login Method(自動ログインメソッド):[Universal Login Page(ユニバーサルログインページ)]が有効になっている場合に認証に使用される、単一のアクティブな接続です。ユニバーサルログインページにすべてのアクティブな接続を表示するには、ここを空欄にしておきます。オプション名はauto_login_methodです。

  • Auth0 Logout(Auth0ログアウト):WordPressからログアウトするときにAuth0からもログアウトする場合は、このオプションを有効にします。オプション名はsinglelogoutです。

  • Override WordPress Avatars(WordPressアバターをオーバーライド):WordPressにAuth0のアバターを使用させます。オプション名はoverride_wp_avatarsです。

埋め込み

以下のオプションはユニバーサルログインページには影響しません(カスタマイズオプションの詳細は、「Auth0ユニバーサルログイン」をお読みください)。

  • Passwordless Login(パスワードレスログイン):すべての埋め込みAuth0ログインフォームでパスワードレスログインを有効にする場合にこのオプションを有効にします。パスワードレス接続はAuth0 Dashboardで管理され、このアプリケーションでパスワードレスログインを機能させるには、少なくとも1つがアクティブで有効化されている必要があります。オプション名はpasswordless_enabledです。

  • Icon URL(アイコンURL):埋め込みAuth0ログインフォームの上にアイコンを設定します。オプション名はicon_urlです。

  • Form Title(フォームタイトル):埋め込みAuth0ログインフォームのタイトルを設定します。オプション名はform_titleです。

  • Enable Gravatar Integration(Gravatar統合を有効化):ユーザーが自身のメールアドレスを入力すると、関連付けられているGravatarの写真が埋め込みAuth0ログインフォームに表示されます。オプション名はgravatarです。

  • Login Name Style(ログイン名のスタイル):[Email(メール)]を選択すると、ユーザーがログインする際にメールアドレスの入力が必須になります。ユーザー名を有効なメールアドレスに限定しない場合は、[Username(ユーザー名)]に設定します。オプション名はusername_styleです。オプション名はclient_secret_b64_encodedです。

  • Primary Color(プライマリカラー):この設定の詳細については、「ロック構成オプション」をお読みください。オプション名はprimary_colorです。

  • Extra Settings(追加設定):ロックを呼び出すためのオプションを含む有効なJSONオブジェクトです。これは、上記で設定された他のすべてのオプションをオーバーライドします。利用できるオプションのリストは、Lock:ユーザーの構成可能なオプション(例:{"disableResetAction": true })をご覧ください。オプション名はextra_confです。

  • Use Custom Lock JS URL(カスタムのLock JS URLを使用):これが無効な場合、WordPressはテスト済みの最新バージョンのLock(Auth0埋め込みログインフォーム)を自動的に使用します。これが有効な場合、管理者はカスタムのLock URLを提供して使用させることができます。オプション名はcustom_cdn_urlです。

  • Custom Lock JS URL(カスタムLock JS URL):Lockのバーションをポイントする有効なURLです。[Use Custom Lock JS URL(カスタムのLock JS URLを使用)]が無効になっている場合、このフィールドは自動的に非表示になります。オプション名はcdn_urlです。

  • Connections to Show(表示する接続):ユーザーにログインでの使用を許可する各IDプロバイダーをここにリストします。空にすると、すべての有効なプロバイダーをユーザーが使用できるようになります(詳細については、「Lock UIのカスタマイズ」をお読みください)。オプション名はlock_connectionsです。

高度

  • Require Verified Email(検証済みメールを必須にする):これを設定すると、ユーザーがログインする際に検証済みメールが必要になります。これにより、ユーザープロファイルデータにメールアドレスまたはemail_verifiedフラグが指定されていない場合、一部の接続が正常に機能しない可能性があります。オプション名はrequires_verified_emailです。

  • Skip Strategies(戦略のスキップ):[Require Verified Email(検証済みメールを必須にする)]が有効になっている場合、この設定が表示されます。このフィールドには、ログインとアカウントの関連付けの際に検証済みメールの要件をスキップする戦略名を入力できます。これは、email_verifiedフラグを指定しない戦略にのみ使用してください。

  • Remember User Session(ユーザーセッションを記憶する):ユーザーセッションはデフォルトで2日間存続しますが、この設定を有効にすると14日間存続するようになります。オプション名はremember_users_sessionです。

    • この設定は、ユーザーのセッションが適切に維持されるよう、テナントの非アクティブタイムアウトdocs/manage-users/sessions/session-lifetime-limits設定以下でなければなりません。

  • Login Redirection URL(ログインリダイレクトURL):これを設定すると、ログイン後にユーザーを特定のURLにリダイレクトします。これは、[auth0]ショートコード経由でのログインには影響しません。オプション名はdefault_login_redirectionです。ショートコードのリダイレクトを変更するには、次のようにredirect_to属性を追加します。

    [auth0 redirect_to="http://yourdomain.com/redirect-here"]

  • Force HTTPS Callback(HTTPSコールバックを強制):このオプションは、サイトがHTTPSを許可しながらも強制する場合に有効にします。これにより、ホームURLがHTTPSに設定されていない場合に、Auth0コールバックがHTTPSに強制されます。オプション名はforce_https_callbackです。

  • Auto Provisioning(自動プロビジョニング):新規登録が許可されない場合、Auth0からの新規ユーザーをWordPressデータベースに保存する必要がありますか?このオプションは、Auth0経由でログインしたときに存在しないWordPressユーザーを作成します(たとえば、ユーザーがAuth0 Dashboardで作成される場合)。オプション名はauto_provisioningです。

  • User Migration(ユーザーの移行):このオプションを有効にすると、Auth0移行Webサービスが公開されます。しかし、接続はAuth0 Dashboardで手動で構成する必要があります。移行プロセスの詳細については、「WordPressプラグインのLogin by Auth0でユーザーを移行する」をお読みください。[Generate New Migration Token(新しい移行トークンの生成)]ボタンを使用すると、保存したトークンを新しいトークンに置き換えることができます。両方のスクリプトで既存のトークンを新しいトークンに置き換えられるように、データベース接続の構成ページで[Custom Database(カスタムデータベース)]タブが開いていることを確認してください。オプション名はmigration_wsです。移行トークンのオプション名はmigration_tokenです。

  • Migration IPs AllowList(移行IPのAllowList):リストにあるIPからの要求のみが、移行Webサービスへのアクセスを許可されます。オプション名はmigration_ips_filterです。

  • Valid Proxy IP(有効なプロキシIP):プロキシまたはロードバランサーのIPアドレスをリストして、ログインおよび移行WebサービスのIPチェックを有効にします。オプション名はvalid_proxy_ipです。

  • Auth0 Server Domain(Auth0サーバードメイン):セットアップウィザードがアカウント情報を取得するために使用するAuth0ドメイン。オプション名はauth0_server_domainです。

もっと詳しく