現在の位置: ホーム> 最新記事一覧> Google Authenticatorの実装に関する完全なチュートリアルPHPで2要素検証

Google Authenticatorの実装に関する完全なチュートリアルPHPで2要素検証

gitbox 2025-06-27

Google Authenticatorとは何ですか?

Google Authenticatorは、Googleが起動する2要素認証ツールで、1回限りの検証コード(OTP)を生成することにより、アカウントにセキュリティの追加レイヤーを提供します。ログインするとき、ユーザーはユーザー名とパスワードを入力するだけでなく、モバイルデバイスによって生成された動的検証コードを入力する必要があり、アカウントの盗難のリスクを効果的に減らします。

この時間ベースのワンタイムパスワード(TOTP)メカニズムは、固定時間間隔内で検証コードを自動的に更新するため、攻撃者が検証コードを盗んだ場合でも攻撃者が再利用することが困難になります。

Google AuthenticatorをPHPに統合する方法

PHPにGoogle Authenticatorベースの認証機能を実装するには、対応するサードパーティライブラリに依存する必要があります。以下は、特定の実装手順です。

Google Authenticator Libraryをインストールします

まず、Composerを介してGoogle Authenticator関連の依存関係をインストールします。次のコンテンツをプロジェクトのcomposer.jsonファイルに追加し、インストールコマンドを実行します。

 
"require": {
    "google/authenticator": "^1.0"
}

インストールが完了した後、ライブラリを使用するためにコードに導入できます。

ユーザーキーを生成します

各ユーザーに一意のキーを生成することは、2要素認証を達成するための鍵です。ライブラリの方法は、次のように使用できます。

 
use Google\Authenticator\GoogleAuthenticator;

$ga = new GoogleAuthenticator();
$secret = $ga->generateSecret();

上記のコードは、 GenerateseCret()メソッドを介してセキュリティキーを作成します。これは、将来の1回限りの検証コードを生成および検証するために使用されます。

バインディングのためにQRコードを生成します

ユーザーが携帯電話にキーをバインドするように促進するために、QRコードリンクを生成し、ユーザーがGoogle Authenticatorを介してバインディングをスキャンできます。

 
$qrCodeUrl = $ga->getQRCodeUrl('My Website', $secret);

生成されたURLは、QRコード生成ツールで使用できます。これは、ユーザーがバインドするようにスキャンできるようにWebページに表示されます。最初のパラメーターはアプリケーション名で、2番目のパラメーターはユーザーキーです。

ユーザーが入力した検証コードを確認します

ユーザーが機密操作をログインまたは実行する場合、入力した検証コードが有効であることを確認する必要があります。

 
$isValid = $ga->checkCode($secret, $userInputCode);
if ($isValid) {
    // 検証は成功しました,アクセスを許可します
} else {
    // 検証に失敗しました,アクセスが拒否されました
}

ユーザーキーと入力された検証コードをCheckCode()メソッドに渡すだけで、検証を完了します。確認が渡された場合はtrueを返し、それ以外の場合はfalseを返します。

要約します

統合されたGoogle Authenticatorは、PHPアプリケーションに効果的な2要素認証メカニズムを提供します。ユーザー向けの一意のキーを生成し、QRコードのバインディングを表示し、動的検証コードを検証することにより、アカウントのセキュリティを大幅に強化できます。この方法はシンプルで信頼性が高く、ログインセキュリティの改善が必要なさまざまなPHPプロジェクトに適しています。