FutoIn Security Concept is alternative to token based authentication & authorization mechanisms.
Features:
- FutoIn SecVault sensitive data storage security
- User & configuration management (FTN8):
- Stateless Authentication (FTN8.1):
- Clear text
- Message Authentication Code (HMAC with static key)
- Master Secret Authentication (FTN8.2):
- multiple master keys with custom scope support
- derived key per each peer
- automatic time-based derived key rotation
- optional automatic master key rotation
Documentation --> FutoIn Guide
Reference implementation of:
Author: Andrey Galkin
Command line:
$ npm install @futoin/security --saveor:
$ yarn add @futoin/security --save- CachedManageService
FTN8: Cached Manage Service
- ManageFace
Manage Face
- ManageService
FTN8: main Manage Service
- MasterAutoregFace
FTN8.2: Master Auth Face
- MasterAuthService
FTN8.2: Master Auth Service
- MasterAutoregFace
FTN8.2: Master Auth Auto-registration Face
- MasterAutoregService
FTN8.2: Master Auth Auto-registration Service
- MasterManageFace
FTN8.2: Master Auth Manage Face
- MasterManageService
FTN8.2: Master Auth Manage Service
- ServiceApp
All-in-one AuthService initialization
- SimpleSecurityProvider
Simple passthru FTN8 security provider for Executor.
NOTE: it's suitable for lightweight services without own SecVault.
- SatelessAuthFace
FTN8.1: Stateless AuthService Face
- StatelessAuthService
Manage Service
- StatelessManageFace
FTN8.1: Stateless Manage Face
- StatelessManageService
FTN8.1.: Stateless Manage Service
- StaticMasterAuth
MasterAuth implementation for AdvancedCCM with static Master Key
NOTE: this implementation rotates only derived keys
- BaseFace
Base Face with neutral common registration functionality
- BaseService
Base Service with common registration logic
FTN8: Cached Manage Service
C-tor
| Param | Type | Default | Description |
|---|---|---|---|
| scope | object |
scope of related services | |
| options | object |
passed to superclass c-tor | |
| options.scope | integer |
main.globalScope |
scope state |
Manage Face
FTN8: main Manage Service
FTN8.2: Master Auth Face
FTN8.2: Master Auth Service
FTN8.2: Master Auth Auto-registration Face
FTN8.2: Master Auth Auto-registration Service
FTN8.2: Master Auth Manage Face
FTN8.2: Master Auth Manage Service
All-in-one AuthService initialization
Kind: global class
- ServiceApp
- new ServiceApp(as, options)
- .ccm() ⇒
AdvancedCCM - .executor() ⇒
Executor - .close([done])
C-tor
| Param | Type | Default | Description |
|---|---|---|---|
| as | AsyncSteps |
AsyncSteps interface | |
| options | object |
{} |
options |
| [options.ccm] | AdvancedCCM |
external CCM instance | |
| [options.publicExecutor] | Executor |
external public executor instance | |
| [options.privateExecutor] | Executor |
external private executor instance | |
| [options.storagePassword] | string |
Base64 encoded KEK for storage | |
| [options.config] | object |
config overrides for MasterService | |
| [options.ccmOptions] | object |
auto-CCM options | |
| [options.notExpectedHandler] | callable |
'notExpected' error handler | |
| [options.privateExecutorOptions] | object |
private auto-Executor options | |
| [options.publicExecutorOptions] | object |
public auto-Executor options | |
| [options.evtOptions] | object |
eventstream options | |
| [options.secVaultOptions] | object |
secure vault options | |
| [options.securityOptions] | object |
security interface options |
CCM instance accessor
Kind: instance method of ServiceApp
Returns: AdvancedCCM - instance
Executor instance accessor
Kind: instance method of ServiceApp
Returns: Executor - instance
Shutdown of app and related instances
Kind: instance method of ServiceApp
| Param | Type | Default | Description |
|---|---|---|---|
| [done] | callable |
|
done callback |
Simple passthru FTN8 security provider for Executor.
NOTE: it's suitable for lightweight services without own SecVault.
FTN8.1: Stateless AuthService Face
Manage Service
FTN8.1: Stateless Manage Face
FTN8.1.: Stateless Manage Service
MasterAuth implementation for AdvancedCCM with static Master Key
NOTE: this implementation rotates only derived keys
C-tor
| Param | Type | Default | Description |
|---|---|---|---|
| options | object |
Options | |
| keyId | string |
master key ID | |
| keyData | string |
master key data in Base64 | |
| [paramFormat] | string |
"YYYYMMDD" |
format for derivation parameter |
| [kds] | string |
"HKDF256" |
key derivation strategy |
| [macAlgo] | string |
"HS256" |
MAC algorithm |
Base Face with neutral common registration functionality
Kind: global class
Note: Not official API
Latest supported FTN13 version
Kind: static property of BaseFace
Latest supported FTN4 version
Kind: static property of BaseFace
CCM registration helper
Kind: static method of BaseFace
| Param | Type | Default | Description |
|---|---|---|---|
| as | AsyncSteps |
steps interface | |
| ccm | AdvancedCCM |
CCM instance | |
| name | string |
CCM registration name | |
| endpoint | * |
see AdvancedCCM#register | |
| [credentials] | * |
|
see AdvancedCCM#register |
| [options] | object |
{} |
interface options |
| [options.version] | string |
"1.0" |
interface version to use |
Base Service with common registration logic
Kind: global class
C-tor
| Param | Type | Description |
|---|---|---|
| scope | object |
scope of related services |
| options | object |
passed to superclass c-tor |
BaseService.register(as, executor, scope, options) ⇒ BaseService
Register Service with Executor
Kind: static method of BaseService
Returns: BaseService - instance
| Param | Type | Description |
|---|---|---|
| as | AsyncSteps |
steps interface |
| executor | Executor |
executor instance |
| scope | object |
scope of related services |
| options | object |
implementation defined options |
