Patrick,

Sorry about the long delay in my review of your feedback.  Thank you for doing 
the detailed review.  From a high-level, I need to discuss the extension of the 
info command / response with Kal.  I include my responses to your feedback 
embedded below.
  
—
 
JG



James Gould
Distinguished Engineer
jgo...@verisign.com

703-948-3271
12061 Bluemont Way
Reston, VA 20190

Verisign.com <http://verisigninc.com/> 

On 11/20/17, 11:40 PM, "regext on behalf of Patrick Mevzek" 
<regext-boun...@ietf.org on behalf of p...@dotandco.com> wrote:

    Hello James and Kal,
    
    Please find below my comments on your draft.
    
    Abstract: remove "or code" in "an allocation token or code", as this is
    not repeated after and does not add value.

Ok, no problem.
    
    The introduction needs to be rephrased, multiple sentences did not have
    sense to me:
    
    "This mapping, an
       extension to EPP object mappings like the EPP domain name mapping
       [RFC5731], for passing an allocation token one of the EPP transform
       commands including create, update, and transfer."
    
    There is no verb at all: This mapping... for passing...
    A "to" is probably missing: an allocation token TO one of the EPP ...

Agreed, a “to” is missing so it should read “an allocation token to one of the 
EPP…”.   
    
    This sentence seems overly complex to say what it says:
    The allocation
       token is known to the server to authorize a client that passes a
       matching allocation token with one of the supported EPP transform
       commands.
    Why not something simpler like:
    A client must pass an allocation token known to the server to be
    authorized to use one of the supported EPP transform commands.

I agree, the reworded sentence is better; although I believe it should use a 
RFC 2119 “MUST”.  The wording “supporting EPP transform commands” implies that 
the object (domain name) requires the allocation token, since the allocation 
token may not be required for all objects (domain names) in the registry.  
Also, the wording “allocation token known” does not mean that the value of the 
allocation token must be pre-defined, since using an allocation token that uses 
a digital signature that is validated by the server means that the server knows 
the token format and validates it.  
    
    This is not clear technically: The allocation token MAY
       be returned to an authorized client for passing out-of-band to a
       client that uses it with an EPP transform command.
    
    Two clients seem defined here, are they the same one or not? If not,
    what is the difference?

I agree that is somewhat confusing.  There are two separate clients (authorized 
client like an auction provider and registrant).  An authorized client (e.g., 
auction provider) could use the allocation token extension to the info command 
to retrieve the allocation token that can be passed to another client 
(registrant) to authorize the registration / allocation of the domain name.  
Now that the use case is defined, how does this sentence get cleaned up to be 
less confusing?   How about modifying it to “The allocation token MAY be 
returned to an authorized client (e.g., auction provider) for passing 
out-of-band to another client (e.g., registrant) that uses it with an EPP 
transform command.”?
    
    1. Introduction
    
    Maybe make more clear if the allocationToken can be used to do
    operations on some existing objects by a registrar not being its current
    sponsor. Is this the goal, or just something possible among other
    things, or not at all?

No, that is not the goal.  The goal is around authorizing a registration or 
allocation of an object based on passing a validate allocation token.  There 
are no other known uses of the allocation token extension to do things like 
what is done with the verification code extension 
(draft-ietf-regext-verificationcode).      
    
    In 2.1 Inconsistent case: sometimes "Allocation Token", sometimes
    "allocation token"
    
    This does not seem clear: The server MUST have
       the allocation token for each object to match against the allocation
       token passed by the client to authorize the allocation of the object.
    
    I believe that you want to say that the allocation token must be checked
    on the server and match the expected value. But no need to overspecify
    things the server may not even have the allocation token stored, it can
    be the hash of the object ID and a secret hence checked dynamically.
    
Yes, I agree that the draft should not be overly restrictive on the format of 
the allocation token, where the allocation token extension is simply a conduit 
to pass an allocation token that is known and can be verified by the server.  
There are multiple known use cases for allocation tokens that include 
pre-generated values and digitally signed tokens.  
    
    
    3.1.1
    There is a gap between the feature here and the introduction.
    The introduction says:
    "authorization to
       allocate an object using one of the EPP transform commands including
       create, update, and transfer."
    
    (and this sentence is not clear by itself, why is an update or a
    transfer
    now an allocation?)

It depends on the approach that the registry takes in allocating domain names 
that may be premium.  One approach is to have them defined in a reference list, 
which would mean that the create command would be the allocation command.  
Another approach is to hold the domain in the domain table and to have the 
registry or another account be the sponsoring client, which would mean that the 
update (new command) or transfer commands could be used for allocation.  The 
protocol supports passing the allocation token to any one of the transform 
commands, where the most likely use case is use of the create command for 
allocation.  
    
    where in the check command:
    Clients can
       check if an object can be created using the allocation token.
    
    So how can clients check if an object could be updated or transfered
    using the given allocation token, besides trying to do it and seeing if
    it fails or not? But since create has a specific command to test the
    allocation token (with check), why not the others?
    Otherwise the introduction will need to be changed to speak only about
    create, which then will make more sense with its name ("allocation") as
    otherwise if it really needs to be generic accross multiple actions I
    would suggest something more like "authorization token" with the risk of
    clashing with EPP core authInfo concept.
    
The fix here would to be change “object can be created” to be “object can be 
allocated”.  The mechanism for allocation is not restricted to create; although 
create is the most likely command.  The object is being allocated in any case, 
but using different commands to do it, so I don’t believe that changing the 
name will help.

    Is there a reason to put the result in the domain:reason node instead
    of having really an allocationToken extension in the domain:check reply
    which will store data specific to it?
    (like it is done for the fees extension, or launchphase, etc.)

The allocation token extension is extending the domain check command to drive 
the avail attribute value in the domain check response.  This is a simple check 
that does not require additional information other than the Boolean “avail” 
value and a human readable reason.    
    
    3.1.2
    I would like more explanation on what the allocationToken there
    represents, especially considering the gap I see between what is in the
    description and the check command as explained above.

Let me chat this over with Kal, since Neustar added the extension to the info 
command / response. 
    
    When doing domain:info, is the allocation token returned the one used to
    do the create? Or is it the one to be used to do a transfer or update?
    What if there are not the same?
    What is in fact the use case of providing to a registrar an allocation
    token that way, when it is said at the beginning that such allocation
    tokens are retrieved out of bound?
    This is also related to what we see on the field with some registries
    that never show the authInfo because they store it hashed or something
    like that, so in a one-way destructive method. Shouldn't the allocation
    token be kind of "write only", where you can verify you get the correct
    one before attempting to use it, but never see it if you do not have it
    already (the out of bound of the introduction)

The extension of the info command / response is an alternative mechanism for 
the “authorized client” (e.g., auction provider) to get the allocation token 
value.  The most likely scenario is to provide the allocation token values to 
the “authorized client” out-of-band.   Using a 1-way hash is a more secure 
option on the server-side; although I’m not sure if a 1-way hash is necessary 
considering that it’s a short lived, single use token.  The reference to 
out-of-band in the introduction is associated with the “authorized client” 
(e.g., auction provider) providing the token value to the client (e.g., 
registrant).     

    About the 2303: I am not sure that it is the correct error code to
    return, as an allocation token is not a registry object and this error
    code is more likely tied to the existence or not of the underlying
    domain object.

The use of 2303 makes sense if the info extension defined an Allocation Token 
Info Command, where the query is about the allocation token and not the domain 
information with the addition of the allocation token.  If the allocation token 
does not exist for an Allocation Token Info Command, then 2303 makes sense if 
the Allocation Token does not exist.      
    
    3.2.2 / 3.2.3 why does the allocation token not cover these cases, where
    it covers create, update and transfer?

Allocation has been handled via create, update (new command), and transfer, but 
not using delete or renew.
    
    Specially since in section 1 you defer to server policy to decide which
    EPP transform commands support the allocation token... but the extension
    does not add support for renew/delete, so this is not bound by server
    policy but by protocol design.

Correct, the server policy would define which of the supported commands the 
allocation token extension applies to.  
    
    3.2.4
    Nitpick: final extra unneeded ":" at end of:
    the server MUST return an EPP error result code of
       2201.:

Thanks, the unneeded “:” will be removed. 
   
    As explained above, I feel uneasy by:
    Example <transfer> request command to allocate the domain object with
       the allocation token:
    
    A transfer command does not allocate an object (for me, but maybe it is
    an error in my English understanding, allocate is a synonym to register
    in our context), it transfers it.

Yes, I personally wouldn’t recommend using transfer for allocation, but the 
allocation of premium domain names has been handled via transfer.  The 
difference is that the domain exists under sponsorship of the registry or a 
special premium registrar account that are allocated to a registrar via the 
transfer command. 
    
    3.2.5  Same nitpick as previous section, about the extra : at end.

Thanks, the unneeded “:” will be removed.     
    
    Your XML example has a:
      C:      <release:release
      C:        xmlns:release="urn:ietf:params:xml:ns:release-1.0"/>
    
    which is probably a copy and paste error.
    
No, this is by design.  The intent here is that the allocation token would not 
be used by itself to allocation an object, but as an extension to a new 
command.  The new command is an extension of an empty update.  In this case the 
“release:release” is an example of defining a new release command that uses the 
allocation token to authorize the release.  The release-1.0.xsd includes only 
the <schema> <element name=”release”/> element, and is only defined as an 
example.  You can find the “good-domain-release.xml” sample with the referenced 
“release-1.0.xsd” XML schema in the samples directory of the 
EPP-Allocation-Token-Specification GitHub project 
(https://github.com/james-f-gould/EPP-Allocation-Token-Specification.git).      
       
    
    General:
    Should there be some guidance somewhere that allocation tokens should be
    unique and not reused accross multiple domains?
    But then domain:check with multiple domains and only one token are less
    useful.

Yes, that would be applicable for pre-generated allocation tokens.  An 
allocation token could be a digitally signed by a trusted third party that 
pre-authorizes the allocation of domain names.  Since the makeup of an 
allocation token is not formally defined within the draft, I’m not sure whether 
the draft can put any constraints on it.            
    
    For implementation status, if you wish you can add the Net::DRI client
    to the list.

First off thanks for the work on Net::DRI, and we can certainly add Net::DRI to 
the Implementation Status section.  Can you provide the following key values to 
add to the draft or you can also submit a pull request to the 
EPP-Allocation-Token-Specification GitHub project 
(https://github.com/james-f-gould/EPP-Allocation-Token-Specification.git) if 
you want to define it yourself?       

1. Organization 
2. Description
3. Level of maturity
4. Coverage
5. Licensing
6. Contact
7. URL

    -- 
      Patrick Mevzek
      p...@dotandco.com
    
    _______________________________________________
    regext mailing list
    regext@ietf.org
    https://www.ietf.org/mailman/listinfo/regext
    

_______________________________________________
regext mailing list
regext@ietf.org
https://www.ietf.org/mailman/listinfo/regext

Reply via email to