A Modern Image Storage on the Cloud
Budget: $30 – $250 AUD
this is a group assignment, I only need do part 3.3. and I can't upload files because it over 25 mb, what should I do with that?
for 3.3 it is the following: Authentication and Authorisation
Security is one of the most important aspects of developing cloud-first applications and when your appli- cation is publicly exposed, you need to ensure that your endpoints and resources are safeguarded against unauthorised access and malicious requests. AWS, via its Cognito service, provides an easy, secure, and centralised approach to protect your web application and its various resources from unauthorised access.
To leverage the AWS Cognito service, first you need to create a user pool that persists user credentials. Then you need to create and configure a client app that grants access to your application and/or other AWS services to query and use the user pool. Finally, you have two options to communicate with the AWS Cognito service and perform authentication and/or authorisation: 1) Use AWS Amplify JavaScript Library to bootstrap the authentication module of your application 2) Use AWS JavaScript SDK to access the user pool and identity provider(s) that you have defined earlier.
Your application should support the following workflow and features:
• Your application should have a login page that allows users to sign-up and sign-in. Upon successful authentication, the user should be able to upload images, submit queries, view query results, and sign out of the application. You can either use Hosted UI feature of Cognito to implement login and sign-up web pages or create your own version and call Cognito APIs. For each new account, you need to record user’s email address, first name, last name, and password. Cognito will take care of sending an email to new users and asking them to verify their email address and change their temporary password.
• (Optional feature) Detect whether a user is authenticated or not. If the user has not signed in, access to all pages/endpoints except the sign-up service needs to be blocked and the user should be redirected to “sign-up.html” page to register a new account. Uploading files to an S3 bucket, invoking Lambda functions to execute the business logic of your application, and accessing the database for data storage and retrieval, all require fine-grained access control permissions that you need to set up via IAM roles and appropriate policies (bonus marks).
• (Optional feature) you can also add federated authentication using AWS Cognito Identity Pools to your application (bonus marks). For this purpose, you need to create a Facebook or Google app that serves as an external identity provider and authenticates users on behalf of your application, then forwards authentication tokens to your application. Note that having external authentication providers in your project is not mandatory. Since federated authentication might be challenging, I strongly recommend you to finish the requirement of the assignment first; then if you have extra time, work on this feature.
for 3.3 it is the following: Authentication and Authorisation
Security is one of the most important aspects of developing cloud-first applications and when your appli- cation is publicly exposed, you need to ensure that your endpoints and resources are safeguarded against unauthorised access and malicious requests. AWS, via its Cognito service, provides an easy, secure, and centralised approach to protect your web application and its various resources from unauthorised access.
To leverage the AWS Cognito service, first you need to create a user pool that persists user credentials. Then you need to create and configure a client app that grants access to your application and/or other AWS services to query and use the user pool. Finally, you have two options to communicate with the AWS Cognito service and perform authentication and/or authorisation: 1) Use AWS Amplify JavaScript Library to bootstrap the authentication module of your application 2) Use AWS JavaScript SDK to access the user pool and identity provider(s) that you have defined earlier.
Your application should support the following workflow and features:
• Your application should have a login page that allows users to sign-up and sign-in. Upon successful authentication, the user should be able to upload images, submit queries, view query results, and sign out of the application. You can either use Hosted UI feature of Cognito to implement login and sign-up web pages or create your own version and call Cognito APIs. For each new account, you need to record user’s email address, first name, last name, and password. Cognito will take care of sending an email to new users and asking them to verify their email address and change their temporary password.
• (Optional feature) Detect whether a user is authenticated or not. If the user has not signed in, access to all pages/endpoints except the sign-up service needs to be blocked and the user should be redirected to “sign-up.html” page to register a new account. Uploading files to an S3 bucket, invoking Lambda functions to execute the business logic of your application, and accessing the database for data storage and retrieval, all require fine-grained access control permissions that you need to set up via IAM roles and appropriate policies (bonus marks).
• (Optional feature) you can also add federated authentication using AWS Cognito Identity Pools to your application (bonus marks). For this purpose, you need to create a Facebook or Google app that serves as an external identity provider and authenticates users on behalf of your application, then forwards authentication tokens to your application. Note that having external authentication providers in your project is not mandatory. Since federated authentication might be challenging, I strongly recommend you to finish the requirement of the assignment first; then if you have extra time, work on this feature.
Related categories:
Cloud