From fcd979e24317e89824c17b338497cc36681d4aeb Mon Sep 17 00:00:00 2001 From: Daniel Hougaard Date: Thu, 28 Aug 2025 17:21:48 +0200 Subject: [PATCH 1/4] feat(auth): oidc auth support --- infisical_sdk/resources/auth.py | 5 +-- .../resources/auth_methods/__init__.py | 1 + .../resources/auth_methods/oidc_auth.py | 36 +++++++++++++++++++ 3 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 infisical_sdk/resources/auth_methods/oidc_auth.py diff --git a/infisical_sdk/resources/auth.py b/infisical_sdk/resources/auth.py index 1117bc5..ece95c2 100644 --- a/infisical_sdk/resources/auth.py +++ b/infisical_sdk/resources/auth.py @@ -1,10 +1,11 @@ from infisical_sdk.infisical_requests import InfisicalRequests from infisical_sdk.resources.auth_methods import AWSAuth from infisical_sdk.resources.auth_methods import UniversalAuth - +from infisical_sdk.resources.auth_methods import OidcAuth from typing import Callable class Auth: def __init__(self, requests: InfisicalRequests, setToken: Callable[[str], None]): self.requests = requests self.aws_auth = AWSAuth(requests, setToken) - self.universal_auth = UniversalAuth(requests, setToken) \ No newline at end of file + self.universal_auth = UniversalAuth(requests, setToken) + self.oidc_auth = OidcAuth(requests, setToken) \ No newline at end of file diff --git a/infisical_sdk/resources/auth_methods/__init__.py b/infisical_sdk/resources/auth_methods/__init__.py index 151ae79..1437f84 100644 --- a/infisical_sdk/resources/auth_methods/__init__.py +++ b/infisical_sdk/resources/auth_methods/__init__.py @@ -1,2 +1,3 @@ from .aws_auth import AWSAuth from .universal_auth import UniversalAuth +from .oidc_auth import OidcAuth \ No newline at end of file diff --git a/infisical_sdk/resources/auth_methods/oidc_auth.py b/infisical_sdk/resources/auth_methods/oidc_auth.py new file mode 100644 index 0000000..24fac5b --- /dev/null +++ b/infisical_sdk/resources/auth_methods/oidc_auth.py @@ -0,0 +1,36 @@ +from infisical_sdk.api_types import MachineIdentityLoginResponse + +from typing import Callable +from infisical_sdk.infisical_requests import InfisicalRequests + +class OidcAuth: + def __init__(self, requests: InfisicalRequests, setToken: Callable[[str], None]): + self.requests = requests + self.setToken = setToken + + def login(self, identity_id: str, jwt: str) -> MachineIdentityLoginResponse: + """ + Login with OIDC Auth. + + Args: + identity_id (str): Your Machine Identity ID. + jwt (str): Your JWT. + + Returns: + Dict: A dictionary containing the access token and related information. + """ + + requestBody = { + "identityId": identity_id, + "jwt": jwt + } + + result = self.requests.post( + path="/api/v1/auth/oidc-auth/login", + json=requestBody, + model=MachineIdentityLoginResponse + ) + + self.setToken(result.data.accessToken) + + return result.data \ No newline at end of file From d1697ce109d55283a3a967f159c1143d881fd130 Mon Sep 17 00:00:00 2001 From: Daniel Hougaard Date: Thu, 28 Aug 2025 17:23:44 +0200 Subject: [PATCH 2/4] Update oidc_auth.py --- infisical_sdk/resources/auth_methods/oidc_auth.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infisical_sdk/resources/auth_methods/oidc_auth.py b/infisical_sdk/resources/auth_methods/oidc_auth.py index 24fac5b..7705eea 100644 --- a/infisical_sdk/resources/auth_methods/oidc_auth.py +++ b/infisical_sdk/resources/auth_methods/oidc_auth.py @@ -14,7 +14,7 @@ def login(self, identity_id: str, jwt: str) -> MachineIdentityLoginResponse: Args: identity_id (str): Your Machine Identity ID. - jwt (str): Your JWT. + jwt (str): Your OIDC JWT. Returns: Dict: A dictionary containing the access token and related information. From 25075a153b66a65c99a91e1f824348e1b209d1fc Mon Sep 17 00:00:00 2001 From: Daniel Hougaard <62331820+DanielHougaard@users.noreply.github.com> Date: Thu, 28 Aug 2025 17:30:01 +0200 Subject: [PATCH 3/4] Update infisical_sdk/resources/auth_methods/oidc_auth.py Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> --- infisical_sdk/resources/auth_methods/oidc_auth.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infisical_sdk/resources/auth_methods/oidc_auth.py b/infisical_sdk/resources/auth_methods/oidc_auth.py index 7705eea..266ef23 100644 --- a/infisical_sdk/resources/auth_methods/oidc_auth.py +++ b/infisical_sdk/resources/auth_methods/oidc_auth.py @@ -17,7 +17,7 @@ def login(self, identity_id: str, jwt: str) -> MachineIdentityLoginResponse: jwt (str): Your OIDC JWT. Returns: - Dict: A dictionary containing the access token and related information. + MachineIdentityLoginResponse: A response object containing the access token and related information. """ requestBody = { From 6bfa86777a0c4c00aba17bc135f167b9b27ecf2b Mon Sep 17 00:00:00 2001 From: Daniel Hougaard Date: Thu, 28 Aug 2025 17:30:58 +0200 Subject: [PATCH 4/4] Update __init__.py --- infisical_sdk/resources/auth_methods/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infisical_sdk/resources/auth_methods/__init__.py b/infisical_sdk/resources/auth_methods/__init__.py index 1437f84..d5eed91 100644 --- a/infisical_sdk/resources/auth_methods/__init__.py +++ b/infisical_sdk/resources/auth_methods/__init__.py @@ -1,3 +1,3 @@ from .aws_auth import AWSAuth from .universal_auth import UniversalAuth -from .oidc_auth import OidcAuth \ No newline at end of file +from .oidc_auth import OidcAuth