n8n
Version:
n8n Workflow Automation Tool
40 lines (39 loc) • 2 kB
TypeScript
import type express from 'express';
import type { User } from '../../databases/entities/User';
import type { SamlUserAttributes } from './types/samlUserAttributes';
import type { SamlPreferences } from './types/samlPreferences';
import type { IdentityProviderInstance, ServiceProviderInstance } from 'samlify';
import type { BindingContext, PostBindingContext } from 'samlify/types/src/entity';
import type { SamlLoginBinding } from './types';
import { Logger } from '../../Logger';
import { UrlService } from '../../services/url.service';
export declare class SamlService {
private readonly logger;
private readonly urlService;
private identityProviderInstance;
private samlify;
private _samlPreferences;
get samlPreferences(): SamlPreferences;
constructor(logger: Logger, urlService: UrlService);
init(): Promise<void>;
loadSamlify(): Promise<void>;
getIdentityProviderInstance(forceRecreate?: boolean): IdentityProviderInstance;
getServiceProviderInstance(): ServiceProviderInstance;
getLoginRequestUrl(relayState?: string, binding?: SamlLoginBinding): Promise<{
binding: SamlLoginBinding;
context: BindingContext | PostBindingContext;
}>;
private getRedirectLoginRequestUrl;
private getPostLoginRequestUrl;
handleSamlLogin(req: express.Request, binding: SamlLoginBinding): Promise<{
authenticatedUser: User | undefined;
attributes: SamlUserAttributes;
onboardingRequired: boolean;
}>;
setSamlPreferences(prefs: SamlPreferences): Promise<SamlPreferences | undefined>;
loadPreferencesWithoutValidation(prefs: SamlPreferences): Promise<void>;
loadFromDbAndApplySamlPreferences(apply?: boolean): Promise<SamlPreferences | undefined>;
saveSamlPreferencesToDb(): Promise<SamlPreferences | undefined>;
fetchMetadataFromUrl(): Promise<string | undefined>;
getAttributesFromLoginResponse(req: express.Request, binding: SamlLoginBinding): Promise<SamlUserAttributes>;
}