本文档描述一个可扩展配置协议(EPP)扩展映射,用于存储在共享中央存储库中的国际化域名(IDN)的配置。此映射扩展了EPP域名映射,以提供在ASCII之外的字符集中实现域名注册所需的附加功能。
1. 引言
EPP协议提供了EPP命令和响应结构的完整描述。全面了解基本协议规范对于理解本文档中描述的映射是必要的。
本文档是根据[RFC3735]中定义的扩展可扩展供应协议的指南编写的。
为了符合实现国际化域名[1]的指导方针,需要将每个要注册的标签与一个单一的脚本相关联,这是由Unicode代码图的代码划分定义的。这一要求给使用EPP协议的注册局带来了挑战,因为目前在域名映射中没有这样的字段允许交换这些信息。
此外,打算遵守IDNA2008协议第4.1节[RFC5891]建议的注册中心将能够使用此扩展来验证ASCII兼容编码和Unicode格式的名称。
该扩展向EPP域名映射添加了两个额外的数据元素,以允许将域名与IDN表标识符相关联,并以Unicode规范化形式将域名与C (NFC[2])相关联。
2. 本文档中使用的约定
“idn-1.0”是“urn:ietf:params:xml:ns:idn-1.0”的缩写。使用XML名称空间前缀“idn”,但是实现必须不依赖于它,而是使用适当的支持名称空间的XML解析器和序列化器来解释和输出XML文档。
3. EPP命令映射
EPP语法和语义的详细描述可以在[RFC5730]中找到。
3.1. EPP查询命令
此扩展不向EPP<check>, <poll>, or <transfer> 命令或响应添加任何元素。
3.1.1 EPP <info>命令
当在<login>命令中选择该扩展时,该扩展不向EPP <info>命令添加任何元素,但是在响应中包含元素。
EPP <info> 命令示例:
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C: <command>
C: <info>
C: <domain:info
C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C: <domain:name>xn--espaol-zwa.example.com</domain:name>
C: <domain:authInfo>
C: <domain:pw>2fooBAR</domain:pw>
C: </domain:authInfo>
C: </domain:info>
C: </info>
C: <clTRID>ABC-12345</clTRID>
C: </command>
C:</epp>
当info命令被成功处理,域名为IDN时,服务器必须在EPP响应的部分中包含一个< IDN:data>元素,该元素包含以下元素:
- <idn:table> :包含 IDN table标识
- <idn:uname>:包含 Unicode NFC 格式的域名
授权客户端<info>响应的示例:
S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
S: <response>
S: <result code="1000">
S: <msg>Command completed successfully</msg>
S: </result>
S: <resData>
S: <domain:infData
S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
S: <domain:name>xn--espaol-zwa.example.com</domain:name>
S: <domain:roid>EXAMPLE1-REP</domain:roid>
S: <domain:status s="ok"/>
S: <domain:registrant>jd1234</domain:registrant>
S: <domain:contact type="admin">sh8013</domain:contact>
S: <domain:contact type="tech">sh8013</domain:contact>
S: <domain:ns>
S: <domain:hostObj>ns1.example.com</domain:hostObj>
S: <domain:hostObj>ns1.example.net</domain:hostObj>
S: </domain:ns>
S: <domain:clID>ClientX</domain:clID>
S: <domain:crID>ClientY</domain:crID>
S: <domain:crDate>1999-04-03T22:00:00.0Z</domain:crDate>
S: <domain:upID>ClientX</domain:upID>
S: <domain:upDate>1999-12-03T09:00:00.0Z</domain:upDate>
S: <domain:exDate>2005-04-03T22:00:00.0Z</domain:exDate>
S: <domain:trDate>2000-04-08T09:00:00.0Z</domain:trDate>
S: <domain:authInfo>
S: <domain:pw>2fooBAR</domain:pw>
S: </domain:authInfo>
S: </domain:infData>
S: </resData>
S: <extension>
S: <idn:data xmlns:idn="urn:ietf:params:xml:ns:idn-1.0">
S: <idn:table>es</idn:table>
S: <idn:uname>español.example.com</idn:uname>
S: </idn:data>
S: </extension>
S: <trID>
S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54322-XYZ</svTRID>
S: </trID>
S: </response>
S:</epp>
3.2. EPP 转移命令
此扩展不向EPP<delete>, <renew>, or <transfer> 命令或响应添加任何元素。
3.2.1. EPP<create>命令
这个扩展为EPP 定义了额外的元素命令。
如果域名是一个IDN, EPP命令必须包含一个<extension>元素,该元素必须包含子元素< IDN:data>,该元素必须包含一下子元素:
- <idn:table>:包含服务器提供的 IDN table 标识
- <idn:uname>:包含以 Unicode NFC 格式注册的域名(此项可选)
<create>命令的例子:
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C: <command>
C: <create>
C: <domain:create
C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C: <domain:name>xn--espaol-zwa.example.com</domain:name>
C: <domain:period unit="y">2</domain:period>
C: <domain:ns>
C: <domain:hostObj>ns1.example.net</domain:hostObj>
C: <domain:hostObj>ns2.example.net</domain:hostObj>
C: </domain:ns>
C: <domain:registrant>jd1234</domain:registrant>
C: <domain:contact type="admin">sh8013</domain:contact>
C: <domain:contact type="tech">sh8013</domain:contact>
C: <domain:authInfo>
C: <domain:pw>2fooBAR</domain:pw>
C: </domain:authInfo>
C: </domain:create>
C: </create>
C: <extension>
C: <idn:data xmlns:idn="urn:ietf:params:xml:ns:idn-1.0">
C: <idn:table>es</idn:table>
C: <idn:uname>español.example.com</idn:uname>
C: </idn:data>
C: </extension>
C: <clTRID>123456</clTRID>
C: </command>
C:</epp>
服务器必须使用[RFC5891]章节4.2中描述的过程来验证名称。
如果IDN名称验证失败,因为它包含指定IDN table中不可用的代码点,服务器必须返回一个EPP错误2306。
乳沟提供的<domain:name>没有映射到提供的<idn:uname>,服务器必须响应一个EPP错误2005。
3.3. 形式语法
EPP对象映射是在XML模式表示法中指定的。这里提供的正式语法是对象映射的完整模式表示形式,适用于自动验证EPP XML实例。
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
xmlns:idn="urn:ietf:params:xml:ns:idn-1.0"
targetNamespace="urn:ietf:params:xml:ns:idn-1.0"
elementFormDefault="qualified">
<annotation>
<documentation>
Extensible Provisioning Protocol v1.0 domain name extension
schema for IDN Table selection.
</documentation>
</annotation>
<import namespace="urn:ietf:params:xml:ns:eppcom-1.0"
schemaLocation="eppcom-1.0.xsd"/>
<!-- Child elements found in IDN -->
<element name="data" type="idn:idnDataType"/>
<complexType name="idnDataType">
<sequence>
<element name="table" type="eppcom:minTokenType"/>
<element name="uname" type="eppcom:labelType"
minOccurs="0"/>
</sequence>
</complexType>
<!-- End of schema. -->
</schema>