Cognitoユーザープールのcloudformationテンプレートは既に機能しており、APIゲートウェイに統合されています。しかし、どういうわけか、ユーザーの作業ログインポータルを使用するには、アプリクライアント設定、ドメイン、およびフェデレーションIDを手動で構成する必要があります。私はこれらを自動化するための可能な解決策をあちこち探していましたが、それに近いものを見つけることができないようです。
Cloudformation samテンプレートを介してアプリクライアント設定、ドメイン、およびフェデレーションIDの構成を自動化したいので、これらを手動で行う必要はありません。
どんな提案でも大歓迎です。ありがとうございました。
(追加情報のために添付された添付ファイル)
CloudFormation経由でアプリ統合->ドメイン名およびフェデレーション-> IDプロバイダーを提供する方法がないように見えます.
User Pool Client (General settings-> App clients)しかし、それは構成しませんアプリ統合->アプリクライアント設定。
ドメイン名 を提供するプロセスを自動化する必要がある場合、 IDプロバイダー =および アプリクライアント設定 ユーザープールの場合、実行する必要があるカスタムスクリプト(AWS CLI)またはLambda(AWS SDK)を作成することでこれを実行できますスタック展開後。
[〜#〜] update [〜#〜]
優れた例 ( 下記の回答 )を確認してください CloudFormation Customリソース Lambdaを使用。
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 です。
CloudFormationはセットアップが複雑であるため、別のソリューション(Mickaelが推奨)を追加します。このコマンドラインは、CloudFormationスタックが作成された後にドメインを作成します。
aws cognito-idp create-user-pool-domain --domain test-domain --user-pool-id eu-west-1_xxxxxxxx
自動展開では、ドメインを設定するスクリプトを追加できます。 CFのすべての機能ほど優れていませんが、機能します
私は、これらの正確な3つのリソースのソリューションを自分自身と、試してみたい他の人のためにロールバックしました。 https://github.com/cyrfer/cloudformation-custom-resource-provider