2026年8月8日

2026年8月8日

WordPressのAWS Cognitoとの連携方法

はじめに

ここでは、WordPressとAWSの認証サービスであるCognitoを連携させる方法について解説します。この連携により、WordPressサイトでユーザー管理やセキュアなログイン機能を提供することが可能になります。また、Cognitoを利用することで、ソーシャルアカウントによるサインオンやメール認証などの柔軟な認証オプションも利用できます。

症状・背景

このテーマが必要になる主な場面:

  • サイトのセキュリティを強化したい場合
  • ユーザー管理機能を高度化したい場合
  • 多様な認証方法を提供したい場合
  • AWSサービスとの統合を目指している場合

手順・設定方法

ステップ1: プロジェクトセットアップとCognitoアカウント作成

# AWS Management Consoleにログインし、IAMサービスから「新しい認証プロバイダ」をクリック
aws cognito-idp create-user-pool --pool-name myWordPressPool --alias-attributes email --auto-verified-attributes email

# ユーザープールのIDとアプリクライアント情報を取得
aws cognito-idp list-user-pools --max-results 10 | grep PoolId
aws cognito-idp create-user-pool-client --user-pool-id <USER_POOL_ID> --client-name wp_client --generate-secret

# WordPressサイトにCognitoプラグインをインストール
wp plugin install aws-cognito-identity-plugin --activate

ステップ2: CognitoとWordPressの連携設定

# AWS CognitoのユーザーPOOL IDとアプリクライアントID、シークレットコードを取得
aws cognito-idp describe-user-pool --user-pool-id <USER_POOL_ID> | grep ClientIds
aws cognito-idp list-users --user-pool-id <USER_POOL_ID>

# WordPress管理画面から「設定 > AWS Cognito」を開き、必要な情報を入力する
wp option update aws_cognito_identity_user_pool_id "<USER_POOL_ID>"
wp option update aws_cognito_identity_client_id "<CLIENT_ID>"
wp option update aws_cognito_identity_client_secret "<CLIENT_SECRET>"

# サイトのログインページをCognitoにリダイレクトさせる設定を行う
wp rewrite structure '/%postname%/'

ステップ3: 複数の認証方法とユーザー属性の管理

# Cognitoからソーシャルサインオンオプションを有効化する
aws cognito-idp update-user-pool --user-pool-id <USER_POOL_ID> --sms-authentication-message "Use this code to sign in: {####}"
aws cognito-idp update-user-pool --user-pool-id <USER_POOL_ID> --email-verification-message "Please click the link below to verify your email address."
aws cognito-idp update-user-pool --user-pool-id <USER_POOL_ID> --auto-verified-attributes email

# WordPressでCognitoのユーザー属性をカスタマイズする
wp option update aws_cognito_identity_attributes '{"email": true, "phone_number": false}'

ステップ4: 安全なアクセスと監視の設定

# CognitoのIP制限やMFAを有効化してセキュリティレベルを強化する
aws cognito-idp update-user-pool --user-pool-id <USER_POOL_ID> --mfa-configuration REQUIRED --device-verification-message-type SMS_MFA
aws cognito-idp update-user-pool --user-pool-id <USER_POOL_ID> --sms-authentication-rate-limit 5

# WordPressサイトのアクセスログを監視し、不正なアクティビティに注意する
wp config set WP_DEBUG_LOG true --add
wp plugin install query-monitor --activate

注意事項

  • ネットワーク接続の安定した環境で操作を行うこと。
  • AWSアカウントへの適切なアクセス権限を持つユーザーとしてログインすること。
  • セキュリティ上の理由から、秘密鍵やシークレットコードは必ず安全に保管すること。
  • パフォーマンスを考慮し、必要以上の認証オプションや属性の設定を行わないこと。

まとめ

1. セキュリティ: AWS Cognitoを利用することで、より高度なセキュリティ機能が利用可能になる。

2. ユーザーエクスペリエンス改善: 多様なサインオン方法を提供し、ユーザー体験を向上させることができる。

3. 統合性: WordPressとAWSサービスの間でデータや認証情報などを容易に共有できる。

4. 拡張性: Cognitoはスケーラブルであるため、サイトの成長に合わせて簡単に機能を追加・変更できる。

5. 管理効率化: ユーザー情報を一元管理することで、管理負荷が軽減される。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ