node-sp-auth-config
🔧 Config options builder for node-sp-auth (SharePoint Authentication in Node.js)
node-sp-auth-config provides wizard-like approach for building and managing config files for node-sp-auth (Node.js to SharePoint unattended http authentication). Includes CLI for generating config files from command prompt.
Versions supported:
SharePoint Online
SharePoint On-Prem (2019, 2016, 2013)
SharePoint On-Prem 2010
Authentication options:
SharePoint Online:
User credentials (SAML/ADFS)
Add-In Only permissions
On-Demand authentication (using Electron popup)
SharePoint 2019, 2016, 2013:
User credentials (NTLM, NTLM v2)
ADFS user credentials
Form-based authentication (FBA)
Form-based authentication (Forefront TMG)
Add-In Only permissions
On-Demand authentication (using Electron popup)
SharePoint 2010:
User credentials (NTLM, NTMLv2)
Form-based authentication (FBA)
Form-based authentication (Forefront TMG)
Config layer and auth supports Office 365 Dedicated (SPO on custom domain) as well.
How to use
Install
npm install node-sp-auth-configor install globally to use as CLI:
npm install node-sp-auth-config -gUsage as CLI
sp-auth init --path ./config/private.config.json
sp-auth --help # for help about parametersUsage in TypeScript
import { AuthConfig } from 'node-sp-auth-config';
const authConfig = new AuthConfig({
configPath: './config/private.json',
encryptPassword: true,
saveConfigOnDisk: true
});
authConfig.getContext()
.then((context) => {
console.log(JSON.stringify(context, null, 2));
// context.authOptions - node-sp-auth authentication options
})
.catch(console.warn);Usage in JavaScript
const AuthConfig = require('node-sp-auth-config').AuthConfig;
const authConfig = new AuthConfig({
configPath: './config/private.json',
encryptPassword: true,
saveConfigOnDisk: true
});
authConfig.getContext()
.then((context) => {
console.log(JSON.stringify(context, null, 2));
// context.authOptions - node-sp-auth authentication options
})
.catch(console.warn);Initiation parameters
Parameter
Default value
Description
configPath
'./config/private.json'
Path to auth config .json
encryptPassword
true
Encrypt password to a machine-bind hash
saveConfigOnDisk
true
Save config .json to disk
forcePrompts
false
Force parameters prompts
headlessMode
false
Prevents interactive prompts - for headless, CI/CD processes
defaultConfigPath
empty
Path to .json config, parameters from which are placed as defaults
authOptions
empty
Any valid node-sp-auth options
Production runtime
Headless mode
When using in a headless mode, in case of missing parameters, one can expect non-interactive behavior with no prompts but graceful exit with corresponding error output.
This can be achieved by providing headlessMode settings property is equal to true.
The headless mode also automatically configured when NODE_ENV (or SPAUTH_ENV) environment variable is equal to production.
Environment variables
All the parameters which are usually stored in private.json can be defined also using environment variables. Environment variables started with SPAUTH_ prefix are recognized with the library. Second part of the name is an actual name of the node-sp-auth credentials property yet in uppercase (e.g. SPAUTH_SITEURL, SPAUTH_USERNAME, SPAUTH_PASSWORD).
Along with credentials props these service variables are used:
Variable
Description
NODE_ENV
When equal to production forces headlessMode.
SPAUTH_ENV
When equal to production forces headlessMode. Overwrites NODE_ENV.
SPAUTH_FORCE
Makes SPAUTH_{CREDENTIALS} variables take precedence over those possibly stored in private.json.
Configuring CI/CD
Checkout this end-to-end sample.
License
Last updated
Was this helpful?