OpenID Connectは、OAUTH 2.0に基づいた認証および承認契約であり、ユーザーはサードパーティプロバイダー(Google、Facebookなど)を介して既存のアカウントにログインできます。開発者に標準的で安全なユーザー認証方法を提供し、アプリケーションでのシームレスなログインエクスペリエンスを容易にします。
開発を開始する前に、PHPとOpenSSL、Curl、JSONサポートなどの一般的なコンポーネントがサーバー環境にインストールされていることを確認する必要があります。インストールされていない場合、次のコマンドに従ってインストールを完了できます。
$ sudo apt-get install php openssl php-curl php-json
まず、OpenIDプロバイダーの開発者コンソールにクライアントアプリケーションを作成する必要があります。作成プロセス中に、一意のクライアントIDとクライアントシークレット(クライアントシークレット)を設定し、認証応答を受信するために承認が成功した後にリダイレクトURLを構成する必要があります。
必要なPHPライブラリファイルを紹介します。
require_once 'vendor/autoload.php';
use OpenIDConnectClient;
クライアントインスタンスを作成し、パラメーターを構成します。
$clientID = 'your-client-id';
$clientSecret = 'your-client-secret';
$redirectURL = 'your-redirect-url';
$oidc = new OpenIDConnectClient($clientID, $clientSecret);
$oidc->setRedirectURL($redirectURL);
$oidc->setProviderURL('https://your-openid-provider.com');
認証リクエストを開始し、コールバックを処理します。
if (!isset($_GET['code'])) {
// ユーザーはまだ確認されていません,認証ページにリダイレクトします
$authorizationURL = $oidc->getAuthorizationURL();
header('Location: ' . $authorizationURL);
exit;
} else {
// ユーザー検証,承認コードを使用して、アクセストークンを取得します
$code = $_GET['code'];
$oidc->authenticate($code);
$accessToken = $oidc->getAccessToken();
$userInfo = $oidc->requestUserInfo();
// ここでは、ユーザーログインまたはビジネスロジック処理を使用できます
}
OpenID Connectを使用すると、PHPアプリケーションは安全で標準化されたユーザー認証を実現できます。簡単なコードプロセスを通じて、クライアントをプロバイダーに登録し、認証とユーザー情報の取得を完了し、アプリケーションのセキュリティとユーザーエクスペリエンスを大幅に改善します。このソリューションは、自己加工パスワード検証のリスクを回避し、さまざまなPHPプロジェクトに適した複数の主流のアイデンティティプロバイダーをサポートします。