3


订户集成

Sun Java System Content Delivery Server 使用 Oracle 数据库管理订户配置文件。如果您已经拥有大量订户数据,则无需复制此信息。Content Delivery Server 可以配置为使用现有订户数据。

订户适配器用于将外部订户数据映射到 Content Delivery Server 处理订户相关功能时所需的数据。

本章介绍了随 Content Delivery Server 提供的订户适配器。可以使用用户配置 API 自行创建订户适配器。有关此 API 的信息,请参见《Sun Javatrademark System Content Delivery Server 5.1 定制指南》。

本章包含以下主题:


3.1 提供的订户适配器

当前,随 Content Delivery Server 提供的订户适配器支持轻量目录访问协议 (Lightweight Directory Access Protocol, LDAP) 格式。LDAP 订户适配器使用 XML 文件在 Content Delivery Server 和 LDAP 目录之间映射数据。


3.2 使用订户适配器

要指定想使用的订户适配器,必须将 module.security.subscriber.usermanager 属性设置为订户适配器的全限定类名。此属性位于 $CDS_HOME/deployment/deployment-name/conf 目录下的 security.conf 文件中。请使用下表中显示的值之一。


适配器

module.security.subscriber.usermanager 属性的值

Oracle

com.sun.content.server.vending.security.user.SubscriberImpl

要使用 Content Delivery Server 数据库存储所有订户数据,请使用此值。这是默认设置。

LDAP

com.sun.content.server.vending.security.user.ldap.ldapusermanager.LDAPUserManager

要使用外部 LDAP 目录存储订户数据,请使用此值。


 

要使用 LDAP 的订户适配器,还必须提供 XML 文件,说明要使用的映射。此文件在 3.3.1 为 LDAP 创建映射文件中进行介绍。


3.3 使用 LDAP

本节提供了一些附加信息,说明将订户数据存储在 LDAP 目录中时如何设置系统以使用 Content Delivery Server。3.3.1 为 LDAP 创建映射文件介绍了如何创建将 LDAP 目录中的字段映射到 Content Delivery Server 中的字段的文件。3.3.2 配置 Sun Java System Application Server 访问权限介绍了在使用 Sun Java System Application Server 时需要对安全策略进行的更改。3.3.3 调节 LDAP介绍了如何设置 LDAP 以提高性能。

3.3.1 为 LDAP 创建映射文件

要使用 LDAP 目录中的订户数据,您必须创建一个 XML 格式的映射文件,该文件将 Content Delivery Server 所需的数据映射到 LDAP 目录中的信息。$CDS_HOME/deployment/deployment-name/conf 目录下的 conf.xml 文件中包含一个样例映射。

创建映射文件:

1. 将 conf.xml 文件复制到同一目录的新文件,例如,cdsmapping.xml

2. 编辑您的文件以定义 LDAP 数据映射。

3.3.1.1 Content Delivery Server 的订户数据指出必须向 Content Delivery Server 提供的数据。3.3.1.2 样例映射文件提供了一个样例文件。

3. 指示 Content Delivery Server 使用该文件。

$CDS_HOME/deployment/deployment-name/conf/security.config 文件中的 cds.security.ldapusermanager.config_file 属性设置为该文件的名称。

3.3.1.1 Content Delivery Server 的订户数据

映射文件的开头几行包含 LDAP 服务器的连接信息。下表介绍了映射文件中的属性。

表 3-1 介绍了必须设置的配置属性。


表 3-1 配置属性

属性

描述

search_scope

查找范围。指定以下值中的一个:

  • 0 - 查找命名对象。
  • 1 - 只查找命名对象的一个级别。这是默认值。
  • 2 - 查找命名对象的整个子树。

max_search_wait_time

LDAP 执行查找请求的最长时间(以毫秒为单位)。使用负值表示没有限制。


 

表 3-2 介绍了定义 LDAP 环境的属性。


表 3-2 LDAP 属性

属性

描述

initial_context_factory

初始上下文工厂的全限定类名。

provider_url

提供者(LDAP 服务器)的 URL。

注 - 如果使用的是 Sun Java System Application Server,则 URL 不能包含空格。

prefix

使用的前缀。

username

用于访问 LDAP 的用户标识名。

password

与用户名关联的密码。

master_username

主服务器的用户名。此属性是可选的。

master_password

与主用户名关联的密码。此属性是可选的。

object

LDAP 中的一个或多个对象。


 

表 3-3 列出了 Content Delivery Server 使用的订户数据。在创建的 XML 文件中添加带有字段名的元素。表中注明了必需的字段。


表 3-3 订户数据

Content Delivery Server 字段

描述

loginId

订户访问 Subscriber Portal 时使用的登录 ID。

注 - 此字段为必需,且必须被映射。

password

提供的登录 ID 的密码。

注 - 此字段为必需,且必须被映射。

uniqueDeviceId

标识订户所使用的设备的唯一 ID。通常与 MSISDN 相同。

注 - 此字段为必需,且必须被映射。

firstName

订户的名字。

注 - 此字段为必需,且必须被映射。

middleName

订户的中间名。

lastName

订户的姓氏。

注 - 此字段为必需,且必须被映射。

gender

订户的性别。

street1

订户的街道地址。

street2

订户所需的其他地址信息。

city

订户所在城市的信息。

state

订户所在省/自治区/直辖市的信息。

postalcode

订户的邮政编码。

country

订户居住的国家/地区。

email

订户的电子邮件地址,发送密码提醒或活动通知时使用。

注 - 此字段为必需,且必须被映射。

phone

订户的电话号码。

activatedate

激活订户帐户的日期。

deactivatedate

取消激活订户帐户的日期。

salutation

订户喜欢的称呼。

enabled

订户的状态。如果没有提供值,则默认值为启用。

MSISDN

订户的 MSISDN 号码,向订户设备发送消息时使用。

注 - 此字段为必需,且必须被映射。

 

映射包含在 XML 文件的 <mapping>...</mapping> 部分中。映射元素具有以下属性:

映射部分中的每个元素都可以具有以下一个或多个属性:

 

密码元素也可以包含 isEncoded 属性。如果密码作为编码字符串进行存储,请将此属性设置为 true。如果密码不进行编码存储,请设置为 false。默认值为 false

有关示例,请参见 3.3.1.2 样例映射文件

3.3.1.2 样例映射文件

表 3-4 介绍了随后所示的样例映射文件中映射的样例数据。标识为不包含映射的字段将不显示在样例中。


表 3-4 样例 LDAP 文件的数据

Content Delivery Server 字段

LDAP 字段

loginId

SSN

password

pwd

uniqueDeviceId

handsetIDmobileID

firstName

givenName

middleName

(无映射)

lastName

familyName

gender

(无映射)

street1

street

street2

(无映射)

city

city

state

(无映射)

postalcode

zipcode

country

(无映射)

email

email

phone

(无映射)

activatedate

(无映射)

deactivatedate

(无映射)

salutation

(无映射)

enabled

status

MSISDN

MSISDN


 

代码样例 3-1 LDAP 数据的样例映射文件
<ldapusermanager>
  <config>
    <search_scope>1</search_scope>
    <max_search_wait_time>1000</max_search_wait_time>
  </config>
  <ldap>
    <initial_context_factory>com.sun.jndi.ldap.LdapCtxFactory
    </initial_context_factory>
    <provider_url>ldap://t1:389/ou=Users,o=LDAPUserManager
    </provider_url>
    <prefix>uid=</prefix>
    <username>cn=directory manager</username>
    <password>ldappwd</password>
    <master_username>cn=directory manager</master_username>
    <master_password>ldappwd</master_password>
  </ldap>
  <object>
    <obj0>top</obj0>
    <obj1>person</obj1>
    <obj2>organizationalPerson</obj1>
  </object>
  <mapping isDeletable=”true” isAddable=”true”>
    <loginId isRequired=”true”>SSN</loginId>
    <password isRequired=”true” isEncoded=”false”>pwd</password>
    <uniqueDeviceId isRequired=”true” isModifiable=”true” isMultiple=”true”>
      <value0>handsetID</value0>
      <value1>mobileID</value1>
    </uniqueDeviceId>
    <firstName isRequired=”true”>givenName</firstName>
    <lastName isRequired=”true”>familyName</lastName>
    <street1>street</street1>
    <city>city</city>
    <postalcode>zipcode<postalcode>
    <email isRequired=”true”>email</email>
    <enabled isRequired=”true”>status</enabled>
    <msisdn isRequired=”true” isModifiable=”true”>msisdn</msisdn>
  </mapping>
</ldapusermanager>

 

3.3.2 配置 Sun Java System Application Server 访问权限

如果使用的是 Sun Java System Application Server,则必须修改安全策略以便为 LDAP 订户适配器使用的类授予访问权限。请编辑位于 $CDS_HOME/deployment/deployment-name/sun/domains/server-domain/config 目录中的 server.policy 文件并添加以下语句:


grant {
    permission java.security.SecurityPermission "insertProvider.SunJSSE";
    permission java.lang.RuntimePermission "setFactory";
    permission java.net.NetPermission "specifyStreamHandler";
};

 

在保存更改后,重新启动 Content Delivery Server。

3.3.3 调节 LDAP

将 LDAP 目录作为订户数据库时,您可能希望为映射到唯一设备 ID、登录 ID 或 MSISDN 的任何属性创建索引以提高性能。有关创建索引的说明,请参见所使用的 LDAP 目录的文档。请为映射到 uniqueDeviceId(在所创建的映射文件中)的属性创建索引。

创建索引会消耗大量资源,并且可能会影响系统性能。请选择适当的时间来创建索引,以便将对用户的影响降至最低。


3.4 订户帐户管理

订户帐户包含标识用于访问 Content Delivery Server 的订户和设备的信息。订户帐户由 Vending Manager 管理员通过 Vending Manager 管理控制台进行管理。订户还可以通过 Subscriber Portal 访问自己的帐户。

可以配置为订户和管理员显示的选项。例如,可以只允许订户查看自己的帐户,或者禁止管理员删除帐户。还可以配置订户或管理员可以编辑的字段。例如,可以禁止订户更改其移动电话号码,或者禁止管理员更改订户名。

要指定可以使用的选项和可以编辑的字段,请编辑 $CDS_HOME/deployment/deployment-name/conf 目录中的以下文件:

管理订户帐户的操作为添加、编辑和删除。这些操作是由文件中的 <add><edit><delete> 元素表示的。要允许执行某个操作,请将 isEnabled 属性设置为 true。要禁止执行某个操作,请将 isEnabled 属性设置为 false。默认值为 false。例如,要防止订户创建帐户,请在 subsubmgr.xml 文件中包括以下语句:

<add isEnabled=”false”/>

每个文件中的 <edit> 元素内的元素显示可以管理的字段。Content Delivery Server 仅管理不是由文件中的元素表示的字段,例如,登录 ID。这些字段的有效属性为 isReadOnlyisRequired。要防止字段被更改,请将 isReadOnly 属性设置为 true。要使字段可以被更改,请将 isReadOnly 参数设置为 false。默认值为 false



注 - 对于 passwordmobile_idfirst_namelast_nameemailstatus 元素,必须将 isRequired 属性设置为 true



以下代码显示了默认 subsubmgr.xml 文件的相关部分。


代码示例 3-2 样例 subsubmgr.xml 文件

<subscriber>
   <subscriber>
      <!-- For adding -->
      <add isEnabled="true"/>
      <!-- For editing -->
      <edit isEnabled="true">
         <password isRequired="true"/>
         <mobile_id isRequired="true" isReadOnly="true"/>
 
         <first_name isRequired="true"/>
         <middle_name/>
         <last_name isRequired="true"/>
         <salutation/>
         <gender/>
 
         <street_1/>
         <street_2/>
         <city/>
         <state/>
         <postal_code/>
         <country_code/>
 
         <email isRequired="true"/>
         <contact_phone/>
      </edit>
   </subscriber>
</subscriber>

 

以下代码显示了默认 vsadminsubmgr.xml 文件的相关部分。


代码示例 3-3 样例 vsadminsubmgr.xml 文件

<vsadmin>
   <subscriber>
      <!-- For adding -->
      <add isEnabled="true"/>
      <!-- For editing -->
      <edit isEnabled="true">
         <password isRequired="true"/>
         <status isRequired="true"/>
         <mobile_id isRequired="true"/>
 
         <first_name isRequired="true"/>
         <middle_name/>
         <last_name isRequired="true"/>
         <salutation/>
         <gender/>
 
         <street_1/>
         <street_2/>
         <city/>
         <state/>
         <postal_code/>
         <country_code/>
 
         <email isRequired="true"/>
         <contact_phone/>
      </edit>
      <!-- For deleting -->
      <delete isEnabled="true"/>
   </subscriber>
</vsadmin>

 


3.5 订户的自动置备

订户置备是指注册该订户并在订户数据库中创建一个条目。可以将 Content Delivery Server 配置为在未注册的订户访问 Subscriber Portal 时自动置备这些订户。如果启用了自动置备功能且未注册的订户尝试下载内容,则使用 MSISDN 号创建订户帐户并允许进行下载。

$CDS_HOME/deployment/deployment-name/conf/SubscriberPortal.properties 文件中提供了以下属性以设置自动置备: