Skip to main content

Async Python SDK for Asgardeo AI agent authentication

Project description

Asgardeo AI SDK

⚠️ WARNING: Asgardeo AI SDK is currently under development, is not intended for production use, and therefore has no official support.

Python SDK for Asgardeo AI agent authentication and on-behalf-of (OBO) token flows.

Features

  • Agent Authentication: Authenticate AI agents using agent credentials
  • On-Behalf-Of (OBO) Tokens: Get user tokens on behalf of authenticated agents
  • Async/Await Support: Full async implementation using httpx
  • Token Management: Handle token exchange, refresh, and revocation
  • Authorization URLs: Generate authorization URLs for user authentication flows

Installation

Install from local development:

pip install -e .

Quick Start

Basic Setup

import asyncio
from asgardeo import AsgardeoConfig
from asgardeo_ai import AgentAuthManager, AgentConfig

# Configure Asgardeo connection
config = AsgardeoConfig(
    base_url="https://api.asgardeo.io/t/your-organization",
    client_id="your_client_id", 
    redirect_uri="https://your-app.com/callback",
    client_secret="your_client_secret"
)

# Configure AI agent
agent_config = AgentConfig(
    agent_id="your_agent_id",
    agent_secret="your_agent_secret"
)

# Create auth manager
auth_manager = AgentAuthManager(config, agent_config)

Agent Authentication

async def main():
    async with AgentAuthManager(config, agent_config) as auth_manager:
        # Get token for the AI agent
        agent_token = await auth_manager.get_agent_token(["openid", "profile"])
        print(f"Agent access token: {agent_token.access_token}")

asyncio.run(main())

User Authorization Flow

async def user_auth_flow():
    async with AgentAuthManager(config, agent_config) as auth_manager:
        # Generate authorization URL for user
        scopes = ["openid", "profile", "email"]
        auth_url, state = auth_manager.get_authorization_url(scopes)
        
        print(f"Redirect user to: {auth_url}")
        
        # After user authorizes and you receive the auth code:
        # auth_code = "received_from_callback"
        
        # Get OBO token for the user
        obo_token = await auth_manager.get_obo_token(auth_code, scopes, agent_token)
        # print(f"User access token: {obo_token.access_token}")

API Reference

AgentAuthManager

Main class for handling agent authentication and OBO flows.

Methods

  • get_agent_token(scopes: Optional[List[str]] = None) -> OAuthToken: Get access token for the agent
  • get_authorization_url(scopes: List[str], state: Optional[str] = None) -> Tuple[str, str]: Generate authorization URL
  • get_obo_token(auth_code: str, agent_token: str, scopes: Optional[List[str]] = None) -> OAuthToken: Exchange auth code for user token

AgentConfig

Configuration for AI agent credentials.

  • agent_id: str: Agent identifier
  • agent_secret: str: Agent secret

Requirements

  • Python >= 3.10
  • httpx (for async HTTP)
  • asgardeo (base SDK)

Development

# Install dependencies
poetry install

# Build
poetry build

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

asgardeo_ai-0.2.1.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

asgardeo_ai-0.2.1-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file asgardeo_ai-0.2.1.tar.gz.

File metadata

  • Download URL: asgardeo_ai-0.2.1.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.4 CPython/3.10.18 Linux/6.11.0-1018-azure

File hashes

Hashes for asgardeo_ai-0.2.1.tar.gz
Algorithm Hash digest
SHA256 4b9927adc8ff8053d82769e7255e3c91a091730e8efe6bf46bfd3eef90932938
MD5 501a8a814f5510e12d90ab2725e9b7f7
BLAKE2b-256 e9a10e7bbe196af8abda93d7ee895ce9706d296f8188c7482ff908748ed5841f

See more details on using hashes here.

File details

Details for the file asgardeo_ai-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: asgardeo_ai-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.4 CPython/3.10.18 Linux/6.11.0-1018-azure

File hashes

Hashes for asgardeo_ai-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 30abc3ed46885642b603165a36de51ec1661886fca3b549c3efd08ae3a6a8e3b
MD5 e98b002d7c0f59fe49a767c65734ebca
BLAKE2b-256 2ebe44de4cb10faf9eb6720cadcb2e3c604023b70d9ebf1019ca46226265fddb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page