⚠️ 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.
- 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
Install from local development:
pip install -e .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)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())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}")Main class for handling agent authentication and OBO flows.
get_agent_token(scopes: Optional[List[str]] = None) -> OAuthToken: Get access token for the agentget_authorization_url(scopes: List[str], state: Optional[str] = None) -> Tuple[str, str]: Generate authorization URLget_obo_token(auth_code: str, agent_token: str, scopes: Optional[List[str]] = None) -> OAuthToken: Exchange auth code for user token
Configuration for AI agent credentials.
agent_id: str: Agent identifieragent_secret: str: Agent secret
- Python >= 3.10
httpx(for async HTTP)asgardeo(base SDK)
# Install dependencies
poetry install
# Build
poetry build