UNPKG

@pagopa/io-spid-commons

Version:

Common code for integrating SPID authentication

38 lines (37 loc) 1.92 kB
import { Either } from "fp-ts/lib/Either"; import { TaskEither } from "fp-ts/lib/TaskEither"; import { IDPEntityDescriptor } from "../types/IDPEntityDescriptor"; /** * Parse a string that represents an XML file containing * the ipd Metadata and converts it into an array of IDPEntityDescriptor * * Required namespace definitions into the XML are * xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" and xmlns:ds="http://www.w3.org/2000/09/xmldsig#" * * An example file is provided in /test_idps/spid-entities-idps.xml of this project. */ export declare const parseIdpMetadata: (idpMetadataPage: string) => Either<Error, ReadonlyArray<IDPEntityDescriptor>>; /** * Map provided idpMetadata into an object with idp key whitelisted in ipdIds. * Mapping is based on entityID property */ export declare const mapIpdMetadata: (idpMetadata: ReadonlyArray<IDPEntityDescriptor>, idpIds: Record<string, string>) => Record<string, IDPEntityDescriptor>; /** * Lazy version of mapIpdMetadata() */ export declare const mapIpdMetadataL: (idpIds: Record<string, string>) => (idpMetadata: ReadonlyArray<IDPEntityDescriptor>) => Record<string, IDPEntityDescriptor>; /** * Fetch an XML from a remote URL */ export declare const fetchMetadataXML: (idpMetadataUrl: string) => TaskEither<Error, string>; /** * Load idp Metadata from a remote url, parse infos and return a mapped and whitelisted idp options * for spidStrategy object. */ export declare const fetchIdpsMetadata: (idpMetadataUrl: string, idpIds: Record<string, string>) => TaskEither<Error, Record<string, IDPEntityDescriptor>>; /** * This method expects in input a Record where key are idp identifier * and values are an XML string (idp metadata). * Provided metadata are parsed and converted into IDP Entity Descriptor objects. */ export declare const parseStartupIdpsMetadata: (idpsMetadata: Record<string, string>) => Record<string, IDPEntityDescriptor>;