it-swarm.dev

Cloudformation Cognito - cara menyiapkan Pengaturan Klien Aplikasi, Domain, dan Identitas Federasi melalui templat SAM

Saya sudah memiliki templat cloudformation pool pengguna cognito saya berfungsi, dan memilikinya terintegrasi ke gateway api saya. Tapi entah bagaimana saya masih harus mengkonfigurasi secara manual pengaturan aplikasi klien, domain, dan identitas gabungan untuk memiliki portal login yang berfungsi untuk para pengguna. Saya telah mencari di sana-sini untuk solusi yang mungkin dalam mengotomatisasi ini, tetapi saya tidak bisa menemukan apa pun yang dekat dengannya.

Saya ingin mengotomatiskan konfigurasi pengaturan aplikasi klien, domain, dan identitas gabungan melalui cloudformation sam template sehingga saya tidak perlu melakukan ini secara manual.

Semua saran sangatlah diapresiasi. Terima kasih.

(lampiran diposting untuk info tambahan)

12
Jeff

Sepertinya tidak ada cara untuk memberikan Integrasi aplikasi -> Nama domain dan Federasi -> Penyedia identitas melalui CloudFormation.

Saya hanya menemukan referensi untuk User Pool Client (Pengaturan umum -> Klien aplikasi) tetapi tidak akan mengonfigurasi Integrasi aplikasi -> Pengaturan klien aplikasi.

Jika Anda perlu mengotomatisasi proses penyediaan Nama domain , Penyedia identitas dan Pengaturan klien aplikasi untuk kelompok pengguna , Anda dapat melakukannya dengan membuat skrip khusus (AWS CLI) atau Lambda (AWS SDK) yang harus dilakukan setelah penyebaran tumpukan.


PERBARUI

Lihatlah contoh luar biasa ( jawaban di bawah ) yang menunjukkan penggunaan CloudFormation Custom Resources dengan Lambda.

15
Michał Z.

Saya telah membuat dua sumber daya khusus CloudFormation untuk menerapkan pengaturan klien aplikasi Cognito dan nama domain. Dengan sumber daya ini, Anda dapat memiliki skrip seperti ini:

UserPoolTestClient:
  Type: 'AWS::Cognito::UserPoolClient'
  Properties:
    ClientName: UserPoolTestClient
    GenerateSecret: true
    UserPoolId: !Ref UserPoolTest
UserPoolTestClientSettings:
  Type: 'Custom::CognitoUserPoolClientSettings'
  Properties:
    ServiceToken: !GetAtt CloudFormationCognitoUserPoolClientSettings.Arn
    UserPoolId: !Ref UserPoolTest
    UserPoolClientId: !Ref UserPoolTestClient
    SupportedIdentityProviders:
      - COGNITO
    CallbackURL: 'https://www.Amazon.com'
    LogoutURL: 'https://www.google.com'
    AllowedOAuthFlowsUserPoolClient: true
    AllowedOAuthFlows:
      - code
    AllowedOAuthScopes:
      - openid
UserPoolTestDomain:
  Type: 'Custom::CognitoUserPoolDomain'
  Properties:
    ServiceToken: !GetAtt CloudFormationCognitoUserPoolDomain.Arn
    UserPoolId: !Ref UserPoolTest
    Domain: 'userpool-test-01'

Kode lengkapnya adalah di sini .

23
Rosberg Linhares

Saya ingin menambahkan solusi yang berbeda (disarankan oleh Mickael) karena CloudFormation rumit untuk diatur; baris perintah ini akan membuat domain Anda setelah tumpukan CloudFormation dibuat:

 aws cognito-idp create-user-pool-domain --domain test-domain --user-pool-id eu-west-1_xxxxxxxx 

Dalam penerapan otomatis Anda, Anda dapat menambahkan skrip yang mengatur domain Anda. Tidak sehebat semua yang ada di CF tetapi bekerja

0
Tibo