azure-setup-guide
Research and generate Azure deployment guide with EasyAuth (Google + Facebook) and CosmosDB. This skill searches for current documentation and screenshots to produce an up-to-date setup guide at .docs/azure-setup-guide.md.
When & Why to Use This Skill
This Claude skill automates the creation of comprehensive, up-to-date Azure deployment guides by performing real-time research on the latest cloud documentation. It specializes in configuring Azure App Service with EasyAuth (supporting Google and Facebook providers) and CosmosDB, ensuring that all CLI commands, Portal navigation paths, and authentication flows reflect the most current Azure environment.
Use Cases
- Setting up a new Azure environment for web applications that require integrated social authentication and NoSQL databases.
- Updating internal deployment runbooks and SOPs after major Azure Portal UI updates or CLI syntax changes.
- Streamlining developer onboarding by generating project-specific, verified deployment manuals in Markdown format.
- Validating cloud infrastructure configurations against the latest 2024-2025 Azure best practices and security standards.
| name | azure-setup-guide |
|---|---|
| description | Research and generate Azure deployment guide with EasyAuth (Google + Facebook) and CosmosDB. This skill searches for current documentation and screenshots to produce an up-to-date setup guide at .docs/azure-setup-guide.md. |
Azure Setup Guide Skill
This skill researches and generates a comprehensive Azure deployment guide for the finans application. It actively searches for the latest documentation to ensure instructions are current.
Stack Components
- Azure App Service (Free F1 tier preferred)
- EasyAuth (Azure App Service Authentication)
- Google OAuth login
- Facebook Login
- Azure CosmosDB (NoSQL database)
Credentials Location
OAuth credentials are stored in backend/.env:
GOOGLE_CLIENT_ID/GOOGLE_CLIENT_SECRETFACEBOOK_APP_ID/FACEBOOK_APP_SECRETCOSMOS_DB_ENDPOINT/COSMOS_DB_KEY
Reference these when configuring EasyAuth instead of creating new credentials.
When to Use
Use this skill when:
- Setting up a new Azure environment for finans
- Updating deployment documentation after Azure Portal changes
- Verifying current setup steps against latest Azure UI
- Onboarding new developers who need deployment guidance
Workflow
Phase 1: Research Current Documentation
Search for the latest setup procedures:
Azure App Service Authentication (EasyAuth)
- Search: "Azure App Service authentication 2024 2025 configure Google Facebook"
- Search: "Azure EasyAuth setup guide latest"
- Look for Azure Portal UI screenshots and current menu paths
Google OAuth Configuration
- Search: "Google Cloud Console OAuth setup 2024 2025"
- Search: "Google OAuth web application redirect URI Azure"
- Verify current Google Cloud Console menu structure
Facebook Login Configuration
- Search: "Facebook Developer Portal app setup 2024 2025"
- Search: "Facebook Login OAuth redirect URI configuration"
- Verify current Facebook Developer Portal menu structure
Azure CosmosDB Setup
- Search: "Azure CosmosDB create database container 2024 2025"
- Search: "CosmosDB Node.js SDK connection setup"
- Verify current Portal paths and CLI commands
Azure CLI Commands
- Search: "az webapp auth update syntax 2024"
- Search: "az cosmosdb create CLI 2024"
- Verify command flags haven't changed
Phase 2: Compile Guide
After research, write the guide to .docs/azure-setup-guide.md with:
- Prerequisites section - Azure CLI, accounts needed
- Resource Group creation
- App Service Plan - Free F1 tier
- Web App creation
- CosmosDB setup - Account, database, containers (users, portfolios)
- Google OAuth setup - Step-by-step with current menu paths
- Facebook Login setup - Step-by-step with current menu paths
- EasyAuth configuration - CLI and Portal methods
- Environment variables - Connection strings, secrets
- Deployment steps - Build, package, deploy
- Testing section - Verify auth URLs work
- Troubleshooting - Common issues and fixes
- Cleanup commands - Delete resources when done
Phase 3: Verification
After writing the guide:
- Confirm all CLI commands use current syntax
- Verify Portal menu paths match latest Azure UI
- Include both CLI and Portal alternatives where possible
- Note any recent changes from previous guide versions
Base Template
Use this as the foundation, updating with researched information:
Finans App - Azure Deployment Guide
Stack: App Service + EasyAuth + Google/Facebook Login + CosmosDB Tier: Free (F1) - suitable for development and testing
Prerequisites
- Azure CLI installed and logged in (
az login) - Azure subscription with Contributor access
- Google Cloud Console account
- Facebook Developer account
- Node.js 20.x LTS
Verify Azure login:
az account show --query "{Name:name, SubscriptionId:id}" -o table
Step 1: Create Resource Group
az group create --name finans-rg --location norwayeast
Step 2: Create App Service Plan (Free Tier)
az appservice plan create \
--name finans-plan \
--resource-group finans-rg \
--location norwayeast \
--sku F1 \
--is-linux
Free Tier Limits:
- 1 GB storage
- Shared compute
- No custom domains or SSL
- Good for development/testing
Step 3: Create Web App
az webapp create \
--name finans \
--resource-group finans-rg \
--plan finans-plan \
--runtime "NODE|20-lts"
Get app URL:
az webapp show --name finans --resource-group finans-rg --query defaultHostName -o tsv
Step 4: Create CosmosDB Account
4.1 Create Account (Serverless - Cost Effective)
az cosmosdb create \
--name finans-cosmos \
--resource-group finans-rg \
--locations regionName=norwayeast \
--capabilities EnableServerless \
--default-consistency-level Session
4.2 Create Database
az cosmosdb sql database create \
--account-name finans-cosmos \
--resource-group finans-rg \
--name finans-db
4.3 Create Containers
Users container (partition key: /id):
az cosmosdb sql container create \
--account-name finans-cosmos \
--resource-group finans-rg \
--database-name finans-db \
--name users \
--partition-key-path /id
Portfolios container (partition key: /userId):
az cosmosdb sql container create \
--account-name finans-cosmos \
--resource-group finans-rg \
--database-name finans-db \
--name portfolios \
--partition-key-path /userId
4.4 Get Connection String
az cosmosdb keys list \
--name finans-cosmos \
--resource-group finans-rg \
--type connection-strings \
--query "connectionStrings[0].connectionString" \
-o tsv
Step 5: Configure Google OAuth
[RESEARCH CURRENT STEPS - Google Cloud Console menu structure may have changed]
- Navigate to Google Cloud Console → APIs & Services → Credentials
- Create OAuth consent screen (External, app name: finans)
- Create OAuth 2.0 Client ID:
- Type: Web application
- Redirect URI:
https://finans.azurewebsites.net/.auth/login/google/callback
- Save Client ID and Client Secret
Step 6: Configure Facebook Login
[RESEARCH CURRENT STEPS - Facebook Developer Portal menu structure may have changed]
- Navigate to developers.facebook.com → My Apps → Create App
- Select app type: Consumer
- Add Facebook Login product
- Configure:
- Site URL:
https://finans.azurewebsites.net - Valid OAuth Redirect URI:
https://finans.azurewebsites.net/.auth/login/facebook/callback
- Site URL:
- Set Privacy Policy URL
- Switch app to Live mode
- Save App ID and App Secret
Step 7: Enable EasyAuth
CLI Method
# Enable authentication
az webapp auth update \
--name finans \
--resource-group finans-rg \
--enabled true \
--unauthenticated-client-action RedirectToLoginPage \
--token-store true
# Add Google provider
az webapp auth google update \
--name finans \
--resource-group finans-rg \
--client-id {GOOGLE_CLIENT_ID} \
--client-secret {GOOGLE_CLIENT_SECRET} \
--yes
# Add Facebook provider
az webapp auth facebook update \
--name finans \
--resource-group finans-rg \
--app-id {FACEBOOK_APP_ID} \
--app-secret {FACEBOOK_APP_SECRET} \
--yes
Portal Method
[RESEARCH CURRENT PORTAL PATH - Azure Portal UI may have changed]
- Azure Portal → App Services → finans → Authentication
- Add identity provider → Google
- Add identity provider → Facebook
- Configure unauthenticated access
Step 8: Configure App Settings
az webapp config appsettings set \
--name finans \
--resource-group finans-rg \
--settings \
COSMOS_DB_ENDPOINT="https://finans-cosmos.documents.azure.com:443/" \
COSMOS_DB_KEY="{PRIMARY_KEY}" \
COSMOS_DB_DATABASE="finans-db" \
NODE_ENV="production"
Step 9: Deploy Application
Build & Package
pnpm --filter frontend build
pnpm --filter backend build
Deploy
az webapp deploy \
--name finans \
--resource-group finans-rg \
--src-path deploy.zip \
--type zip
Step 10: Verify Deployment
Test URLs:
- App:
https://finans.azurewebsites.net - Google login:
https://finans.azurewebsites.net/.auth/login/google - Facebook login:
https://finans.azurewebsites.net/.auth/login/facebook - User info:
https://finans.azurewebsites.net/.auth/me - Logout:
https://finans.azurewebsites.net/.auth/logout
Troubleshooting
Common Issues
"Reply URL does not match"
- Check redirect URI matches exactly including trailing slash
"/.auth/me returns null"
- User not logged in or session expired
- Check AppServiceAuthSession cookie
Facebook app not working
- Ensure app is in Live mode (not Development)
- Privacy Policy URL must be accessible
View Logs
az webapp log tail --name finans --resource-group finans-rg
Cleanup
Delete all resources:
az group delete --name finans-rg --yes --no-wait
Output Requirements
After completing research and compilation:
- Create
.docs/directory if needed - Write complete guide to
.docs/azure-setup-guide.md - Report any steps that couldn't be verified
- Note any significant changes from previous documentation
- Confirm file creation with path
Notes
- Always prefer free tier options where available
- Include both CLI and Portal methods
- Use norwayeast region for GDPR compliance
- Serverless CosmosDB for cost efficiency