验证机制是客户端向服务器证明其身份的特殊方法。Messaging Server 支持由简单验证和安全层 (Simple Authentication and Security Layer, SASL) 协议定义的验证方法并支持基于证书的验证。本节介绍了 SASL 机制。有关基于证书的验证的更多信息,请参见配置加密和基于证书的验证。
Messaging Server 支持以下基于密码验证的 SASL 验证方法。
PLAIN—此机制通过网络传递用户的纯文本密码,这在网络上是很容易被窃听到的。
请注意,SSL 可用于缓解窃听问题。有关更多信息,请参见配置加密和基于证书的验证
DIGEST-MD5—RFC 2831 中定义的询问/响应验证机制。(Messaging Multiplexor 尚不支持 DIGEST-MD5。)
此功能已弃用并将从未来的发行版中删除。
CRAM-MD5—一种询问/响应验证机制,类似于 APOP,但也可用于与其他协议配合使用。在 RFC 2195 中已定义。
APOP—仅可与 POP3 协议配合使用的询问/响应验证机制。在 RFC 1939 中已定义。
LOGIN—等效于 PLAIN,只是为了与 SMTP 验证的预标准实现兼容。默认情况下,此机制仅可由 SMTP 使用。
使用询问/响应验证机制,服务器将询问字符串发送给客户机。客户机则以该询问的散列和用户密码响应。如果客户机的响应与服务器拥有的散列相匹配,则用户通过验证。由于散列不可逆,所以通过网络发送用户密码时不会泄露此密码。
POP、IMAP 和 SMTP 服务支持所有 SASL 机制。HTTP 服务仅支持纯文本密码机制。
表 19–1 显示了某些 SASL 参数和与 SASL 相关的 configutil 参数。有关 configutil 参数的最新和最完整列表,请参见《Sun Java System Messaging Server 6 2005Q4 Administration Reference》中的“configutil Parameters”。
表 19–1 某些 SASL 参数和与 SASL 相关的 configutil 参数
参数 |
说明 |
---|---|
该值为布尔值,表示目录存储了可以启用 APOP、CRAM-MD5 和 DIGEST-MD5 的纯文本密码。 默认值:False |
|
不再支持或使用。请参见 sasl.default.auto_transition。 |
|
布尔值。设置此参数后,当用户提供纯文本密码时,系统将把此密码存储格式转换为目录服务器的默认密码存储格式。此参数可用于从纯文本密码迁移到 APOP、CRAM-MD5 或 DIGEST-MD5。 默认值:False |
|
此参数使 IMAP 可以使用 SASL ANONYMOUS 机制。 默认值:False |
|
如果此参数大于 0,则只有激活安全层(SSL 或 TLS)才能使用纯文本密码。这强制用户必须在要登录的客户机上启用 SSL 或 TLS,以防止在网络中泄露其密码。MMP 具有等效选项“RestrictPlainPasswords”。 注意:实际上,5.2 发行版的 Messaging Server 将针对由 SSL 或 TLS 协商的加密算法的程度来检查该值。为了简化此选项并更好地反映一般情况下的使用,已将此功能去除。 默认值:0 |
|
要启用的以空格分隔的 SASL 机制的列表。如果非空,则此选项将覆盖 sasl.default.ldap.has_plain_passwords 选项以及 service.imap.allowanonymouslogin 选项。此选项应用于所有协议(IMAP、POP、SMTP)。 默认值:False |
|
如果没有在 inetDomainSearchFilter 中为域指定搜索过滤器,则它就是用于查找用户的默认搜索过滤器。语法与 inetDomainSearchFilter 相同(请参见模式指南)。 默认值:(&(uid=%U)(objectclass=inetmailuser)) |
|
默认情况下,验证系统将按照域查找规则(需要引用)在 LDAP 中查找域,然后查找用户。但是,如果该选项被设置为 "0" 而不是默认值 "1",则不会进行域查找并且针对用户的搜索(使用 sasl.default.ldap.searchfilter)将在由 local.ugldapbasedn 指定的 LDAP 树下直接进行。提供此参数是为了与传统的单域模式兼容,但建议不要在新部署中使用此参数,因为即使是小公司也可能会进行合并或更名,这些都需要支持多个域。 |
要使 CRAM-MD5、DIGEST-MD5 或APOP SASL 验证方法起作用,需要访问用户的纯文本密码。您需要执行以下步骤:
将 Directory Server 配置为以明文存储密码。
配置 Messaging Server,以便其明确 Directory Server 正使用明文密码。
要启用 CRAM-MD5、DIGEST-MD5 或 APOP 机制,则必须按以下步骤将 Directory Server 配置为以明文存储密码:
在“控制台”中,打开您想要配置的 Directory Server。
单击“配置”选项卡。
打开左窗格中的“数据”。
单击右窗格中的“密码”。
从“密码加密”下拉式列表中选择“明文”。
此更改仅影响以后创建的用户。现有用户则只能在作了此更改后转换或重置其密码。
现在可以配置 Messaging Server,以便其明确 Directory Server 可以检索明文密码。此操作可以使 Messaging Server 安全地公布 APOP、CRAM-MD5 和 DIGEST-MD5:
configutil -o sasl.default.ldap.has_plain_passwords -v 1
通过将该值设置为 0,可以禁用这些询问/响应 SASL 机制。
直到重置或迁移(请参见“转换用户的步骤”)用户密码后,现有用户才能使用 APOP、CRAM-MD5 或 DIGEST-MD5。
请注意,MMP 有一个等效选项:CRAM。
您可以使用 configutil 指定有关转换用户的信息。比如,用户密码更改或客户机尝试使用用户不具有正确条目的机制进行验证。
configutil -osasl.default.auto_transition -vvalue
对于其中的值,可以指定以下值之一:
no 或 0—不转换密码。该值为默认值。
yes 或 1—转换密码。
要成功地转换用户,则必须在 Directory Server 中设置 ACI,以允许 Messaging Server 写访问用户密码属性。要完成此操作,请执行以下步骤:
在“控制台”中,打开您想要配置的 Directory Server。
单击“目录”选项卡。
选择用户/组树的基本后缀。
从“对象”菜单中选择“访问权限”。
选择(双击)“Messaging Server 最终用户管理员写访问权限”的 ACI。
单击“ACI 属性”。
将 userpassword 属性添加到现有属性列表中。
单击“确定”。
sasl.default.mech_list 可用于启用一系列 SASL 机制。如果非空,则此选项将覆盖 sasl.default.ldap.has_plain_passwords 选项以及 service.imap.allowanonymouslogin 选项。此选项应用于所有协议(IMAP、POP、SMTP)。