Changes between Initial Version and Version 1 of GeniApiIdentifiers


Ignore:
Timestamp:
08/13/10 19:06:03 (10 years ago)
Author:
tmitchel@bbn.com
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GeniApiIdentifiers

    v1 v1  
     1[[PageOutline]]
     2
     3= GENI API Identifiers =
     4
     5GENI identifies objects (be it a researcher, resource, clearinghouse, or aggregate manager) with a [http://en.wikipedia.org/wiki/Uniform_Resource_Name Uniform Resource Name (URN)].  ''' The format of a GENI URN is: urn:publicid:IDN+<authority string>+<type>+<name>.'''  The format is adapted from the [http://www.protogeni.net/trac/protogeni/wiki/URNs ProtoGENI/GMOC GENI URN proposal].  All sections of the URN are mandatory.  Note that additional '+' characters are allowed in the <name> section.
     6
     7=== Public Identifiers ===
     8GENI URNs are in the [http://www.faqs.org/rfcs/rfc3151.html URN namespace for Public Identifiers].  As such, each GENI URN is of the form: urn:publicid:{transcribed-public-identifier}.  [http://www.faqs.org/rfcs/rfc3151.html RFC 3151] describes how public identifiers are transcribed to URNs (which involves collapsing whitespace and replacing certain characters with % encoded values). 
     9
     10The public identifier section of a GENI URN must begin with "IDN ".  When transcribed, this means that all GENI URNs begin with "urn:publicid:IDN+". 
     11
     12To transcribe a public ID to a URN use the following rules:
     13
     14|| From || Transcribe to ||
     15|| leading and trailing whitespace || trim ||
     16|| whitespace || collapse to a single '+' ||
     17|| '//' || ':' ||
     18|| '::' || ';' ||
     19|| '+' || '%2B' ||
     20|| ":' || '%3A' ||
     21|| '/' || '%2F' ||
     22|| ';' || '%3B' ||
     23|| '!'' || '%27' ||
     24|| '?' || '%3F' ||
     25|| '#' || '%23' ||
     26|| '%' || '%25 ||
     27
     28
     29Example translations:
     30
     31|| ''Public ID'' || ''GENI URN'' ||
     32|| IDN plc//princeton authority sa || urn:publicid:IDN+plc:princeton+authority+sa ||
     33|| IDN gcf//gpo//gpolab user joe || urn:publicid:IDN+gcf:gpo:gpolab+user+joe ||
     34|| IDN gcf//gpo//gpolab node switch 1 port 2|| urn:publicid:IDN+gcf:gpo:gpolab+node+switch+1+port+2 ||
     35
     36
     37
     38
     39=== Examples and Usage ===
     40
     41An example: urn:publicid:IDN+geni:gpo:gcf+user+joe
     42
     43
     44In the GENI API, URNs are used to name slices (as seen as arguments in GENI API calls), to identify users, and to label resources.  URNs are also used in GENI certificates (to bind public keys to identifiers) and in Credentials (to grant permissions to source identifiers on target identifiers). 
     45
     46
     47
     48
     49
     50
     51=== Authority String ===
     52Authorities are resource namespaces.  For instance, 'plc' is the overall PlanetLab namespace and 'plc.princeton' and 'plc.bbn' are specific namespaces for the Princeton and BBN PlanetLab sites.  The authority string format is 'toplevelauthority:sub_authority1:...:sub_authority_n.  Only entities with URNs of type 'authority' are allowed to sign credentials for a namespace (except in the case of delegation).
     53
     54For example, a ProtoGENI Clearinghouse with URN like protogeni.utah.... cannot issue a slice credential giving a user privileges on a PlanetLab slice (with urn plc.princeton....). Only PlanetLab can grant rights over PlanetLab slices.
     55
     56
     57=== Type ===
     58The <type> string has not yet been completely specified.  Existing types in use include user, authority, switch, node, sliver, ticket, and interface.  Please try to use the available types unless they simply do not fit for you.  In which case, please contact the GPO to inform them of your new type.
     59
     60
     61''Note: For ProtoGENI compatibility, slice credentials should be signed by an authority with name "sa", e.g., urn:publicid:IDN+gcf:gpo+authority+sa.''
     62
     63=== Name ===
     64The <name> string can be any valid string constrained by the URN character set (e.g. no whitespace).
     65
     66
     67
     68
     69{{{
     70#!comment
     71=== Transcribing a Public Identifier for URN formatting ===
     72
     73|| From || Transcribe to ||
     74|| leading and trailing whitespace || trim ||
     75|| whitespace || collapse to a single '+' ||
     76|| '//' || ':' ||
     77|| '::' || ';' ||
     78|| '+' || '%2B' ||
     79|| ":' || '%3A' ||
     80|| '/' || '%2F' ||
     81|| ';' || '%3B' ||
     82|| '!'' || '%27' ||
     83|| '?' || '%3F' ||
     84|| '#' || '%23' ||
     85|| '%' || '%25 ||
     86
     87=== FIXME ===
     88 - pointers to spots in gcf codebase
     89}}}