80 lines
2.8 KiB
Python
80 lines
2.8 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Test script to verify Microsoft Entra ID OAuth configuration
|
|
Run this to check if your OAuth settings are correct before deploying.
|
|
"""
|
|
|
|
import os
|
|
import requests
|
|
from authlib.integrations.requests_client import OAuth2Session
|
|
|
|
def test_oauth_config():
|
|
# Get configuration from environment
|
|
tenant_id = os.getenv('TENANT_ID')
|
|
client_id = os.getenv('CLIENT_ID')
|
|
client_secret = os.getenv('CLIENT_SECRET')
|
|
|
|
print("Testing Microsoft Entra ID OAuth Configuration")
|
|
print("=" * 50)
|
|
print(f"TENANT_ID: {tenant_id}")
|
|
print(f"CLIENT_ID: {client_id}")
|
|
print(f"CLIENT_SECRET: {'*' * len(client_secret) if client_secret else 'None'}")
|
|
print()
|
|
|
|
if not all([tenant_id, client_id, client_secret]):
|
|
print("❌ ERROR: Missing required environment variables!")
|
|
print("Make sure TENANT_ID, CLIENT_ID, and CLIENT_SECRET are set.")
|
|
return False
|
|
|
|
if tenant_id in ['your-tenant-id', 'YOUR_MICROSOFT_ENTRA_TENANT_ID']:
|
|
print("❌ ERROR: TENANT_ID is still set to default placeholder value!")
|
|
return False
|
|
|
|
if client_id in ['your-client-id', 'YOUR_MICROSOFT_ENTRA_CLIENT_ID']:
|
|
print("❌ ERROR: CLIENT_ID is still set to default placeholder value!")
|
|
return False
|
|
|
|
if client_secret in ['your-client-secret', 'YOUR_MICROSOFT_ENTRA_CLIENT_SECRET']:
|
|
print("❌ ERROR: CLIENT_SECRET is still set to default placeholder value!")
|
|
return False
|
|
|
|
# Test metadata URL
|
|
metadata_url = f'https://login.microsoftonline.com/{tenant_id}/v2.0/.well-known/openid_configuration'
|
|
print(f"Testing metadata URL: {metadata_url}")
|
|
|
|
try:
|
|
response = requests.get(metadata_url, timeout=10)
|
|
if response.status_code == 200:
|
|
print("✅ Metadata URL is accessible")
|
|
else:
|
|
print(f"❌ Metadata URL returned status {response.status_code}")
|
|
return False
|
|
except Exception as e:
|
|
print(f"❌ Error accessing metadata URL: {e}")
|
|
return False
|
|
|
|
# Test OAuth client creation
|
|
try:
|
|
client = OAuth2Session(
|
|
client_id=client_id,
|
|
client_secret=client_secret,
|
|
scope=['openid', 'email', 'profile']
|
|
)
|
|
print("✅ OAuth client created successfully")
|
|
except Exception as e:
|
|
print(f"❌ Error creating OAuth client: {e}")
|
|
return False
|
|
|
|
print()
|
|
print("🎉 OAuth configuration appears to be correct!")
|
|
print()
|
|
print("Next steps:")
|
|
print("1. Make sure your redirect URI is registered in Microsoft Entra:")
|
|
print(" https://yourdomain.com/auth")
|
|
print("2. Restart the application: sudo systemctl restart pdf-renamer")
|
|
print("3. Check the application logs for any remaining issues")
|
|
|
|
return True
|
|
|
|
if __name__ == '__main__':
|
|
test_oauth_config() |