Skip to main content
Module

x/samlify/src/types.ts

πŸ” Node.js API for Single Sign On (SAML 2.0)
Go to Latest
File
import { LoginResponseTemplate } from './libsaml';
export { IdentityProvider as IdentityProviderConstructor } from './entity-idp';export { IdpMetadata as IdentityProviderMetadata } from './metadata-idp';
export { ServiceProvider as ServiceProviderConstructor } from './entity-sp';export { SpMetadata as ServiceProviderMetadata } from './metadata-sp';
export type MetadataFile = string | Buffer;
type SSOService = { isDefault?: boolean; Binding: string; Location: string;};
export interface MetadataIdpOptions { entityID?: string; signingCert?: string | Buffer; encryptCert?: string | Buffer; wantAuthnRequestsSigned?: boolean; nameIDFormat?: string[]; singleSignOnService?: SSOService[]; singleLogoutService?: SSOService[]; requestSignatureAlgorithm?: string;}
export type MetadataIdpConstructor = | MetadataIdpOptions | MetadataFile;
export interface MetadataSpOptions { entityID?: string; signingCert?: string | Buffer; encryptCert?: string | Buffer; authnRequestsSigned?: boolean; wantAssertionsSigned?: boolean; wantMessageSigned?: boolean; signatureConfig?: { [key: string]: any }; nameIDFormat?: string[]; singleSignOnService?: SSOService[]; singleLogoutService?: SSOService[]; assertionConsumerService?: SSOService[]; elementsOrder?: string[];}
export type MetadataSpConstructor = | MetadataSpOptions | MetadataFile;
export type EntitySetting = ServiceProviderSettings & IdentityProviderSettings;
export interface SignatureConfig { prefix?: string; location?: { reference?: string; action?: 'append' | 'prepend' | 'before' | 'after'; };}
export interface SAMLDocumentTemplate { context?: string;}
export type ServiceProviderSettings = { metadata?: string | Buffer; entityID?: string; authnRequestsSigned?: boolean; wantAssertionsSigned?: boolean; wantMessageSigned?: boolean; wantLogoutResponseSigned?: boolean; wantLogoutRequestSigned?: boolean; privateKey?: string | Buffer; privateKeyPass?: string; isAssertionEncrypted?: boolean; requestSignatureAlgorithm?: string; encPrivateKey?: string | Buffer; encPrivateKeyPass?: string | Buffer; assertionConsumerService?: SSOService[]; singleLogoutService?: SSOService[]; signatureConfig?: SignatureConfig; loginRequestTemplate?: SAMLDocumentTemplate; logoutRequestTemplate?: SAMLDocumentTemplate; signingCert?: string | Buffer; encryptCert?: string | Buffer; transformationAlgorithms?: string[]; nameIDFormat?: string[]; allowCreate?: boolean; // will be deprecated soon relayState?: string; // https://github.com/tngan/samlify/issues/337 clockDrifts?: [number, number];};
export type IdentityProviderSettings = { metadata?: string | Buffer;
/** signature algorithm */ requestSignatureAlgorithm?: string;
/** template of login response */ loginResponseTemplate?: LoginResponseTemplate;
/** template of logout request */ logoutRequestTemplate?: SAMLDocumentTemplate;
/** customized function used for generating request ID */ generateID?: () => string;
entityID?: string; privateKey?: string | Buffer; privateKeyPass?: string; signingCert?: string | Buffer; encryptCert?: string | Buffer; /** todo */ nameIDFormat?: string[]; singleSignOnService?: SSOService[]; singleLogoutService?: SSOService[]; isAssertionEncrypted?: boolean; encPrivateKey?: string | Buffer; encPrivateKeyPass?: string; messageSigningOrder?: string; wantLogoutRequestSigned?: boolean; wantLogoutResponseSigned?: boolean; wantAuthnRequestsSigned?: boolean; wantLogoutRequestSignedResponseSigned?: boolean; tagPrefix?: { [key: string]: string };};