最新のWebアプリケーションでは、ユーザー認証は重要な機能です。人気のある認証プロトコルとして、OAUTHを使用すると、ユーザーは既存のアカウント情報でログインし、ユーザーエクスペリエンスとセキュリティを改善できます。この記事では、PHPとOAuthプロトコルを使用してMicrosoftログインの統合を完了する方法について説明します。
OAUTHは、ユーザーがアカウントの資格情報がリークされないように保護しながら、サードパーティのアプリケーションを安全にログインできるように設計されたオープン標準認証プロトコルです。そのコアプロセスには、次の重要な役割が含まれます。
ユーザーは、ID認証と承認の対象であり、個人データを所有し、サードパーティのアプリケーションに承認するデータを決定します。
サードパーティのアプリケーションは、OAUTHプロトコルを介してユーザー認証を取得して、他のプラットフォーム上のユーザーのリソースにアクセスします。
承認されたサーバーは、ユーザーのIDを確認し、アクセスセキュリティとコンプライアンスを確保するために、アクセストークンをサードパーティアプリケーションに発行する責任があります。
リソースサーバーはユーザーデータを保存し、法的アクセストークンを保持しているサードパーティアプリケーションが対応するリソースにアクセスできるようにします。
Microsoft Loginは、ユーザーがMicrosoftアカウントを使用してサードパーティアプリケーションにログインできるOAUTHベースの認証サービスです。実装手順は次のとおりです。
まず、Microsoft Developer Portalにアプリケーションを登録して、Microsoft認証サーバーと対話するために使用されるクライアントIDとクライアントキーを取得する必要があります。
コールバックアドレス(URIをリダイレクト)を設定して、認証を完了した後にユーザーがアプリケーションに安全に戻ることができることを確認します。
資格情報を準備した後、PHPおよびOAUTHクライアントライブラリを使用して、認証要求を開始します。サンプルコードは次のとおりです。
$provider = new \League\OAuth2\Client\Provider\Microsoft([
'clientId' => 'YOUR_CLIENT_ID',
'clientSecret' => 'YOUR_CLIENT_SECRET',
'redirectUri' => 'YOUR_REDIRECT_URI',
]);
$authUrl = $provider->getAuthorizationUrl();
header('Location: ' . $authUrl);
exit;
上記のコードでは、Microsoft OAuthクライアントをインスタンス化し、認証URLを取得し、ユーザーをリダイレクトします。
ユーザーが承認された後、Microsoft Authentication Serverは承認コードを返します。アクセストークンを取得するには、応答を処理する必要があります。サンプルコードは次のとおりです。
$provider = new \League\OAuth2\Client\Provider\Microsoft([
'clientId' => 'YOUR_CLIENT_ID',
'clientSecret' => 'YOUR_CLIENT_SECRET',
'redirectUri' => 'YOUR_REDIRECT_URI',
]);
$code = $_GET['code'];
$token = $provider->getAccessToken('authorization_code', [
'code' => $code
]);
$accessToken = $token->getToken();
// ここでは、アクセストークンを使用して後続の操作を実行できます
Accessトークンを承認コードで交換した後、トークンを使用してMicrosoft APIを呼び出すか、その他の保護されたリソースにアクセスできます。
この記事では、PHPおよびOAUTHプロトコルに基づいてMicrosoftログイン統合を実装する方法を詳細に紹介します。 OAUTHおよびMicrosoft認証プロセスのコアコンセプトを実用的なコード例と組み合わせて理解することにより、Microsoftアカウントにアプリケーションに安全にアクセスし、ユーザーエクスペリエンスとシステムセキュリティを改善できます。