mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-08 23:58:34 +00:00
* feat: support oauth2 config for authentication * refactor: improve OAuth2 settings management The CLI now supports seamless integration with other authentication providers, since the client_id, issue, domain are now manage by the user * feat: support okta Device Authorization flow * chore: resolve linter issues * test: fix tests * test: adding tests for auth providers * test: fix broken test * refator: adding WorkOS paramenters as default settings auth * chore: improve oauth2 attributes description * refactor: simplify WorkOS getting values * fix: ensure Auth0 parameters is set when overrinding default auth provider * chore: remove TODO Auth0 no longer provides default values --------- Co-authored-by: Heitor Carvalho <heitor.scz@gmail.com>
26 lines
873 B
Python
26 lines
873 B
Python
from crewai.cli.authentication.providers.base_provider import BaseProvider
|
|
|
|
class WorkosProvider(BaseProvider):
|
|
def get_authorize_url(self) -> str:
|
|
return f"https://{self._get_domain()}/oauth2/device_authorization"
|
|
|
|
def get_token_url(self) -> str:
|
|
return f"https://{self._get_domain()}/oauth2/token"
|
|
|
|
def get_jwks_url(self) -> str:
|
|
return f"https://{self._get_domain()}/oauth2/jwks"
|
|
|
|
def get_issuer(self) -> str:
|
|
return f"https://{self._get_domain()}"
|
|
|
|
def get_audience(self) -> str:
|
|
return self.settings.audience or ""
|
|
|
|
def get_client_id(self) -> str:
|
|
assert self.settings.client_id is not None, "Client ID is required"
|
|
return self.settings.client_id
|
|
|
|
def _get_domain(self) -> str:
|
|
assert self.settings.domain is not None, "Domain is required"
|
|
return self.settings.domain
|