Mother of All Azure Demos (MOAAD)
This demo application is designed to take advantage of a wide variety of Azure services and features, including:
- Web URLs are shortened, and the application expands them when they are called. This is the basic functionality of any URL shortener
- Shortened URLs can be created by any user, logged in or not. If a logged-in user creates a link, access is logged each time it is called.
- Files can be uploaded and stored in Azure Blob Storage. A directory is created for each logged-in user, and files are stored there
- Uploads are processed directly from the web page to blob storage. Although the storage is marked "private", an upload request by the
user is processed by creation of a SAS token that grants temporary access to perform I/O operations against the private store. This allows
uploads to bypass the web server and interact directly with the blob storage endpoint.
- The application includes a console app project. This project is designed to interact with the web portal API in conjunction with Azure
Storage, to facilicate batch access to blob storage for uploads and downloads, using Shared Access Signatures to enable temporary
direct access to private storage. The result is an FTP-like experience, managed by the portal.
- A health check controller is located at /healthcheck. This will test the functionality of critical dependent services and return a
500 error if any issues are encountered. This is useful for Azure Traffic Manager (https://docs.microsoft.com/en-us/azure/traffic-manager/).
The page also includes a basic HTML report of service status.
- Short URLs are copied to Redis Cache for fast retrieval. As URLs are called and expanded, an audit log is appended.
To ensure performance, Storage Queues are used to queue the log entry, and a Web Job processes the queue and updates the log.
- User identity is managed by Azure Active Directory. The application that authenticates the site is enabled for multi tenancy. This
enables users from any Azure Active Directory tenant to enable the application in their directory. Users may also be enabled as B2B
guests in the host directory.
- Azure Active Directory B2C is also enabled. This enables registration of users via social media accounts, or via local accounts
managed by B2C. Using B2C for local accounts eliminates the requirement to manage identities via a local storage mechanism such as a
database - the entire identity lifecycle is outsourced to Azure Active Directory.
- Coming soon - PowerBI Embedded reports.