moleculer-iam
Version:
Centralized IAM module for moleculer. Including a certified OIDC provider and an Identity provider for user profile, credentials, and custom claims management. Custom claims could be defined/updated by declarative schema which contains claims validation a
50 lines (49 loc) • 2.3 kB
TypeScript
import { Provider, Configuration } from "oidc-provider";
import { IdentityProvider } from "../../idp";
import { Logger } from "../../lib/logger";
import { OIDCAdapterProxy, OIDCAdapterProxyConstructorOptions } from "./adapter";
import { ProviderApplicationBuilder } from "./app";
import { DiscoveryMetadata } from "./proxy.types";
declare type UnsupportedConfigurationKeys = "clients" | "claims" | "scopes" | "dynamicScopes";
declare type DynamicConfigurationKeys = "findAccount" | "extraClientMetadata" | "extraParams" | "interactions" | "routes" | "renderError" | "logoutSource" | "postLogoutSuccessSource";
declare type DeviceFlowConfigurationKeys = "userCodeInputSource" | "userCodeConfirmSource" | "successSource";
export declare type DeviceFlowConfiguration = Required<Required<Configuration>["features"]>["deviceFlow"];
declare type DynamicFeaturesConfiguration = {
features: {
deviceFlow: {
[key in DeviceFlowConfigurationKeys]: DeviceFlowConfiguration[key];
};
};
};
export declare type DynamicConfiguration = Required<Pick<Configuration, DynamicConfigurationKeys> & DynamicFeaturesConfiguration>;
export declare type StaticConfiguration = Omit<Configuration, UnsupportedConfigurationKeys | "adapter" | "discovery"> & {
adapter?: OIDCAdapterProxyConstructorOptions;
discovery?: DiscoveryMetadata;
dev?: boolean;
issuer?: string;
};
export declare type ProviderBuilderProps = {
logger: Logger;
idp: IdentityProvider;
};
export declare class ProviderConfigBuilder {
private readonly props;
readonly logger: Logger;
readonly issuer: string;
readonly dev: boolean;
readonly adapter: OIDCAdapterProxy;
readonly idp: IdentityProvider;
readonly app: ProviderApplicationBuilder;
private readonly staticConfig;
private readonly dynamicConfig;
private provider?;
constructor(props: ProviderBuilderProps, opts?: Partial<StaticConfiguration>);
_dagerouslyGetProvider(): Provider;
setPrefix(prefix: string): this;
setExtraParams(config: DynamicConfiguration["extraParams"]): this;
setExtraClientMetadata(config: DynamicConfiguration["extraClientMetadata"]): this;
private built;
assertBuilding(shouldBuilt?: boolean): void;
_dangerouslyBuild(): Provider;
}
export {};