Login by Auth0を構成する
Login by Auth0プラグインは、そのセットアップウィザードを使って構成することも、手動で構成しながら細かく制御することもできます。詳細については、「Login by Auth0をインストールする」をお読みください。以下の手順は、セットアップウィザードが完了しなかった場合や、ログインの問題のトラブルシューティングの一環としても使用できます。
Auth0の構成
Auth0テナントはWordPressサイトからのログイン要求を受け入れ、Auth0データベースやソーシャル接続、ビジネスディレクトリなど、少なくとも1つの接続からユーザーIDを取り込むように構成する必要があります。テナントの詳細については、「テナントを作成する」をお読みください。接続の詳細については、「IDプロバイダー」をお読みください。
アプリケーションのセットアップ
WordPressサイトのアプリケーションを作成します。
セットアップウィザードのトラブルシューティングを行う場合は、[Auth0 Dashboard]>[Applications(アプリケーション)]>[Applications(アプリケーション)]に移動し、WordPressサイトの名前に類似したアプリケーションを見つけます。見つからない場合は、ウィザードによってアプリケーションが作成されていないことを意味します。WordPressで再度セットアップウィザードを起動するか、以下の手順でアプリケーションを手動で作成してください。
手動で構成する場合は、[Auth0 Dashboard]>[Applications(アプリケーション)]>[Applications(アプリケーション)]に移動して、[Create(作成)]を選択します。アプリケーションの名前を入力し、[Regular Web Applications(通常のWebアプリケーション)]を選んで、[Create(作成)]を選択します。
アプリケーションの[Settings(設定)]ビューを選択します。ドメイン、クライアントID、クライアントシークレットが表示されます。これらは、Auth0に接続するために[wp-admin]>[Auth0]>[Settings(設定)]で使用されます。
[Application Type(アプリケーションタイプ)]は[Regular Web Application(通常のWebアプリケーション)]に、[Token Endpoint Authentication Method(トークンエンドポイント認証方法)]は[Post]に設定されている必要があります。
[Allowed Callback URLs(許可されているコールバックURL)]まで下にスクロールして、WordPressサイトのURLに
?auth0=1
を加えて入力します。
[Allowed Web Origins(許可されているWebオリジン)]フィールドに、WordPressサイトのWordPressアドレス(URL)(WordPressサイトが公開される場所)を入力して、これと異なる場合は、サイトアドレス(URL)(wp-adminが提供される場所)も入力します。これらの値は両方ともWordPressサイトの一般設定画面で確認できます。
[Allowed Logout URLs(許可されているログアウトURL)]フィールドにWordPressサイトのログインURLを入力します。
[Allowed Origins (CORS)(許可されているオリジン(CORS))]フィールドは空のままにします(これには先ほどの[Allowed Callback URLs(許可されているコールバックURL)]の値が使用されます)。
下にスクロールして、[Show Advanced Settings(詳細設定を表示)]を選んでから、[OAuth]ビューを選択して、[JsonWebToken Signature Algorithm(JsonWebToken署名アルゴリズム)]が[RS256]に設定されていることを確認します。もしこれを後で変更する必要がある場合は、この画面とwp-adminの両方で変更する必要があります(下の[Settings(設定)]>[Basic(基本)]を参照)。
[OIDC Conformant(OIDC準拠)]を有効にします。
[Grant Types(付与タイプ)]タブをクリックし、少なくとも[Authorization Code(認可コード)]と[Client Credentials(クライアント資格情報)]を選択します。
[Save Changes(変更を保存)]をクリックします。
Management APIでアプリケーションを認可する
WordPressがAuth0テナントの代わりに特定のアクションを実行するために、先ほど作成したアプリケーションがManagement APIにアクセスできるように認可しなければなりません。これは必須ではありませんが、ログイン時に完全なユーザーデータ(user_metadata
とapp_metadata
を含む)を取得し、ユーザーのメールとパスワードを変更し、確認済みメールが必要な場合にメール検証を再送信することが可能になります。
アプリケーションがクライアント資格情報の付与を許可していることを確認してください(上記の手順10)。
[Auth0 Management API]、次に[Machine to Machine Applications(M2Mアプリケーション)]ビューを選択します。
WordPressアプリケーションを探し、[Unauthorized(無許可)]を選択してアクセスを付与します。
表示されるパネルで、
read:users
とupdate:users
のスコープのみ選び([Filter scopes(スコープのフィルタリング)]フィールドを使って検索できます)、[Update(更新)]を選択します。
データベース接続のセットアップ
データベース接続では、Auth0に保存されたユーザーレコードを使用してユーザー名とパスワードによるログインができます。このタイプの接続は必須ではなく、パスワードレスやソーシャル、エンタープライズのログインのみを使用する場合はスキップして構いません。
セットアップにウィザードを使用した場合は、[Auth0 Dashboard]>[Authentication(認証)]>[Database(データベース)]に移動し、先ほど設定したアプリケーションと類似した名前の接続を探します。それ以外の場合は、接続を新規作成するか、既存の接続を使用するか、デフォルトのUsername-Password-Authentication(ユーザー名/パスワード認証)を使用することができます。既存の接続名を選択して設定を表示するか、[Create DB Connection(データベース接続を作成)]を選択して手順に従います。
[Applications(アプリケーション)]ビューを選択して、先ほど作成したアプリケーションをアクティブ化します。
ソーシャル接続のセットアップ
このログイン方法をアクティブ化して構成する方法については、「ソーシャルIDプロバイダー」をお読みください。
エンタープライズ接続のセットアップ
このログイン方法をアクティブ化して構成する方法については、「エンタープライズIDプロバイダー」をお読みください。
WordPressの構成
[Auth0 Dashboard]>[Applications(アプリケーション)]>[Applications(アプリケーション)]に移動して、先ほど作成したアプリケーションを選択します。
新しいタブまたはウィンドウを開き、WordPressサイトのwp-adminにログインして、[wp-admin]>[Auth0]>[Settings(設定)]に移動します。
Auth0アプリケーションページにある[Domain(ドメイン)]、[Client ID(クライアントID)]、および[Client Secret(クライアントシークレット)]をコピーして、WordPressの設定に貼り付けます。各フィールドの横にある[Copy to Clipboard(クリップボードにコピー)]ボタンが使えます。
下にスクロールして、[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
です。