From 4569797e6f4a63f5876211874c7fc6a5ae7c4fe0 Mon Sep 17 00:00:00 2001 From: Kazuhito Yokoi Date: Fri, 10 Mar 2017 15:00:32 +0000 Subject: [PATCH 1/2] Add LDAP authentication page --- auth/use-ldap-authentication.md | 52 ++++++++++++++++++++++++++++++++ images/auth/auth-login.png | Bin 0 -> 52576 bytes 2 files changed, 52 insertions(+) create mode 100644 auth/use-ldap-authentication.md create mode 100755 images/auth/auth-login.png diff --git a/auth/use-ldap-authentication.md b/auth/use-ldap-authentication.md new file mode 100644 index 0000000..18c1659 --- /dev/null +++ b/auth/use-ldap-authentication.md @@ -0,0 +1,52 @@ +--- +layout: default +title: Use LDAP authentication +--- + +### Problem + +You want to use LDAP authentication when Node-RED users login to Node-RED editor. + +### Solution + +Install LDAP authentication modue, [node-red-auth-contrib-ldap](https://www.npmjs.com/package/node-red-auth-contrib-ldap) and configure LDAP server information in settings.js. + +#### Example + +After the setup, you can use LDAP authentication when you access to Node-RED editor. +![](/images/auth/auth-login.png) + + +#### Configration + +(1) Install LDAP authentication module +``` +sudo npm install -g node-red-auth-contrib-ldap +``` + +(2) Add LDAP server information into settings.js +``` +vi ~/.node-red/settings.js +``` +Add adminAuth block in module.exports block as follows. +``` +module.exports = { +... + adminAuth: require("node-red-auth-contrib-ldap").init({ + url: "ldap://:389", + dn: "uid=%username%,ou=people,o=example,c=jp" + }), +... +} +``` + +(3) Run Node-RED +``` +node-red +``` + +### Discussion + +You can modify dn(distinguished name) which corresponds with your LDAP server. +%username% is reserved word which dn string has as user name. + diff --git a/images/auth/auth-login.png b/images/auth/auth-login.png new file mode 100755 index 0000000000000000000000000000000000000000..ddb267f66f9208d3cf68ec099ef86c50520ae63c GIT binary patch literal 52576 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 W=5jMCmG9uwsVZwd$hv3x_P+ps8I2wQ literal 0 HcmV?d00001 From ecda5b7aac77cc24e4a7ae092891e6bfedee5400 Mon Sep 17 00:00:00 2001 From: Kazuhito Yokoi Date: Wed, 11 Sep 2019 19:28:06 +0900 Subject: [PATCH 2/2] Fix typo --- auth/use-ldap-authentication.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/auth/use-ldap-authentication.md b/auth/use-ldap-authentication.md index 18c1659..713b22c 100644 --- a/auth/use-ldap-authentication.md +++ b/auth/use-ldap-authentication.md @@ -9,7 +9,7 @@ You want to use LDAP authentication when Node-RED users login to Node-RED editor ### Solution -Install LDAP authentication modue, [node-red-auth-contrib-ldap](https://www.npmjs.com/package/node-red-auth-contrib-ldap) and configure LDAP server information in settings.js. +Install LDAP authentication module, [node-red-auth-contrib-ldap](https://www.npmjs.com/package/node-red-auth-contrib-ldap) and configure LDAP server information in settings.js. #### Example