ホームページ  >  記事  >  バックエンド開発  >  AWS Cognito を使用した PHP セキュリティ認証

AWS Cognito を使用した PHP セキュリティ認証

PHPz
PHPzオリジナル
2023-07-26 14:54:26777ブラウズ

AWS Cognito を使用した PHP セキュリティ認証

AWS Cognito は、開発者がアプリケーションにユーザー管理および認証機能を簡単に実装できるようにするユーザー認証および認可サービスです。この記事では、AWS Cognito と PHP を使用してセキュリティ検証機能を実装する方法を学びます。コード例を作成して、具体的な実装手順を示します。

前提条件
この記事で説明されている機能を正常に実装するには、次の前提条件を満たす必要があります:

  1. AWS アカウントと AWS CLI (コマンド) にアクセスできることline インターフェイス) ;
  2. AWS Cognito サービスが設定され、アクティブ化されました。

ステップ 1: ユーザープールを作成する
まず、ユーザー認証情報やその他の関連情報を保存および管理するために、AWS Cognito でユーザープールを作成する必要があります。 AWS CLI または AWS マネジメントコンソールを使用してユーザープールを作成できます。以下は、AWS CLI を使用してユーザー プールを作成するコマンドの例です:

aws cognito-idp create-user-pool --pool-name MyUserPool --auto-verified-attributes email --policies PasswordPolicies=RequiredLength=8,RequireUppercase=true,RequireLowercase=true,RequireNumbers=true,RequireSymbols=true --schema Name=email,AttributeDataType=Email:STRING,Required=true,Name=phone_number,AttributeDataType=Number:STRING,Required=false

上記のコマンドは、電子メール検証が有効で、指定されたルールに一致する必要があるパスワードを持つ MyUserPool という名前のユーザー プールを作成します。

ステップ 2: ユーザー プール クライアントをセットアップする (ユーザー プール クライアント)
次に、アプリケーションでクライアントを使用できるように、アプリケーションのユーザー プール クライアントを作成する必要があります。 AWS CLI または AWS マネジメントコンソールを使用して、ユーザープールクライアントを作成できます。以下は、AWS CLI を使用してユーザープールクライアントを作成するコマンドの例です:

aws cognito-idp create-user-pool-client --user-pool-id YOUR_USER_POOL_ID --client-name MyUserPoolClient --no-generate-secret --explicit-auth-flows ALLOW_REFRESH_TOKEN_AUTH --refresh-token-validity 30

上記のコマンドは、MyUserPoolClient という名前のユーザープールクライアントを作成し、30 日間有効なリフレッシュトークンを使用した認証を許可します。

ステップ 3: 認証を実装するための PHP コード
ユーザー プールとユーザー プール クライアントを作成したので、認証機能を実装するための PHP コードを作成します。

まず、AWS SDK for PHP を導入する必要があります。 Composer を介してインストールすることも、AWS SDK for PHP のソースコードを直接ダウンロードしてインポートすることもできます。

require 'vendor/autoload.php'; // 引入 AWS SDK for PHP 的自动加载文件
use AwsCognitoIdentityProviderCognitoIdentityProviderClient;

次に、AWS Cognito アクセス認証情報を構成する必要があります。 AWS マネジメントコンソールでユーザープール ID、ユーザープールクライアント ID、および AWS リージョン情報を見つけて、以下のコード内の対応する値を置き換えることができます。

$poolId = 'YOUR_USER_POOL_ID';
$clientId = 'YOUR_USER_POOL_CLIENT_ID';
$region = 'YOUR_AWS_REGION';

次に、CognitoIdentityProviderClient をインスタンス化し、対応する構成を設定する必要があります。

$client = new CognitoIdentityProviderClient([
    'version' => 'latest',
    'region' => $region
]);
$client->setCredentials([
    'key' => 'YOUR_AWS_ACCESS_KEY_ID',
    'secret' => 'YOUR_AWS_SECRET_ACCESS_KEY'
]);

これで、認証の準備が整いました。次のコードスニペットは、AWS Cognito で認証する方法を示しています。

$result = $client->adminInitiateAuth([
    'UserPoolId' => $poolId,
    'ClientId' => $clientId,
    'AuthFlow' => 'ADMIN_NO_SRP_AUTH',
    'AuthParameters' => [
        'USERNAME' => 'testuser@example.com',
        'PASSWORD' => 'P@ssw0rd'
    ]
]);
var_dump($result);

上記のコードでは、認証に adminInitiateAuth メソッドを使用します。 'USERNAME''PASSWORD' の値を実際のユーザー名とパスワードに置き換える必要があります。認証が成功すると、$result 変数に認証結果が含まれます。

結論
この記事では、AWS Cognito を使用して PHP セキュリティ検証機能を実装する方法を学びました。これを行うには、ユーザー プールとユーザー プール クライアントを作成し、認証に PHP コードを使用します。 AWS Cognito は、ユーザー認証情報を管理し、認証を実装するためのシンプルかつ強力な方法を提供し、アプリケーションの安全性と信頼性を高めます。

以上がAWS Cognito を使用した PHP セキュリティ認証の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。