(howto-auth-awscognito)= # Authenticate using AWS Cognito ```{warning} This documentation has not been updated recently, and a major version of OAuthenticator has been released since it was. Due to that, please only use this _as a complement_ to the official [OAuthenticator documentation]. [OAuthenticator documentation]: https://oauthenticator.readthedocs.io/en/latest/tutorials/provider-specific-setup/providers/generic.html#setup-for-aws-cognito Going onwards, the goal is to ensure we have good documentation in the OAuthenticator project and reference that instead of maintaining similar documentation in this project also. ``` The **AWS Cognito Authenticator** lets users log into your JupyterHub using cognito user pools. To do so, you'll first need to register and configure a cognito user pool and app, and then provide information about this application to your `tljh` configuration. ## Create an AWS Cognito application 1. Create a user pool [Getting Started with User Pool](https://docs.aws.amazon.com/cognito/latest/developerguide/getting-started-with-cognito-user-pools.html). When you have completed creating a user pool, app, and domain you should have the following settings available to you: - **App client id**: From the App client page - **App client secret** From the App client page - **Callback URL** This should be the domain you are hosting you server on: ``` http(s):///hub/oauth_callback ``` - **Signout URL**: This is the landing page for a user when they are not logged on: ``` http(s):// ``` - **Auth Domain** Create an auth domain e.g. \: ``` https://<.auth.eu-west-1.amazoncognito.com ``` ## Install and configure an AWS EC2 Instance with userdata By adding following script to the ec2 instance user data you should be able to configure the instance automatically, replace relevant placeholders: ```bash #!/bin/bash ############################################## # Ensure tljh is up to date ############################################## curl -L https://tljh.jupyter.org/bootstrap.py \ | sudo python3 - \ --admin insightadmin ############################################## # Setup AWS Cognito OAuthenticator ############################################## echo > /opt/tljh/config/jupyterhub_config.d/awscognito.py <