Swimlanes.io is a free webapp for making sequence diagrams. You simply edit the text on the left and the diagram is updated in real time. You can download your sequence diagrams as images or distribute with a link.
Title: Auth Proxy - Azure Scenario Browser --> Proxy: `example.com/account` Proxy --> Browser: `/account` is configured as an authenticated path, redirect to IdP Browser --> Azure AD: Authenticate user Azure AD -> Browser: User was authenticated Browser -> Proxy: `example.com/.auth/logincallback` Proxy -> Browser: Set session cookie, redirect back to originally requested URL Browser -> Proxy: `example.com/account` Proxy -> Backend App: `example.com/account` group: Backend App uses proxy's "Forward" API to call Microsoft Graph on behalf of the user Backend App -> Proxy: `example.com/.auth/api/forward` Proxy -> Azure AD: Get access token for Graph note: The access token could already have been cached from initial login, could be retrieved using a refresh token acquired during initial login, or (worst case) if all else fails the proxy returns a redirect URL back to the backend app to trigger an interactive flow to acquire the tokens. Azure AD -> Proxy: Access token (user) Proxy -> Microsoft Graph: `graph.microsoft.com/v1.0/me` note: The proxy attaches the access token for the user on the request itself; the backend app never even *sees* the token. Microsoft Graph -> Proxy: Returns user details Proxy -> Backend App: Returns user details end Backend App -> Proxy: HTML response with user information from Microsoft Graph Proxy -> Browser: HTML response with user information from Microsoft Graph ...: Browser -> Proxy: `example.com/shoppingcart` Proxy -> Backend App: `example.com/shoppingcart` group: Backend App uses proxy's "Token" API to get access token for SQL Database Backend App -> Proxy: `example.com/.auth/api/token` Proxy -> Azure AD: Get Managed Identity access token for SQL Database Azure AD -> Proxy: Access token (app) Proxy -> Backend App: Access token (app) end Backend App -> SQL Database: `SELECT * FROM ShoppingCart WHERE UserId=@UserId` note: Backend App attaches the access token of the app to call SQL Database SQL Database -> Backend App: Returns shopping cart details Backend App -> Proxy: HTML response with shopping cart information from SQL Database Proxy -> Browser: HTML response with shopping cart information from SQL Database