Integration actions for AWS ElasticLoadBalancingV2
Project description
Actions for AWS Elastic Load Balancing V2
---This package contains integration actions for ELBv2. See the README of the @aws-cdk/aws-elasticloadbalancingv2
library.
Cognito
ELB allows for requests to be authenticated against a Cognito user pool using
the AuthenticateCognitoAction
. For details on the setup's requirements,
read Prepare to use Amazon
Cognito.
Here's an example:
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
import aws_cdk.aws_cognito as cognito
import aws_cdk.aws_ec2 as ec2
import aws_cdk.aws_elasticloadbalancingv2 as elbv2
from aws_cdk.core import App, CfnOutput, Construct, Stack
import ...lib as actionsStack):
lb = elbv2.ApplicationLoadBalancer(self, "LB",
vpc=vpc,
internet_facing=True
)
user_pool = cognito.UserPool(self, "UserPool")
user_pool_client = cognito.UserPoolClient(self, "Client",
user_pool=user_pool,
# Required minimal configuration for use with an ELB
generate_secret=True,
auth_flows=AuthFlow(
user_password=True,
refresh_token=True
),
o_auth=OAuthSettings(
flows=OAuthFlows(
authorization_code_grant=True
),
scopes=[cognito.OAuthScope.EMAIL],
callback_urls=[f"https://{lb.loadBalancerDnsName}/oauth2/idpresponse"
]
)
)
cfn_client = user_pool_client.node.default_child
cfn_client.add_property_override("RefreshTokenValidity", 1)
cfn_client.add_property_override("SupportedIdentityProviders", ["COGNITO"])
user_pool_domain = cognito.UserPoolDomain(self, "Domain",
user_pool=user_pool,
cognito_domain=CognitoDomainOptions(
domain_prefix="test-cdk-prefix"
)
)
lb.add_listener("Listener",
port=443,
certificates=[certificate],
default_action=actions.AuthenticateCognitoAction(
user_pool=user_pool,
user_pool_client=user_pool_client,
user_pool_domain=user_pool_domain,
next=elbv2.ListenerAction.fixed_response(200,
content_type="text/plain",
message_body="Authenticated"
)
)
)
CfnOutput(self, "DNS",
value=lb.load_balancer_dns_name
)
app = App()
CognitoStack(app, "integ-cognito")
app.synth()
NOTE: this example seems incomplete, I was not able to get the redirect back to the Load Balancer after authentication working. Would love some pointers on what a full working setup actually looks like!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for aws-cdk.aws-elasticloadbalancingv2-actions-1.44.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4aebec47e26b861f626f7c2b885bcda74f814a102c5a578e20c5ab474fa0a62e |
|
MD5 | 11420e3a3f1892a4f4e0ec21b7d98fca |
|
BLAKE2b-256 | 6359505374f56ca88b877d290d6506f85bd19a3b2b7b96060dcb29a00260c813 |
Close
Hashes for aws_cdk.aws_elasticloadbalancingv2_actions-1.44.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e440204adbf6c694e99008f6aa3e9faf15f19b1a5f549e4d94764c7e0b5c766e |
|
MD5 | 4a8e594fc6801f758f71ac30fada6ade |
|
BLAKE2b-256 | e5b8999de64e691a9eb783a0adfbe5a2efb2a5fe6e59fe08a32a1e1080bc8319 |