feat(infisical-pg): completed saml integration

This commit is contained in:
Akhil Mohan
2024-01-27 12:38:23 +05:30
parent 55f1392faf
commit bfaf87c4c2
6 changed files with 19 additions and 8 deletions
@@ -15,7 +15,7 @@ export async function up(knex: Knex): Promise<void> {
t.string("encryptedIssuer");
t.string("issuerTag");
t.string("issuerIV");
t.string("encryptedCert");
t.text("encryptedCert");
t.string("certIV");
t.string("certTag");
t.timestamps(true, true, true);
+5 -6
View File
@@ -1,6 +1,7 @@
import { Authenticator } from "@fastify/passport";
import fastifySession from "@fastify/session";
import { MultiSamlStrategy } from "@node-saml/passport-saml";
import { FastifyRequest } from "fastify";
import { z } from "zod";
import { SamlConfigsSchema } from "@app/db/schemas";
@@ -55,13 +56,11 @@ export const registerSamlRouter = async (server: FastifyZodProvider) => {
samlConfig.audience = `spn:${ssoConfig.issuer}`;
}
}
req.ssoConfig = ssoConfig;
(req as unknown as FastifyRequest).ssoConfig = ssoConfig;
done(null, samlConfig);
}
},
async (req, profile, cb) => {
console.log(req.ssoConfig);
console.log(profile);
try {
const serverCfg = server.services.superAdmin.getServerCfg();
if (!profile) throw new BadRequestError({ message: "Missing profile" });
@@ -75,8 +74,8 @@ export const registerSamlRouter = async (server: FastifyZodProvider) => {
lastName: profile.lastName as string,
isSignupAllowed: Boolean(serverCfg.allowSignUp),
relayState: (req.body as { RelayState?: string }).RelayState,
authProvider: req.ssoConfig.authProvider,
orgId: req.ssoConfig.orgId
authProvider: (req as unknown as FastifyRequest).ssoConfig?.authProvider as string,
orgId: (req as unknown as FastifyRequest).ssoConfig?.orgId as string
});
cb(null, { isUserCompleted, providerAuthToken });
} catch (error) {
@@ -115,7 +114,7 @@ export const registerSamlRouter = async (server: FastifyZodProvider) => {
server.route({
url: "/saml2/:ssoIdentifier",
method: "GET",
method: "POST",
schema: {
params: z.object({
ssoIdentifier: z.string().trim()
+2
View File
@@ -2,6 +2,7 @@ import type { FastifyCookieOptions } from "@fastify/cookie";
import cookie from "@fastify/cookie";
import type { FastifyCorsOptions } from "@fastify/cors";
import cors from "@fastify/cors";
import fastifyFormBody from "@fastify/formbody";
import helmet from "@fastify/helmet";
import type { FastifyRateLimitOptions } from "@fastify/rate-limit";
import ratelimiter from "@fastify/rate-limit";
@@ -51,6 +52,7 @@ export const main = async ({ db, smtp, logger, queue }: TMain) => {
await server.register(fastifyIp);
await server.register(fastifySwagger);
await server.register(fastifyFormBody);
// Rate limiters and security headers
await server.register<FastifyRateLimitOptions>(ratelimiter, globalRateLimiterCfg);
@@ -113,7 +113,6 @@ export const secretQueueFactory = ({
}
});
});
console.log(secrets.filter(({ type }) => type === "personal"));
secrets.forEach((secret) => {
const secretKey = decryptSymmetric128BitHexKeyUTF8({
ciphertext: secret.secretKeyCiphertext,