Maison  >  Article  >  développement back-end  >  Authentification de sécurité PHP avec AWS Cognito

Authentification de sécurité PHP avec AWS Cognito

PHPz
PHPzoriginal
2023-07-26 14:54:26777parcourir

Authentification de sécurité PHP avec AWS Cognito

AWS Cognito est un service d'authentification et d'autorisation des utilisateurs qui aide les développeurs à mettre en œuvre facilement des fonctions de gestion et d'authentification des utilisateurs pour les applications. Dans cet article, nous apprendrons comment utiliser AWS Cognito avec PHP pour implémenter la fonctionnalité de vérification de sécurité. Nous démontrerons les étapes spécifiques de mise en œuvre en écrivant des exemples de code.

Prérequis
Afin de réussir la mise en œuvre des fonctionnalités décrites dans cet article, vous devez remplir les prérequis suivants :

  1. Avoir accès à un compte AWS et à AWS CLI (Command Line Interface)
  2. Le service AWS Cognito a été créé ; configuré et activé.

Étape 1 : Créer un pool d'utilisateurs
Tout d'abord, nous devons créer un pool d'utilisateurs dans AWS Cognito pour stocker et gérer nos informations d'identification utilisateur et d'autres informations connexes. Vous pouvez utiliser l'AWS CLI ou la AWS Management Console pour créer un groupe d'utilisateurs. Voici un exemple de commande pour créer un groupe d'utilisateurs à l'aide de l'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

La commande ci-dessus créera un groupe d'utilisateurs nommé MyUserPool avec la vérification des e-mails activée et des mots de passe qui doivent correspondre aux règles spécifiées.

Étape 2 : Configurer le client du pool d'utilisateurs
Ensuite, nous devons créer un client du pool d'utilisateurs pour notre application afin de pouvoir utiliser ce client pour l'authentification des utilisateurs dans l'application. Vous pouvez utiliser l'AWS CLI ou la AWS Management Console pour créer un client de groupe d'utilisateurs. Voici un exemple de commande pour créer un client de pool d'utilisateurs à l'aide de l'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

La commande ci-dessus créera un client de pool d'utilisateurs nommé MyUserPoolClient et permettra l'authentification à l'aide d'un jeton d'actualisation, valable 30 jours.

Étape 3 : Code PHP pour implémenter l'authentification
Maintenant que nous avons créé le pool d'utilisateurs et le client du pool d'utilisateurs, nous allons ensuite écrire du code PHP pour implémenter la fonction d'authentification.

Tout d'abord, nous devons introduire le SDK AWS pour PHP. Vous pouvez l'installer via Composer, ou directement télécharger et importer le code source du kit AWS SDK pour PHP.

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

Ensuite, nous devons configurer les informations d'identification d'accès AWS Cognito. Vous pouvez trouver l'ID de votre pool d'utilisateurs, l'ID client de votre pool d'utilisateurs et les informations sur la région AWS dans AWS Management Console et remplacer les valeurs correspondantes dans le code ci-dessous.

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

Ensuite, nous devons instancier le CognitoIdentityProviderClient et définir la configuration appropriée.

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

Maintenant, nous sommes prêts à nous authentifier. L'extrait de code suivant montre comment s'authentifier auprès d'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);

Dans le code ci-dessus, nous utilisons la variable adminInitiateAuth 方法进行身份验证。您需要替换 'USERNAME''PASSWORD' 的值为您的实际用户名和密码。成功验证后,$result pour contenir le résultat de l'authentification.

Conclusion
Grâce à cet article, nous avons appris comment utiliser AWS Cognito pour implémenter la fonction de vérification de sécurité PHP. Nous faisons cela en créant un pool d'utilisateurs et un client de pool d'utilisateurs, puis en utilisant le code PHP pour l'authentification. AWS Cognito fournit un moyen simple mais puissant de gérer les informations d'identification des utilisateurs et de mettre en œuvre l'authentification, rendant nos applications plus sécurisées et plus fiables.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn