AWS Cognito を使用した PHP セキュリティ認証
AWS Cognito は、開発者がアプリケーションにユーザー管理および認証機能を簡単に実装できるようにするユーザー認証および認可サービスです。この記事では、AWS Cognito と PHP を使用してセキュリティ検証機能を実装する方法を学びます。コード例を作成して、具体的な実装手順を示します。
前提条件
この記事で説明されている機能を正常に実装するには、次の前提条件を満たす必要があります:
ステップ 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 サイトの他の関連記事を参照してください。