Overview
Aurora integrates with OVH Cloud using OAuth 2.0 authorization code flow for a streamlined user experience, or legacy API credentials (Application Key, Application Secret, Consumer Key) for advanced users.What Aurora Can Access
Once authenticated, Aurora can discover and manage:- Public Cloud Instances: Virtual machines in OVH Public Cloud
- Managed Kubernetes: OVH Managed Kubernetes Service clusters
- Managed Databases: PostgreSQL, MySQL, MongoDB, Redis databases
- Load Balancers: OVH Load Balancer as a Service
- Container Registries: Private Docker registries
- Private Networks: vRack private networking
- Dedicated Servers: Bare metal servers (account-level)
- Object Storage: S3-compatible object storage
- Cloud Projects: OVH Public Cloud projects
Prerequisites
Public Cloud Project
At least one Public Cloud project for cloud resources (instances, Kubernetes, etc.)
Environment Variables
Configure these environment variables in Aurora’s.env file for OAuth flow:
Authentication Methods
Aurora supports two authentication methods for OVH:1. OAuth 2.0 Authorization Code Flow (Recommended)
User Experience: “Sign in with OVH” button - simple, 5 steps, ~30 seconds Benefits:- Streamlined user experience (no copy/paste)
- Automatic token refresh
- Secure credential storage
- Similar to “Sign in with Google”
- User clicks “Connect with OVH”
- Redirected to OVH login page
- User authorizes Aurora
- Redirected back with access + refresh tokens
- Tokens stored securely in Vault
2. API Credentials (Legacy/Advanced)
User Experience: Manual credential creation - 14 steps, ~2 minutes, 3 copy/paste operations Benefits:- Full control over permissions
- Works without OAuth app registration
- Suitable for automation scripts
- Create application at OVH developer portal
- Generate consumer key with specific permissions
- Validate consumer key via browser
- Copy credentials to Aurora
OAuth 2.0 Setup (Recommended)
OVH’s OAuth 2.0 authorization endpoints are working and stable as of January 2025, but are not yet officially documented by OVH. Third-party implementations confirm functionality.
Step 1: Create OAuth2 Application at OVH
Log in to OVH API Console
Go to the OVH API Console for your region:
Create OAuth2 Client
Provide:
- name:
Aurora Integration - description:
Aurora cloud management platform - flow:
AUTHORIZATION_CODE - callbackUrls:
["https://your-aurora-backend.com/ovh/oauth2/callback"]
Step 2: Connect Aurora
API Credentials Setup (Legacy)
Show Legacy API Credentials Setup
Show Legacy API Credentials Setup
Step 1: Create OVH Application
Go to OVH Token Creation Page
Visit the token creation page for your region:
Fill Application Details
- Application name:
Aurora - Application description:
Aurora cloud management - Validity:
Unlimited(recommended)
Save Credentials
Copy the following:
- Application Key (AK)
- Application Secret (AS)
- Consumer Key (CK) - after validation
Step 2: Connect Aurora with API Credentials
Enter Credentials
Provide:
- Endpoint:
ovh-eu,ovh-us, orovh-ca - Application Key: From Step 1
- Application Secret: From Step 1
- Consumer Key: From Step 1
OAuth 2.0 Flow Details
Authorization Request
Aurora generates an authorization URL:- State parameter: CSRF protection (validated on callback)
- PKCE: Proof Key for Code Exchange (S256 method)
- Scope:
all(full API access)
Token Exchange
After user authorization, OVH redirects to callback with authorization code:Token Refresh
Access tokens expire after 1 hour. Aurora automatically refreshes them:IAM Policy (Least Privilege)
For OAuth2 service accounts, Aurora can create IAM policies to restrict access:- Instances (VMs)
- Networking
- Storage volumes
- Kubernetes clusters
API Endpoints
Initiate OAuth2 Flow
OAuth2 Callback
Refresh Token
Validate API Credentials
Resource Discovery
Aurora discovers OVH resources using theovhcloud CLI:
Cloud Project Resources
- Instances:
ovhcloud cloud instance list --service-name PROJECT_ID - Kubernetes:
ovhcloud cloud kube list --service-name PROJECT_ID - Databases:
ovhcloud cloud database-service list --service-name PROJECT_ID - Load Balancers:
ovhcloud cloud loadbalancer list --service-name PROJECT_ID - Container Registries:
ovhcloud cloud container-registry list --service-name PROJECT_ID - Private Networks:
ovhcloud cloud network private list --service-name PROJECT_ID
Account-Level Resources
- Dedicated Servers:
ovhcloud baremetal list
Troubleshooting
Invalid OAuth State Token
Error: “Invalid or expired state token” Solution:- State tokens expire after 10 minutes
- Re-initiate the OAuth flow
- Ensure cookies are enabled (if using session storage)
- Check Redis connectivity for state cache
Token Exchange Failed
Error: “Token exchange failed: invalid_grant” Solution:- Authorization codes are single-use only
- If you refresh the callback page, you’ll get this error
- Re-initiate the OAuth flow to get a new authorization code
- Check that
redirect_urimatches exactly (including trailing slash)
No Access Token in Response
Error: “No access_token received from OVH” Solution:- Check OVH API status page for outages
- Verify OAuth2 client credentials are correct
- Ensure client has
AUTHORIZATION_CODEflow enabled - Review OVH API logs for detailed error messages
Refresh Token Not Provided
Warning: “No refresh token received - user may need to re-authorize after expiration” Context: OVH may not always provide refresh tokens. This is expected behavior. Solution:- Users will need to re-authenticate when access tokens expire (~1 hour)
- Consider requesting offline access scope if available
- For automation, use client credentials flow instead
Invalid API Credentials
Error: “Invalid credentials. Please check your consumer key and permissions.” Solution:- Verify Application Key, Application Secret, and Consumer Key are correct
- Ensure Consumer Key was validated via the OVH validation link
- Check that credentials haven’t expired (if time-limited)
- Verify permissions include
/meread access
IAM Policy Creation Failed
Error: “IAM policy creation error” Solution:- Ensure your account has IAM policy creation permissions
- Verify project ID is correct
- Check that the region matches your endpoint (EU, US, CA)
- Review OVH IAM documentation for policy format requirements
CLI Command Failures
Error: Resource discovery commands timeout or fail Solution:- Verify
ovhcloudCLI is installed and configured - Check network connectivity to OVH API endpoints
- Ensure service account has permissions for the resource type
- Try running the command manually to see detailed errors:
Security Considerations
- OAuth Tokens: Access and refresh tokens stored in Vault with encryption
- PKCE: Code challenge prevents authorization code interception
- State Parameter: CSRF protection for OAuth flow
- Client Secrets: Never expose in client-side code
- Token Expiration: Access tokens expire after 1 hour
- IAM Policies: Restrict service accounts to specific projects/actions
- Audit: Monitor OVH audit logs for actions performed by Aurora
OVH Regions
- ovh-eu: Europe (www.ovh.com)
- ovh-us: United States (us.ovhcloud.com)
- ovh-ca: Canada (ca.ovh.com)
Token Storage
OVH tokens are stored in Vault with:- Provider:
ovh - Endpoint: Region identifier (
ovh-eu,ovh-us,ovh-ca) - Access Token: Bearer token for API calls
- Refresh Token: Long-lived token for obtaining new access tokens (if provided)
- Client ID: Stored for IAM validation
- Expires At: Unix timestamp for token expiration
- Auth Method:
authorization_codeorapi_credentials
Next Steps
After connecting OVH:- Aurora will discover your OVH infrastructure
- View discovered resources in the Aurora dashboard
- Use Aurora’s AI agent to manage OVH resources
- Deploy applications to Managed Kubernetes clusters
- Manage VMs and databases across projects
- Monitor costs and optimize resource usage