From 6c0975554d6f358ffbb3e61e71332d6bd0f4969c Mon Sep 17 00:00:00 2001 From: = Date: Thu, 27 Mar 2025 15:25:05 +0530 Subject: [PATCH] feat: added provider oidc payload in audit log event of oidc login --- backend/src/ee/services/audit-log/audit-log-types.ts | 1 + .../src/server/routes/v1/identity-oidc-auth-router.ts | 10 ++++++++-- .../identity-oidc-auth/identity-oidc-auth-service.ts | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/backend/src/ee/services/audit-log/audit-log-types.ts b/backend/src/ee/services/audit-log/audit-log-types.ts index eef11b8a6..1214cc5a0 100644 --- a/backend/src/ee/services/audit-log/audit-log-types.ts +++ b/backend/src/ee/services/audit-log/audit-log-types.ts @@ -968,6 +968,7 @@ interface LoginIdentityOidcAuthEvent { identityId: string; identityOidcAuthId: string; identityAccessTokenId: string; + oidcClaimsReceived: Record; }; } diff --git a/backend/src/server/routes/v1/identity-oidc-auth-router.ts b/backend/src/server/routes/v1/identity-oidc-auth-router.ts index 4f1f75f5c..4a7b66146 100644 --- a/backend/src/server/routes/v1/identity-oidc-auth-router.ts +++ b/backend/src/server/routes/v1/identity-oidc-auth-router.ts @@ -32,6 +32,8 @@ const IdentityOidcAuthResponseSchema = IdentityOidcAuthsSchema.pick({ caCert: z.string() }); +const MAX_OIDC_CLAIM_SIZE = 32_768; + export const registerIdentityOidcAuthRouter = async (server: FastifyZodProvider) => { server.route({ method: "POST", @@ -55,7 +57,7 @@ export const registerIdentityOidcAuthRouter = async (server: FastifyZodProvider) } }, handler: async (req) => { - const { identityOidcAuth, accessToken, identityAccessToken, identityMembershipOrg } = + const { identityOidcAuth, accessToken, identityAccessToken, identityMembershipOrg, oidcTokenData } = await server.services.identityOidcAuth.login({ identityId: req.body.identityId, jwt: req.body.jwt @@ -69,7 +71,11 @@ export const registerIdentityOidcAuthRouter = async (server: FastifyZodProvider) metadata: { identityId: identityOidcAuth.identityId, identityAccessTokenId: identityAccessToken.id, - identityOidcAuthId: identityOidcAuth.id + identityOidcAuthId: identityOidcAuth.id, + oidcClaimsReceived: + Buffer.from(JSON.stringify(oidcTokenData), "utf8").byteLength < MAX_OIDC_CLAIM_SIZE + ? oidcTokenData + : { payload: "Error: Payload exceeds 32KB, provided oidc claim not recorded in audit log." } } } }); diff --git a/backend/src/services/identity-oidc-auth/identity-oidc-auth-service.ts b/backend/src/services/identity-oidc-auth/identity-oidc-auth-service.ts index 0d0aa4504..d54a49f38 100644 --- a/backend/src/services/identity-oidc-auth/identity-oidc-auth-service.ts +++ b/backend/src/services/identity-oidc-auth/identity-oidc-auth-service.ts @@ -213,7 +213,7 @@ export const identityOidcAuthServiceFactory = ({ } ); - return { accessToken, identityOidcAuth, identityAccessToken, identityMembershipOrg }; + return { accessToken, identityOidcAuth, identityAccessToken, identityMembershipOrg, oidcTokenData: tokenData }; }; const attachOidcAuth = async ({