Provider Management

Manage and interact with identity and cloud providers.

List Providers

Get all available providers.

GET /providers

Query Parameters

  • capability - Filter by capability (comma-separated): authenticator, authorizer, identities, notifications

Response

{
  "version": "1.0",
  "providers": {
    "aws": {
      "name": "Amazon Web Services",
      "description": "AWS cloud provider with IAM integration",
      "provider": "aws",
      "enabled": true
    },
    "gcp": {
      "name": "Google Cloud Platform",
      "description": "GCP with IAM and identity management",
      "provider": "gcp",
      "enabled": true
    }
  }
}

Get Provider Details

GET /provider/{provider}

Response

{
  "name": "Amazon Web Services",
  "description": "AWS cloud provider with IAM integration",
  "provider": "aws",
  "enabled": true
}

Get Provider Roles

List roles available through a provider.

GET /provider/{provider}/roles

Query Parameters

  • q - Filter roles by search term

Response

{
  "version": "1.0",
  "provider": "aws",
  "roles": [
    {
      "name": "ReadOnlyAccess",
      "arn": "arn:aws:iam::aws:policy/ReadOnlyAccess",
      "description": "Provides read-only access to AWS services"
    },
    {
      "name": "PowerUserAccess",
      "arn": "arn:aws:iam::aws:policy/PowerUserAccess",
      "description": "Provides full access except user management"
    }
  ]
}

Get Provider Permissions

List permissions available through a provider.

GET /provider/{provider}/permissions

Query Parameters

  • q - Filter permissions by search term

Response

{
  "version": "1.0",
  "provider": "aws",
  "permissions": [
    {
      "name": "ec2:DescribeInstances",
      "description": "Grants permission to describe EC2 instances"
    },
    {
      "name": "s3:GetObject",
      "description": "Grants permission to retrieve objects from S3"
    }
  ]
}

Authorize Provider Session

Initiate OAuth2 flow for a provider.

POST /provider/{provider}/authorizeSession

Request Body

{
  "scopes": ["email", "profile"],
  "state": "encoded_state_token",
  "redirect_uri": "https://localhost:8080/api/v1/auth/callback/aws"
}

Response

{
  "url": "https://provider.com/oauth/authorize?client_id=...&redirect_uri=...&state=...",
  "expires_in": 600
}