Terraform의 AWS CognitoUserPool을 사용하여 Google 인증 가져오기
그래서 제 마음속의 "Cognito 대단하다!"증가함에 따라 이번에는 자주 있는 OAuth의 소셜 ID 로그인을 기반으로 Terraform을 사용해 보려고 합니다.
이번에 할 일
사전 준비
이것에 관해서는 금방 동그랗게 던지지만, 매우 알기 쉬운 반 방법 선생의 보도입니다.
Celient ID와 Celient Secret을 얻으려면 다음 글의 "Google 인증 설정"작업을 수행하십시오.
CognitoUserPool 만들기
다음은 Terraform을 사용하여 Cognito 사용자 수영장의 자원을 제작합니다.
요점만 발췌하고 모든 코드는 이곳의 창고를 참조하세요.
modules/auth/main.tf
resource "aws_cognito_user_pool" "main" {
name = "${var.prefix}-auth"
mfa_configuration = "OFF"
account_recovery_setting {
recovery_mechanism {
name = "verified_phone_number"
priority = 1
}
}
admin_create_user_config {
allow_admin_create_user_only = true
invite_message_template {
email_message = "{username}さん、あなたの初期パスワードは {####} です。初回ログインの後パスワード変更が必要です。"
email_subject = "${var.tags.Project}(開発環境)への招待"
sms_message = "{username}さん、あなたの初期パスワードは {####} です。初回ログインの後パスワード変更が必要です。"
}
}
# ユーザー名の他にemailでの認証を許可
alias_attributes = ["email"]
tags = var.tags
}
resource "aws_cognito_user_pool_domain" "main" {
# 今回独自ドメインは利用せず、 `ap-northeast-1.amazoncognito.com` のドメインを利用
domain = "test-cogn-social-login-bun"
user_pool_id = aws_cognito_user_pool.main.id
}
resource "aws_cognito_user_pool_client" "main" {
name = "${var.prefix}-client"
user_pool_id = aws_cognito_user_pool.main.id
generate_secret = true
# CallBackUrlにローカルで別途動かしているアプリケーションを指定
callback_urls = [
"http://localhost:8080/"
]
allowed_oauth_flows = ["code"]
explicit_auth_flows = [
"ALLOW_REFRESH_TOKEN_AUTH",
"ALLOW_USER_SRP_AUTH",
]
supported_identity_providers = [
"COGNITO",
"Google"
]
allowed_oauth_scopes = ["openid"]
allowed_oauth_flows_user_pool_client = true
}
resource "aws_cognito_identity_provider" "google_provider" {
user_pool_id = aws_cognito_user_pool.main.id
provider_name = "Google"
provider_type = "Google"
provider_details = {
authorize_scopes = "email"
client_id = var.google_client_id
client_secret = var.google_client_secret
}
attribute_mapping = {
email = "email"
username = "sub"
}
}
variables.tf에 변수 정보 기재특히 지정
google_client_id
과google_client_secret
를 잊지 마십시오.Google 인증 준비 과정에서 얻은 클라이언트 ID 및 클라이언트 기밀 정보를 저장하는
terraform.tfvars
라는 파일을 만들었습니다.(기밀 정보 때문에 Git 관리 대상에서 제외)
호스트 UI에서 확인
Terraform을 낮은 순서로 실행하여 Conngit 리소스를 생성합니다.
terraform init
terraform plan
terraform apply
AWS 관리 콘솔로 이동하여 호스트의 UI를 낮은 순서로 확인합니다.(2022년 3월 23일 현재 새 UI의 단계)
호스트의 UI 가 표시되어야 합니다. Google ID로 인증할 수 있는지 확인하십시오.
Reference
이 문제에 관하여(Terraform의 AWS CognitoUserPool을 사용하여 Google 인증 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/bun913/articles/cognito-google-auth텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)