SASL

LDAP V3协议使用SASL的支持可插拔认证。这意味着LDAP客户端和服务器可以被配置在谈判和使用认证机制可能是非标准和/或定制,取决于客户端和服务器所需的保护水平 。不支持SASL的LDAP v2协议。

目前有几个SASL机制的定义:

LDAP服务器的支持SASL机制

前面的列表的机制,流行LDAP服务器(如OpenLDAP的,从甲骨文,和微软的)支持外部,DIGEST - MD5,并作为强制性LDAP的默认机制的Kerberos V5。RFC 2829建议使用DIGEST - MD5 v3服务器。

下面是一个简单的程序,找出LDAP服务器支持的SASL机制的列表。

/ /创建初始上下文
DirContext ctx =new InitialDirContext();

/ /读取从根DSE supportedSASLMechanisms
Attributes attrs = ctx.getAttributes(  
     "ldap://localhost:389", new String[]{"supportedSASLMechanisms"});

下面是在一个支持外部SASL机制的服务器上运行这个程序产生的输出。

 
 
{supportedsaslmechanisms=supportedSASLMechanisms: EXTERNAL, GSSAPI, DIGEST-MD5}

指定的认证机制

要使用特定的SASL机制,可以指定其互联网编号分配机构(IANA)注册机制的名称Context.SECURITY_AUTHENTICATION环境属性。您也可以指定一个LDAP提供机制的清单尝试 。这是通过指定的空间分隔机制名称的有序列表 。LDAP提供程序将使用它找到一个实施的第一个机制。

下面是一个例子,要求LDAP提供商试图让DIGEST - MD5机制的执行情况,如果是这样的不可用,使用GSSAPI的一个。

 
 
env.put(Context.SECURITY_AUTHENTICATION, "DIGEST-MD5 GSSAPI");

从应用程序的用户,你可能会得到这样的认证机制,或者,您可能会通过调用类似前面显示的方法来要求LDAP服务器。LDAP提供者本身并不会咨询此服务器来获得相应的信息。它只是试图找到并使用指定的机制的实现。

在平台的LDAP提供内置,DIGEST - MD5的,和GSSAPI(Kerberos V5的)SASL机制的支持。您可以添加额外的机制的支持。

指定的认证机制的输入

一些机制,如外部不需要额外的输入-单机制的名称是足够的认证进行。外部的例子显示了如何使用外部的SASL机制 。

大多数其他机制需要一些额外的输入。根据这一机制,可能会有所不同类型的输入。以下是一些常见的输入机制。

  • 验证ID。执行身份验证的实体的身份。
  • 授权标识。访问控制检查如果认证成功,应作出实体的身份。
  • 认证证书。例如,密码或钥匙。

如果程序(如代理服务器)是代表另一个实体验证,身份验证和授权的ID可能会有所不同。验证ID指定使用的Context.SECURITY_PRINCIPAL环境属性。它的类型java.lang.String。

验证ID的密码/关键是指定使用的Context.SECURITY_CREDENTIALS环境属性。它的类型是java.lang.String时char数组的(char[]),或字节数组(byte[])。如果密码是一个字节数组,然后它转化成一个char数组使用UTF - 8编码。

如果已设置的“java.naming.security.sasl.authorizationId”属性,然后使用它的值作为授权ID。它的值的类型必须是java.lang.String的。默认情况下,空字符串使用的授权ID,指示服务器,来自客户端的身份验证凭据的授权ID 。

DIGEST - MD5的示例演示如何使用Context.SECURITY_PRINCIPALContext.SECURITY_CREDENTIALSDIGEST - MD5验证的属性 。

如果一个机制需要输入已经描述过的以外,然后你需要定义一个回调机制,使用对象,您可以检查出在回调例如JNDI教程。这节课的下一部分将讨论如何使用SASL DIGEST - MD5认证机制。SASL的政策GSS API(Kerberos V5的)CRAM - MD5机制是覆盖在JNDI教程。









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值