Admin Identity Providers
Identity Providers Management
The admin-identity-providers domain allows administrators to configure and manage external Identity Providers (IdP) for single sign-on (SSO). By integrating providers like Google or Microsoft, you can streamline user authentication across the Aimable Platform. This API enables you to create, validate, update, and remove identity configurations securely.
Key Concepts
- Identity Provider Config: A configuration object defining how an external IdP connects to the platform. Each config is identified by a unique
config_id. - Provider Type: Specifies the IdP technology. Supported values are
googleandmicrosoft. - Validation: Before activating a provider, you should validate the configuration to ensure credentials and discovery URLs are correct.
See Authentication & errors for request authentication and the standard error responses.
Common Workflows
- Create a new identity provider configuration.
- Validate the configuration to ensure connectivity.
- List providers to verify status.
- Update or Delete configurations as needed.
API Examples
Create an Identity Provider
Send a POST request to /api/v1/admin/identity-providers with the required provider details.
curl -X POST "https://api.aimable.com/api/v1/admin/identity-providers" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"provider_type": "google",
"display_name": "Corporate Google SSO",
"issuer": "https://accounts.google.com",
"discovery_url": "https://accounts.google.com/.well-known/openid-configuration",
"client_id": "1234567890-abcdef.apps.googleusercontent.com",
"allowed_scopes": ["openid", "email", "profile"],
"allowed_email_domains": ["example.com"],
"require_email_verified": true
}'import requests
url = "https://api.aimable.com/api/v1/admin/identity-providers"
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
payload = {
"provider_type": "google",
"display_name": "Corporate Google SSO",
"issuer": "https://accounts.google.com",
"discovery_url": "https://accounts.google.com/.well-known/openid-configuration",
"client_id": "1234567890-abcdef.apps.googleusercontent.com",
"allowed_scopes": ["openid", "email", "profile"],
"allowed_email_domains": ["example.com"],
"require_email_verified": True
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())Response (201): Returns the created configuration including the generated config_id.
Validate a Configuration
Before relying on a provider, validate it using the config_id returned during creation.
curl -X POST "https://api.aimable.com/api/v1/admin/identity-providers/cfg_12345/validate" \
-H "Authorization: Bearer <token>"Response (200): Indicates the provider settings are reachable and valid.
List Identity Providers
Retrieve all configured providers. You can filter by status if needed.
curl -X GET "https://api.aimable.com/api/v1/admin/identity-providers?status=active" \
-H "Authorization: Bearer <token>"Update and Delete
To modify settings, send a PATCH request to /api/v1/admin/identity-providers/{config_id}. Only include the fields you wish to change. To remove a provider entirely, send a DELETE request to the same path.
curl -X PATCH "https://api.aimable.com/api/v1/admin/identity-providers/cfg_12345" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"display_name": "Updated Corporate SSO"
}'When creating or updating a provider, ensure provider_type matches supported values (google, microsoft) and required fields like client_id and discovery_url are present.
Related Endpoints
- GET
/v1/admin/identity-providers— List Identity Providers - POST
/v1/admin/identity-providers— Create Identity Provider - GET
/v1/admin/identity-providers/{config_id}— Get Identity Provider - PATCH
/v1/admin/identity-providers/{config_id}— Update Identity Provider - DELETE
/v1/admin/identity-providers/{config_id}— Delete Identity Provider - POST
/v1/admin/identity-providers/{config_id}/validate— Validate Identity Provider