web-dev-qa-db-ja.com

Cloudformation Cognito-SAMテンプレートを介してアプリクライアント設定、ドメイン、およびフェデレーションIDをセットアップする方法

Cognitoユーザープールのcloudformationテンプレートは既に機能しており、APIゲートウェイに統合されています。しかし、どういうわけか、ユーザーの作業ログインポータルを使用するには、アプリクライアント設定、ドメイン、およびフェデレーションIDを手動で構成する必要があります。私はこれらを自動化するための可能な解決策をあちこち探していましたが、それに近いものを見つけることができないようです。

Cloudformation samテンプレートを介してアプリクライアント設定、ドメイン、およびフェデレーションIDの構成を自動化したいので、これらを手動で行う必要はありません。

どんな提案でも大歓迎です。ありがとうございました。

(追加情報のために添付された添付ファイル)

21
Jeff

CloudFormation経由でアプリ統合->ドメイン名およびフェデレーション-> IDプロバイダーを提供する方法がないように見えます.

User Pool ClientGeneral settings-> App clients)しかし、それは構成しませんアプリ統合->アプリクライアント設定

ドメイン名 を提供するプロセスを自動化する必要がある場合、 IDプロバイダー =および アプリクライアント設定 ユーザープールの場合、実行する必要があるカスタムスクリプト(AWS CLI)またはLambda(AWS SDK)を作成することでこれを実行できますスタック展開後。


[〜#〜] update [〜#〜]

優れた例下記の回答 )を確認してください CloudFormation Customリソース Lambdaを使用。

23
Michał Z.

Cognitoアプリのクライアント設定とドメイン名を適用する2つのCloudFormationカスタムリソースを作成しました。これらのリソースを使用すると、次のようなスクリプトを作成できます。

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'

完全なコードは here です。

33

CloudFormationはセットアップが複雑であるため、別のソリューション(Mickaelが推奨)を追加します。このコマンドラインは、CloudFormationスタックが作成された後にドメインを作成します。

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

自動展開では、ドメインを設定するスクリプトを追加できます。 CFのすべての機能ほど優れていませんが、機能します

1
Tibo

私は、これらの正確な3つのリソースのソリューションを自分自身と、試してみたい他の人のためにロールバックしました。 https://github.com/cyrfer/cloudformation-custom-resource-provider

0
cyrf