メインコンテンツへ移動

MongoDB 認証追加手順

ヒント
  • 認証を追加する際、管理ライブラリー用の root ユーザーと、全ビジネスライブラリー用の nocoly ユーザーが作成されます。
  • サンプルでは root のパスワードに hTkfDMYJ7ZLs、nocoly のパスワードに tC9S86SFWxga を使用していますが、実運用時には必ず強力な任意のパスワードに置き換えてください。
  • 互換性およびセキュリティ担保のため、カスタムパスワードには「$」「&」「!」「@」等の特殊文字は使用しないでください。これらは正規表現のパース問題などにより、コンテナへの正常な設定が行われない場合があります。「-」や「_」のご利用を推奨します。
  • 操作前にデータバックアップを実施することを推奨します。
  • 対応マイクロサービスバージョン:v3.7.0 以上
  • 集計表機能を有効化している場合は、対象ドキュメントの手順も参照し、集計表用DB・ロール・ユーザー作成、およびレプリカセットの関連パラメータ調整を完了させてください。

1. sc コンテナに入り、MongoDB にログイン​

docker exec -it $(docker ps | grep sc | awk '{print $1}') mongo

2. mongo シェルで root ユーザーおよび nocoly ユーザーを作成​

use admin
db.createUser({user:"root",pwd:"hTkfDMYJ7ZLs",roles:[{role:"root",db:"admin"}]})
use MDLicense
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"MDLicense"}]})
use ClientLicense
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"ClientLicense"}]})
use commonbase
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"commonbase"}]})
use MDAlert
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"MDAlert"}]})
use mdactionlog
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdactionlog"}]})
use mdapproles
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdapproles"}]})
use mdapprove
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdapprove"}]})
use mdapps
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdapps"}]})
use mdattachment
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdattachment"}]})
use mdcalendar
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdcalendar"}]})
use mdcategory
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdcategory"}]})
use MDChatTop
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"MDChatTop"}]})
use mdcheck
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdcheck"}]})
use mddossier
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mddossier"}]})
use mdemail
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdemail"}]})
use mdform
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdform"}]})
use MDGroup
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"MDGroup"}]})
use mdgroups
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdgroups"}]})
use MDHistory
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"MDHistory"}]})
use mdIdentification
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdIdentification"}]})
use mdinbox
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdinbox"}]})
use mdkc
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdkc"}]})
use mdmap
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdmap"}]})
use mdmobileaddress
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdmobileaddress"}]})
use MDNotification
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"MDNotification"}]})
use mdpost
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdpost"}]})
use mdreportdata
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdreportdata"}]})
use mdroles
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdroles"}]})
use mdsearch
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdsearch"}]})
use mdservicedata
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdservicedata"}]})
use mdsms
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdsms"}]})
use MDSso
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"MDSso"}]})
use mdtag
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdtag"}]})
use mdtransfer
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdtransfer"}]})
use MDUser
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"MDUser"}]})
use mdworkflow
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdworkflow"}]})
use mdworksheet
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdworksheet"}]})
use mdworkweixin
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdworkweixin"}]})
use mdwsrows
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdwsrows"}]})
use pushlog
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"pushlog"}]})
use taskcenter
db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"taskcenter"}]})
use mdintegration
db.createUser({user: "nocoly",pwd: "tC9S86SFWxga",roles: [{role: "readWrite",db: "mdintegration"}]})
use mdworksheetlog
db.createUser({user: "nocoly",pwd: "tC9S86SFWxga",roles: [{role: "readWrite",db: "mdworksheetlog"}]})
use mdworksheetsearch
db.createUser({user: "nocoly",pwd: "tC9S86SFWxga",roles: [{role: "readWrite",db: "mdworksheetsearch"}]})
use mddatapipeline
db.createUser({user: "nocoly",pwd: "tC9S86SFWxga",roles: [{role: "readWrite",db: "mddatapipeline"}]})
use mdwfplugin
db.createUser({user: "nocoly",pwd: "tC9S86SFWxga",roles: [{role: "readWrite",db: "mdwfplugin"}]})
use mdpayment
db.createUser({user: "nocoly",pwd: "tC9S86SFWxga",roles: [{role: "readWrite",db: "mdpayment"}]})
use mdwfai
db.createUser({user: "nocoly",pwd: "tC9S86SFWxga",roles: [{role: "readWrite",db: "mdwfai"}]})
use mdopenauth
db.createUser({user: "nocoly",pwd: "tC9S86SFWxga",roles: [{role: "readWrite",db: "mdopenauth"}]})
use mdaisearch
db.createUser({user: "nocoly",pwd: "tC9S86SFWxga",roles: [{role: "readWrite",db: "mdaisearch"}]})
use MDAgentInfra
db.createUser({user: "nocoly",pwd: "tC9S86SFWxga",roles: [{role: "readWrite",db: "MDAgentInfra"}]})

3. docker-compose.yaml の修正(環境変数・ポート開放)​

docker-compose.yaml のデフォルトパス:/data/hap/script/docker-compose.yaml

  • app service の environment 下に ENV_MONGODB_DAEMON_ARGS および ENV_MONGODB_URI を追加してください。
ENV_MONGODB_DAEMON_ARGS: "--auth"
ENV_MONGODB_URI: "mongodb://nocoly:tC9S86SFWxga@sc:27017"
  • sc service の ports にて 27017 番ポートのコンテナ公開を行います(外部公開が不要の場合はマッピング不要です)。
- 27017:27017
docker-compose.yaml 設定例
version: '3'
services:
app:
image: nocoly/hap:7.5.1
environment: &app-environment
ENV_ADDRESS_MAIN: "https://example.domain.com"
ENV_APP_VERSION: "7.5.1"
ENV_API_TOKEN: "******"
ENV_MONGODB_DAEMON_ARGS: "--auth" # 追加
ENV_MONGODB_URI: "mongodb://nocoly:tC9S86SFWxga@sc:27017" # 追加 ※nocolyユーザーパスワードを適切に変更
ports:
- 8880:8880
volumes:
- ../data:/data/hap/data
sc:
image: nocoly/sc:3.2.0
environment:
<<: *app-environment
ports:
- 27017:27017 # 追加。MongoDBポートのマッピング。外部公開不要であれば、省略可能
volumes:
- ./volume/data/:/data/

4. Install Manager ディレクトリにてマイクロサービスを再起動​

bash service.sh restartall