이 글은 라즈베리 파이 기준으로 작성되었습니다. 윈도우즈 사용자의 경우는 다음 페이지를 이용하기 바랍니다.
윈도우즈 Node-RED 사용자 지정하기
윈도우즈 Node-RED 사용자 지정하기
Node-RED 비밀 번호 해시 만들기
Node-RED의 작성기와 대시보드에 사용자 ID와 비밀 번호를 지정할 수 있습니다. 여기서는 비밀 번호를 입력하여 비밀 번호해시(hash)를 만듭니다. 해시(hash)는 별도의 알고리즘에 의하여 원본과 다르게 해독하기 어려운 문장으로 바꾼 것입니다.
다음 명령어를 차례대로 실행합니다.
cd ~/IOTstack
./services/nodered/terminal.sh
만약 비밀 번호 gildongcoolguy의 비밀 번호 해시를 만들고 싶으면 다음과 같은 명령어를 입력합니다. 비밀 번호 해시가 생성되어 화면에 출력됩니다.
node -e "console.log(require('bcryptjs').hashSync(process.argv[1], 8));" gildongcoolguy
다음이 비밀 번호 해시입니다. 이 비밀 번호 해시는 메모장에 기록해 두고 다음 단계에서 사용합니다.
$2a$08$4lPtYiJ5KuL3UJxshj2i6uSwIDeCZPGBJZlYjRlaSAUC/UHnBvYJW
다음 명령어를 입력하여 쉘(shell)에서 벗어 납니다.
exit
settings.js 파일 수정하기
settings.js 파일에 Node-RED의 설정 정보가 있습니다. 앞 단계에서 만든 비밀 번호 해시를 이용해서 이 파일을 수정합니다.
다음 명령어를 차례대로 실행합니다.
cd ~/IOTstack
sudo nano ./volumes/nodered/data/settings.js
다음과 같은 편집 화면이 나타납니다.
편집기에서 ▼, ▲ 키를 이용하여 다음 부분을 찾습니다. 이 때 편집기의 윈도우 화면은 크게 하는 것이 편합니다.
다음은 ./volumes/nodered/data/settings.js의 소스 파일입니다. 만약 파일이 없으면 디렉토리를 만들고 파일을 복사하여 만들어야 합니다.
파일을 스크롤하여 다음 위치로 이동합니다.
// property can be used. See http://nodered.org/docs/security.html for details. //adminAuth: { // type: "credentials", // users: [{ // username: "admin", // password: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.", // permissions: "*" // }] //}, // To password protect the node-defined HTTP endpoints (httpNodeRoot), or // the static content (httpStatic), the following properties can be used. // The pass field is a bcrypt hash of the password. // See http://nodered.org/docs/security.html#generating-the-password-hash //httpNodeAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."}, //httpStaticAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."},
앞의 내용을 다음과 같이 수정합니다. 명령어 앞의 //를 없애고 두 군데에서 나타나는 password:와 pass:다음의 비밀 번호 해시는 앞 단계에서 복사해 둔 비밀 번호 해시로 바꿉니다.
편집기에서는 편집 위치를 마우스로 옮길 수 없습니다. ▼, ▲,◀, ▶ 키를 이용해야 합니다. 비밀 번호 해시는 Delete나 Backspace로 지우고, 앞 부분에서 만든 비밀 번호 해시를 클립보드에 복사한 다음, 편집기에서 복사할 위치로 옮긴 후 오른 쪽 마우스 버튼을 눌러서 붙여넣기를 하면 됩니다. 이 편집기가 불편하면 FileZilla를 사용해도 됩니다.
// property can be used. See http://nodered.org/docs/security.html for details. adminAuth: { type: "credentials", users: [{ username: "admin", password: "$2a$08$4lPtYiJ5KuL3UJxshj2i6uSwIDeCZPGBJZlYjRlaSAUC/UHnBvYJW", permissions: "*" }] }, // To password protect the node-defined HTTP endpoints (httpNodeRoot), or // the static content (httpStatic), the following properties can be used. // The pass field is a bcrypt hash of the password. // See http://nodered.org/docs/security.html#generating-the-password-hash httpNodeAuth: {user:"user",pass:"$2a$08$4lPtYiJ5KuL3UJxshj2i6uSwIDeCZPGBJZlYjRlaSAUC/UHnBvYJW"}, //httpStaticAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."},ctrl+o, Enter, ctrl+o를 차례대로 실행하면 수정된 파일이 보관됩니다.
Node-RED 다시 실행하기
다음 명령어를 차례대로 실행합니다.
cd ~/IOTstack
docker-compose stop nodered
docker-compose up -d
docker-compose restart nodered
Node-RED 로그인하기
이 단계를 거치면 Node-RED 작성기의 사용자 ID는 admin이며 비밀 번호는 gildongcoolguy입니다. Node-RED 대시 보드의 사용자 ID는 user이며 비밀 번호는 gildongcoolguy입니다.
여기서는 사용자 ID admin과 user를 사용하고 비밀 번호는 공통으로 gildongcoolguy를 사용하여 설명하였지만, 실제에는 본인의 것으로 바꾸어서 지정하여야 합니다.