class Net::IMAP::SASL::ExternalAuthenticator
用于 “EXTERNAL
” SASL
机制的身份验证器,如 RFC-4422 中所指定。请参阅 Net::IMAP#authenticate
。
EXTERNAL 机制请求服务器使用在 SASL
外部建立的客户端凭据,例如通过 TLS 证书或 IPSec。
属性
authzid[R]
授权标识:作为或代表身份的标识。标识形式是应用程序协议特定的。如果未提供或留空,则服务器从身份验证标识派生授权标识。服务器负责验证客户端的凭据,并验证与其客户端身份验证标识关联的身份是否被允许作为(或代表)授权标识。
例如,管理员或超级用户可能会承担另一个角色
imap.authenticate "PLAIN", "root", passwd, authzid: "user"
username[R]
授权标识:作为或代表身份的标识。标识形式是应用程序协议特定的。如果未提供或留空,则服务器从身份验证标识派生授权标识。服务器负责验证客户端的凭据,并验证与其客户端身份验证标识关联的身份是否被允许作为(或代表)授权标识。
例如,管理员或超级用户可能会承担另一个角色
imap.authenticate "PLAIN", "root", passwd, authzid: "user"
公共类方法
new(authzid: nil, **) → authenticator 点击切换源代码
new(username: nil, **) → authenticator
new(username = nil, **) → authenticator
为 “EXTERNAL
” SASL
机制创建一个身份验证器,如 RFC-4422 中所指定。要使用此功能,请参阅 Net::IMAP#authenticate
或您的客户端的身份验证方法。
参数¶ ↑
-
可选
authzid
― 作为或代表身份的授权标识。请注意,与某些其他身份验证器不同,
username
设置的是授权标识,而不是身份验证标识。身份验证标识是由外部凭据为客户端建立的。
任何其他关键字参数都会被静默忽略。
# File net-imap-0.5.4/lib/net/imap/sasl/external_authenticator.rb, line 52 def initialize(user = nil, authzid: nil, username: nil, **) authzid ||= username || user @authzid = authzid&.to_str&.encode "UTF-8" if @authzid&.match?(/\u0000/u) # also validates UTF8 encoding raise ArgumentError, "contains NULL" end @done = false end
公共实例方法
done?() 点击切换源代码
当初始客户端响应已发送时返回 true。
除非此方法返回 true,否则身份验证不应成功,但这不表示成功。
# File net-imap-0.5.4/lib/net/imap/sasl/external_authenticator.rb, line 78 def done?; @done end
initial_response? → true 点击切换源代码
EXTERNAL
可以发送初始客户端响应。
# File net-imap-0.5.4/lib/net/imap/sasl/external_authenticator.rb, line 65 def initial_response?; true end
process(_) 点击切换源代码
返回 authzid
,如果没有 authzid,则返回空字符串。
# File net-imap-0.5.4/lib/net/imap/sasl/external_authenticator.rb, line 68 def process(_) authzid || "" ensure @done = true end