Development tool for Azure B2C IEF policies
npm install ieftoolA port of this package written in golang is available at https://github.com/judedaryl/go-ieftool. Both packages these packages will be supported. If you want to use the tool but do not want the node runtime that it requires, please check out the port.
`ieftool is a cli library based on npm for uploading B2C TrustFramework Policies.
This tool makes it easier for B2C policies to be uploaded in-order based on the inheritance of a policy. Uploads are also faster because policies are uploaded by batch depending on its position on the inheritance tree.
`pre
src/
├─ social/
│ ├─ base.xml (1A_SBASE)
│ ├─ signupsignin.xml (1A_SSS)
├─ local/
│ ├─ base.xml (1A_LBASE)
│ ├─ signupsignin.xml (1A_LSS)
│ ├─ passwordreset.xml (1A_LPR)
├─ base.xml (1A_BASE)
├─ extension.xml (1A_EXT)
`
The example folder structure above has the following inheritance tree.
`pre`
1A_BASE
|
1A_EXT
/ \
1A_LBASE 1A_SBASE
/ \ \
1A_LSS 1A_LPR 1A_SSS
These policies are then batched by their hierarchy in the tree, as well as their parent policy. The order of upload would then be.
1. 1A_Base
2. 1A_EXT
3. 1A_LBASE, 1A_LSBASE
4. 1A_LSS, 1A_LPR
5. 1A_LSSS
sh
npm install -g ieftool
`$3
`sh
yarn global add ieftool
`
Supported node versions
ieftool only supports LTS releases, largely because it is using @azure/msal-node.
##Options
`
Usage: ieftool [options] [command]Options:
-V, --version output the version number
-h, --help display help for command
Commands:
deploy [options]
help [command] display help for command
`$3
The
deploy command is responsible for uploading policies to B2C.`
Usage: ieftool deploy [options]Options:
-t, --tenant_id B2C tenant id
-c, --client_id App registration client id
-s, --client_secret App registration client secret
-p, --path Build path
-h, --help display help for command
`$3
Usage: ieftool build [options]Compiles B2C templates and policies
Options:
-c, --config Specify the path to the b2c compiler configuration (default: "./b2c-template.json")
-p, --source_path Specify the path to the templates folder (default: "./src")
-o, --output_dir Specify the output folder (default: "./build")
-h, --help display help for command
Usage
$3
`sh
ieftool deploy -t { tenant } -c { client_id } -s { client_secret } -p { source_path }`| option | description |
|--|--|
| tenant | The B2C tenant, this can either be the tenantId or the tenant name (mytenant.onmicrosoft.com)|
| client_id | The client id of an app registration in B2C that has permissions for TrustFrameworkPolicies |
| client_secret | The client secret of an app registration in B2C that has permissions for TrustFrameworkPolicies |
| source_path | The path to your b2c policies. In the tree structure above it would be
./src |
$3
`sh
ieftool build -c { config_path } -p { source_path } -o { output_path }
``| option | description |
|--|--|
| config | The path to the configuration file. Defaults to './b2c-template.json' |
| source_path | The path to your b2c policies |
| output_path | The path where the compiled policies are written to |