Auth0 を初めてご利用ですか? Auth0 の仕組みを確認し、OAuth 2.0 フレームワークを使用した API の認証と認可の実装方法 についてご覧ください。
Auth0 API を設定する
API を作成する
Auth0 Dashboard の APIs セクションで、Create API をクリックします。API の名前と identifier を入力します。たとえばhttps://quickstarts/api です。この identifier は、後でアクセストークンの検証を設定する際に audience として使用します。Signing Algorithm は RS256 のままにします。

権限を定義する
権限を使用すると、特定のアクセストークンを持つユーザーに代わって、リソースにどのようにアクセスできるかを定義できます。たとえば、ユーザーがマネージャーのアクセスレベルを持っている場合はmessages リソースへの読み取りアクセスを許可し、管理者のアクセスレベルを持っている場合はそのリソースへの書き込みアクセスを許可する、といった設定が可能です。
許可する権限は、Auth0 Dashboard の APIs セクションにある Permissions ビューで定義できます。

この例では
read:messages スコープを使用します。- 受信した HTTP リクエストの
Authorizationヘッダーに JSON Web トークン (JWT) が含まれているかどうかを確認する方法。 - Auth0 アカウントの JSON Web Key Set (JWKS) を使用して、トークンが有効かどうかを確認する方法。アクセストークンの検証について詳しくは、Validate Access Tokens を参照してください。
PHP Backend API との連携
Auth0 が署名したトークンを、PHP で作成したバックエンド API で認可するサンプルアプリケーションを作成してみましょう。ここでは、ドキュメントに適したシンプルな方法で進めます。より堅牢な例については、GitHub 上の Quickstart app もあわせてご確認ください。HTTPクライアントとメッセージファクトリーのインストール
Auth0 PHP SDK は、プロジェクトのアーキテクチャとの高い相互運用性を実現するために、多くの PHP-FIG 標準をサポートしています。中でも特に重要なのが PSR-17 と PSR-18 です。これらの標準により、メッセージ処理やリクエスト処理を担うネットワークコンポーネントとして、任意のものを組み込めるようになります。SDK で利用するには、互換性のあるライブラリをプロジェクトにインストールする必要があります。 PHP で最も広く使われているネットワークライブラリは Guzzle ですが、PHP コミュニティには他にも多くの選択肢があります。このサンプルアプリケーションでは Guzzle を使用しましょう。PHP SDK のインストール
Auth0 PHP SDK を使用するには、PHP の依存関係管理ツールである Composer が必要です。Composer を使うと、プロジェクトに必要なライブラリを定義し、それらをインストールできます。先に進む前に、Composer がインストールされており、シェルから利用できることを確認してください。 Auth0 PHP SDK をインストールするには、プロジェクトのディレクトリで次のシェルコマンドを実行します。vendor フォルダーが作成され、Auth0 PHP SDK の使用に必要な依存関係がすべてダウンロードされます。さらに、サンプル内で使用される vendor/autoload.php ファイルも作成され、このファイルによってアプリケーションの動作に必要なすべてのクラスが読み込まれます。SDK を動作させるには、この autoload ファイルをプロジェクト内で require することが重要です。
SDKを設定する
まず、サンプルアプリケーションの設定を保存するために、プロジェクトのルートディレクトリに.env ファイルを作成し、環境変数を入力しましょう。
PHP は .env ファイルを単体では読み込めないため、そのためのライブラリをインストールします。サンプルアプリケーションでは特定のライブラリを使用しますが、実際のアプリケーションでは任意の dotenv ローダーを使用できます。プロジェクトディレクトリから、次のシェルコマンドを実行してライブラリをインストールしましょう。
index.php を作成し、サンプルアプリケーション用に Auth0 PHP SDK のインスタンスを設定しましょう。
ユーザーを認証する
このサンプルアプリケーションでは、認可 に重点を置いています。認可のためにユーザーがバックエンド API にアクセスする前に認証する方法はいくつもあり、たとえば Auth0 の SPA.js ライブラリ を使用できます。このアプローチは、GitHub プロジェクトに付属するこの Quickstart アプリ で紹介されています。どの方法を採用する場合でも、このサンプルアプリケーションを動作させるには、リクエストパラメーターまたはヘッダーを通じてアクセストークンを渡す必要があります。アクセストークンの認可
まず、受信した HTTP リクエストから JSON Web トークン (JWT) を取り出す必要があります。GET リクエストの?token パラメーター、または HTTP_AUTHORIZATION か Authorization ヘッダーに含まれているかを確認しましょう。