[mongo] [security] 9.3.3 身份驗證方式(Authentication Mechanisms)【未完】

      網友投稿 1144 2025-04-02

      注意


      從版本4.0開始,MongoDB取消了對不推薦使用的MongoDB質詢響應(MongoDB-CR)身份驗證機制的支持。

      MongoDB支持以下身份驗證機制:

      SCRAM(默認)

      x.509證書認證。

      另外,MongoDB Enterprise提供了與許多外部身份驗證機制的集成,包括Kerberos和LDAP。有關MongoDB Enterprise支持的其他身份驗證機制,請參閱?企業身份驗證機制。

      默認的身份驗證機制

      從MongoDB 3.0開始,?Salted Challenge Response Authentication Mechanism(SCRAM)是MongoDB的默認身份驗證機制。

      指定認證機制

      要指定要使用的身份驗證機制,請authenticationMechanisms? 為mongod? 和 設置 參數? mongos。

      客戶端在? db.auth()? 方法中指定身份驗證機制。對于? mongo? Shell? 和? MongoDB? 工具,您還可以從命令行指定身份驗證機制。

      SCRAM

      注意

      從版本4.0開始,MongoDB刪除了對Challenge-Response ? (MONGODB-CR)?? 身份驗證機制的支持。

      如果您的部署中有用戶憑據存儲在? MONGODB-CR ? 架構中,則必須先升級到SCRAM,然后再升級到4.0版。有關升級到SCRAM的信息 SCRAM,請參閱?升級到SCRAM。

      SCRAM是MongoDB的默認身份驗證機制。SCRAM基于IETF?RFC 5802標準,該標準定義了實現挑戰響應(challenge-response) 機制的最佳實踐,用密碼對用戶進行身份驗證。

      使用SCRAM,MongoDB根據用戶名、密碼和身份驗證數據庫驗證提供的用戶憑據。身份驗證數據庫是創建用戶的數據庫,與用戶名一起用于標識用戶。

      功能

      MongoDB的SCRAM實現提供:

      可調整的工作因子(即迭代次數),

      每位使用者的隨機salts,以及

      服務器與客戶端相互身份驗證。

      SCRAM機制

      MongoDB支持以下SCRAM機制:

      使用SHA-1哈希函數。

      要修改其迭代計數SCRAM-SHA-1,請參見?scramIterationCount。

      使用SHA-256哈希函數,并要求featureCompatibilityVersion(fcv)設置為4.0。

      要修改其迭代計數SCRAM-SHA-256,請參見?scramSHA256IterationCount。

      版本4.0中的新功能。

      創建或更新SCRAM用戶時,您可以指定SCRAM機制,也可以指定服務器還是客戶端提取密碼。使用SCRAM-SHA-256時,MongoDB需要服務器端密碼哈希,即服務器提取密碼。有關詳細信息,請參見? db.createUser()和? db.updateUser()。

      驅動程序支持

      要使用SCRAM,如果當前驅動程序版本不支持,則必須升級驅動程序? SCRAM。

      支持的最低驅動程序版本? SCRAM? 為:

      其他信息

      博客文章:MongoDB 3.0中基于密碼的身份驗證的改進:SCRAM解讀(第1部分)

      博客文章:MongoDB 3.0中基于密碼的身份驗證的改進:SCRAM解讀(第2部分)

      x.509

      MongoDB支持x.509證書身份驗證,用于客戶端身份驗證以及副本集和分片群集成員的內部身份驗證。

      x.509證書身份驗證需要安全的TLS / SSL連接。

      注意

      從版本4.0開始,MongoDB在可用TLS 1.1+的系統上禁用對TLS 1.0加密的支持。有關更多詳細信息,請參閱禁用TLS 1.0。

      證書頒發機構

      對于生產用途,您的MongoDB部署應使用由單個證書頒發機構生成和簽名的有效證書。您或您的組織可以生成和維護獨立的證書頒發機構,或者使用第三方TLS / SSL供應商生成的證書。獲取和管理證書超出了本文檔的范圍。

      客戶端x.509證書

      若要向服務器進行身份驗證,客戶端可以使用x.509證書代替用戶名和密碼。

      客戶證書要求

      客戶端證書必須具有以下屬性:

      證書頒發機構(CA)必須同時為客戶端和服務器頒發證書。

      客戶端證書必須包含以下字段:

      keyUsage = digitalSignature extendedKeyUsage = clientAuth

      每個唯一的MongoDB用戶必須具有唯一的證書。

      客戶端X.509證書的主題,其中包含了專有名稱(DN),必須區別 成員X.509證書。

      客戶端證書中的組織(O),組織單位(OU)或域組件(DC)屬性至少必須與net.tls.clusterFile和?net.tls.certificateKeyFile服務器證書中的屬性不同?。

      如果MongoDB部署設置了tlsX509ClusterAuthDNOverride(從MongoDB 4.2開始可用),則客戶端x.509證書的主題也必須與此值不同。

      警告

      如果客戶端x.509證書的主題與成員x.509證書具有相同的O、OU和DC組合(如果設置了tlsX509ClusterAuthDNOverride),則會拒絕客戶端連接。只有群集成員x509證書應使用相同的O、OU和DC組合,因為這將授予完全權限。

      x.509證書一定不可 過期。

      在4.4版本有改變:

      如果提供的x.509證書在mongod/mongos主機系統時間的30天內過期,mongod/mongos會在連接時記錄警告。有關詳細信息,請參閱x.509 Certificates Nearing Expiry Trigger Warnings。

      MongoDB的用戶和? $external? 數據庫

      要使用客戶端證書進行身份驗證,必須首先將客戶端證書中的subject的值添加MongoDB用戶。每個唯一的x.509客戶端證書對應于一個MongoDB用戶;即,不能使用單個客戶端證書對多個MongoDB用戶進行身份驗證。

      在$external數據庫中添加用戶;即?認證數據庫是$external數據庫

      在版本3.6.3中更改:要與$external身份驗證用戶(即Kerberos,LDAP,x.509用戶)一起使用會話,用戶名不能大于10k字節。

      驗證

      要使用x.509客戶端證書進行連接和身份驗證,請執行以下操作:

      對于MongoDB 4.2或更高版本,請為客戶端包括以下選項:

      --tls(或不建議使用的--ssl選項)

      --tlsCertificateKeyFile?(或不建議使用的--sslPEMKeyFile選項)

      --tlsCertificateKeyFilePassword?(或不建議使用的--sslPEMKeyPassword選項)如果證書密鑰文件已加密

      --authenticationDatabase?'$external'

      --authenticationMechanism?MONGODB-X509

      對于MongoDB 4.0和更早版本,為客戶端包括以下選項:

      --ssl

      --sslPEMKeyFile

      --sslPEMKeyPassword如果--sslPEMKeyFile加密,則為選項。

      --authenticationDatabase?'$external'

      --authenticationMechanism?MONGODB-X509

      您還可以先建立TLS / SSL連接,然后db.auth()在$external數據庫中使用?它進行身份驗證。

      有關兩種情況的示例,請參閱使用x.509證書對客戶端進行身份驗證?中的使用x.509證書進行身份驗證(使用tls選項)部分。

      成員x.509證書? (Member x.509 Certificates)

      [mongo] [security] 9.3.3 身份驗證方式(Authentication Mechanisms)【未完】

      對于內部身份驗證,分片群集和副本集的成員可以使用x.509證書代替使用SCRAM身份驗證機制的?密鑰文件。

      成員證書要求

      用于驗證分片群集或副本集成員身份的成員證書(net.tls.clusterFile,如果指定,則為net.tls.certificateKeyFile)必須具有以下屬性:

      單個證書頒發機構(CA)必須為分片群集或副本集的成員頒發所有x.509證書。

      在成員證書的主題中找到的可分辨名稱(DN)必須為以下至少一個屬性指定非空值:組織(O)、組織單位(OU)或域組件(DC)。

      組織屬性(O's)、組織單元屬性(OU's)和域組件(DC's)必須與來自這兩個域的屬性匹配net.tls.clusterFile文件以及net.tls.certificateKey文件其他集群成員的證書(或tlsX509ClusterAuthDNOverride值,如果已設置)。

      要匹配,證書必須匹配這些屬性的所有規范,甚至這些屬性的非規范。屬性的順序并不重要。?? 在下面的示例中,這兩個DN包含O、OU的匹配規范以及DC屬性的非規范。

      CN = host1,OU = Dept1,O = MongoDB,ST = NY,C = US C = US,ST = CA,O = MongoDB,OU = Dept1,CN = host2

      以下兩個DN 包含不匹配的?OU 屬性,因為一個包含兩個 OU 規范,另一個包含一個規范。

      CN=host1,OU=Dept1,OU=Sales,O=MongoDB CN=host2,OU=Dept1,O=MongoDB

      通用名(CN)或主可選擇名(SAN)之一必須與服務器的主機名匹配,該主機名由集群的其他成員使用。從MongoDB 4.2開始,在執行SAN比較時,MongoDB支持DNS名稱或IP地址的比較。在以前的版本中,MongoDB僅支持DNS名稱的比較。

      例如,群集的證書可以具有以下主題:

      subject= CN=,OU=Dept1,O=MongoDB,ST=NY,C=US subject= CN=,OU=Dept1,O=MongoDB,ST=NY,C=US subject= CN=,OU=Dept1,O=MongoDB,ST=NY,C=US

      如果證書包含擴展密鑰用法(extendedKeyUsage)設置,則該值必須包含clientAuth(“ TLS Web客戶端身份驗證”)。

      extendedKeyUsage = clientAuth

      您還可以使用不包含擴展密鑰用法(EKU)的證書。

      x.509證書不得過期。

      在4.4版本改變:如果提供的x.509證書在mongod/mongos主機系統時間的30天內過期,mongod/mongos會在連接時記錄警告。有關詳細信息,請參閱x.509證書接近到期觸發警告。

      MongoDB成員身份驗證配置

      除了適用于部署的任何TLS/SSL配置之外,還包括以下配置,以便為副本集(即mongod實例)或分片集群(即mongod和mongos實例)的每個成員指定x.509進行內部身份驗證:

      Security.clusterAuthMode或--clusterAuthMode設置為x509

      net.tls.clusterFile或--tlsClusterFile(在MongoDB 4.2中都是新功能)

      但是,如果未指定群集文件,則成員可以使用中指定的證書密鑰文件net.tls.certificateKey文件或者--tlsCertificateKeyFile(都是MongoDB 4.2中新增的),用于成員身份驗證。mongod(和mongos)實例使用此證書密鑰文件向客戶端證明其身份,但也可以用于成員身份驗證。要同時用于客戶端身份驗證和成員身份驗證,證書必須:

      省略extendedKeyUsage或

      指定extendedKeyUsage值

      注意

      盡管仍然可用,net.ssl.clusterFile文件(以及相應的--sslClusterFile)和net.ssl.PEMKeyFile文件(以及相應的--sslPEMKeyFile)在MongoDB 4.2中被棄用。

      對于使用MongoDB 4.0版及更早版本的部署,請使用net.ssl.clusterFile文件(或相應的--sslClusterFile)和net.ssl.PEMKeyFile文件(或相應的--sslPEMKeyFile)。

      x.509證書不得過期。

      在4.4版本改變:如果提供的x.509證書在mongod/mongos主機系統時間的30天內過期,mongod/mongos會在連接時記錄警告。有關詳細信息,請參閱x.509證書接近到期觸發警告。

      MongoDB 云數據庫 GaussDB(for Mongo) 數據庫

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:wps文字表格自動換行在哪里怎么設置(wps文字里的表格怎么自動換行)
      下一篇:剪貼版在哪兒(剪貼板怎么剪切)
      相關文章
      亚洲福利电影一区二区?| 亚洲自偷自偷精品| 亚洲一卡一卡二新区无人区| 亚洲成a人片在线观看播放| 亚洲色偷偷av男人的天堂| 久久亚洲sm情趣捆绑调教| 精品日韩亚洲AV无码一区二区三区| 国产精一品亚洲二区在线播放| 亚洲色无码一区二区三区| 亚洲第一AV网站| 亚洲国产精品无码久久一线| 亚洲国产精品自在在线观看| 亚洲国产精品一区| 亚洲综合网美国十次| 亚洲成a人片在线网站| 亚洲1区1区3区4区产品乱码芒果| 亚洲一级毛片免观看| 精品久久亚洲中文无码| 亚洲日本乱码卡2卡3卡新区| 亚洲美国产亚洲AV| 亚洲一区二区观看播放| 日韩亚洲翔田千里在线| 亚洲成a人一区二区三区| 中文字幕无码精品亚洲资源网| 国产亚洲情侣一区二区无码AV| 亚洲人成网亚洲欧洲无码久久| 一本色道久久综合亚洲精品| 亚洲AV综合色一区二区三区| 久久亚洲精品无码AV红樱桃| 亚洲国产精品无码久久久| 久久亚洲精品国产精品婷婷| 亚洲AV无码专区国产乱码不卡| 亚洲国产成人精品久久久国产成人一区二区三区综 | 亚洲国产成人AV网站| 亚洲AV无码成H人在线观看| 久久久久久久亚洲精品| 亚洲AV第一页国产精品| 亚洲欧洲国产视频| 亚洲熟女www一区二区三区| mm1313亚洲精品国产| 亚洲精品无码mv在线观看网站 |