home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc1202.txt < prev    next >
Text File  |  1996-05-07  |  22KB  |  329 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                            M. Rose Request for Comments: 1202       Performance Systems International, Inc.                                                            February 1991 
  8.  
  9.                        Directory Assistance Service 
  10.  
  11. Status of this Memo 
  12.  
  13.    This document defines a mechanism by which a user-interface may    access a textual DAP-like interface over a TCP/IP connection.  This    is a local mechanism.  This memo provides information for the    Internet community.  It does not specify any standard.  Distribution    of this memo is unlimited. 
  14.  
  15. Table of Contents 
  16.  
  17.    1. Introduction ..........................................   1    1.1 An Aside ............................................    3    2. Protocol ..............................................   3    2.1 Control Connection ..................................    4    2.1.1 Initialization ....................................    4    2.1.2 Transactions ......................................    4    2.1.2.1 INTR command ....................................    4    2.1.2.2 STAT command ....................................    5    2.1.2.3 QUIT command ....................................    5    2.2 Data Connection .....................................    5    2.2.1 Transactions ......................................    5    2.2.2 Responses .........................................    6    2.2.2.1 Numeric Responses ...............................    6    2.2.2.2 'm' Response ....................................    6    2.2.2.3 'y' Response ....................................    6    2.2.2.4 'p' Response ....................................    7    2.2.2.5 'e' Response ....................................    7    2.2.2.6 'l' Response ....................................    7    2.2.2.7 'd' Response ....................................    8    2.2.2.8 'P' Response ....................................    8    3. Example Interaction ...................................   9    4. References ............................................  10    5. Security Considerations...............................   11    6. Author's Address......................................   11 
  18.  
  19. 1.  Introduction 
  20.  
  21.    The OSI Directory [1] provides a powerful infrastructure for the    retrieval of information objects.  This infrastructure can be used to    support, e.g., white pages applications, application entity lookup,    and so on. 
  22.  
  23.  
  24.  
  25. Rose                                                            [Page 1] 
  26.  RFC 1202              Directory Assistance Service         February 1991 
  27.  
  28.     The Directory service is provided to applications through the    Directory Access Protocol (DAP), which binds a Directory User Agent    (DUA) to a Directory System Agent (DSA). 
  29.  
  30.                                         | Directory Service                                         |    provided via DAP                                         |                +-----------+            |            +-----------+                |           |            |            |           |                |    DUA    | <----------+----------> |    DSA    |                |           |            |            |           |                +-----------+            |            +-----------+                                         |                          Directory User | 
  31.  
  32.    The DAP is an OSI application layer protocol which uses the rich OSI    upper-layer infrastructure.  Unfortunately, the coding investment to    implement the DAP is significant.  As such, it is difficult to host    applications using the Directory on smaller workstations and personal    computers. 
  33.  
  34.    This memo details a local mechanism which has been successfully used    to separate the functionality of the DAP from the complexity of    implementing the DAP.  That is, a split-DUA model is used: the DAP is    implemented on an entity (the "Directory Assistant"), which resides    on a capable workstation or mainframe and exports a simpler    interface, the "Directory Assistance" (DA) protocol, to other end-    systems where the user-interface resides, termed the DA-client. 
  35.  
  36.    Since this mechanism provides assistance to applications wishing to    access the Directory, it is termed the "Directory Assistance" (DA)    service: 
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56. Rose                                                            [Page 2] 
  57.  RFC 1202              Directory Assistance Service         February 1991 
  58.  
  59.                                          | Directory Service                  split-DUA              |    provided via DAP                                         |                +-----------+            |            +-----------+                |           |            |            |           |                | Directory | <----------+----------> |    DSA    |                | Assistant |            |            |           |                |           |            |            +-----------+                +-----------+            |                     /|\                 |                      |                  |                      | DA-service       |                      |   provide via    |                      |   DA-protocol    |                      |                  |                ------+------            |                      |                  |                      |                  |                      |                  |                      |                  |                      |                  |                     \|/                 |                +-----------+            |                |           |            |                | DA-client |            |                |           |            |                +-----------+            |                                         |                          Directory User | 
  60.  
  61.  1.1.  An Aside 
  62.  
  63.    This memo documents an already existing protocol, which was    originally used to provide a split-DUA model within the same host.    In the absence of detailed historical and implementational    understanding, some of the mechanisms described may not appear    intuitive. 
  64.  
  65. 2.  Protocol 
  66.  
  67.    The DA service operates using two TCP connections: a control    connection, and a data connection.  The control connection defines    the lifetime of an instance of the DA service; throughout this    lifetime, several data connections may be established.  However, at    any given instant, between zero and one data connections will be in    progress. 
  68.  
  69.  
  70.  
  71.  Rose                                                            [Page 3] 
  72.  RFC 1202              Directory Assistance Service         February 1991 
  73.  
  74.     The DA service is provided by the "Directory Assistant", which    consists of two entities: a DA-server, which manages the control    connection; and, a DAP-listener, which responds to commands on the    data connection.  The DA-server oversees the behavior of the DAP-    listener. 
  75.  
  76. 2.1.  Control Connection 
  77.  
  78.    Data sent over the control connection consists of a series of    transactions.  NVT-ASCII is used to express these transactions.  Each    transaction consists of the client sending a directive--a line of    text terminated by CR-LF; the DA-server returns a response--a line of    text terminated by CR-LF.  All responses from a DA-server start with    either "+OK" or "-ERR" depending on whether the transaction was    successful. 
  79.  
  80. 2.1.1.  Initialization 
  81.  
  82.    A DA-server listens on TCP port 411 for incoming connections.  Upon    establishing a control connection, the DA-server returns a response    indicating whether the service has been started.  If successful, the    response contains an IP-address and a TCP port, expressed in NVT-    ASCII, and separated by one or more instances of the space character.    This information corresponds to the TCP-endpoint that the DAP-    listener will use for the data connection. 
  83.  
  84.    Note that the DA-server and DAP-listener need not reside at the same    IP-address.  In the future, DA-servers may employ a internal protocol    for load-balancing purposes. 
  85.  
  86.    If the DA service can not be started, an error response is returned    and the control connection is closed. 
  87.  
  88.  2.1.2.  Transactions 
  89.  
  90.    All transactions with the DA-server consist of a command followed by    zero or more arguments, separated by the space character. 
  91.  
  92. 2.1.2.1.  INTR command 
  93.  
  94.    The INTR command takes no arguments. 
  95.  
  96.    The INTR command is used to interrupt any DAP transaction    currently in progress. 
  97.  
  98.    The INTR command always returns success. 
  99.  
  100.  
  101.  
  102.  Rose                                                            [Page 4] 
  103.  RFC 1202              Directory Assistance Service         February 1991 
  104.  
  105.  2.1.2.2.  STAT command 
  106.  
  107.    The STAT command takes no arguments. 
  108.  
  109.    The STAT command is used to verify that the DAP-listener is    available. 
  110.  
  111.    The STAT command returns success only if the DAP-listener is    still active. 
  112.  
  113. 2.1.2.3.  QUIT command 
  114.  
  115.    The QUIT command takes no arguments. 
  116.  
  117.    The QUIT command is used to terminate the DA service. 
  118.  
  119.    The QUIT command always returns success. 
  120.  
  121. 2.2.  Data Connection 
  122.  
  123.    Data sent over a data connection consists of a single DAP-    transaction.  NVT-ASCII is used to express these transactions.  Each    transaction consists of the client sending a command--a line of text    terminated by the LF-character; the DAP-listener returns zero or more    responses, each with a specific termination sequence.  All responses    from a DAP-listener start with a single identifying character.  If    the character is a digit (0-9), then the termination sequence    consists of a closing the data connection; otherwise, if the    character is a lower-case letter (a-z), then the response is    interactive and is terminated by the LF-character. 
  124.  
  125. 2.2.1.  Transactions 
  126.  
  127.    All transactions with the DAP-listener consist of a command followed    by zero or more arguments, separated by the space character.    Double-quotes may be used to prevent separation of tokens. 
  128.  
  129.    The command set is taken from the DISH program: 
  130.  
  131.                add         add a new entry                bind        connect to the Directory                compare     compare entry's attribute                delete      delete an entry                fred        back-end to FrED                list        list children                modify      modify an existing entry                modifyrdn   modify an entry's name                moveto      move to a position 
  132.  
  133.  
  134.  
  135. Rose                                                            [Page 5] 
  136.  RFC 1202              Directory Assistance Service         February 1991 
  137.  
  138.                 search      search for an object                showentry   show an entry                showname    show an entry's name                squid       status of dish                unbind      disconnect from the Directory 
  139.  
  140.    See [2] for a complete list of commands and arguments. 
  141.  
  142.    Note that commands and arguments are in lower-case, and may    abbreviated to any unique prefix. 
  143.  
  144. 2.2.2.  Responses 
  145.  
  146.    There are two kinds of responses: numeric-responses, which consist of    arbitrary text; and, letter-responses, which consist of brief text,    and expect further interaction from the client. 
  147.  
  148. 2.2.2.1.  Numeric Responses 
  149.  
  150.    If the response is '1', then the DAP-transaction terminated normally;    if the response is '2', then the DAP-transaction failed; if the    response is '3', then the DAP-transaction was a search returning more    than one result and one of the -hitone or -list option was selected    for the search; if the response is '4', then the DAP-transaction    terminated normally and the remainder of this line consists of the    name of an entry (see the 'd' Response below); if the response is    '5', then all children of an entry were found by the DAP-transaction.    Once the response is completely sent, the DAP-listener closes the    data connection. 
  151.  
  152.    Note that although numeric responses utilize ASCII, they are not    NVT-ASCII; in particular, the LF-character is used to indicate end-    of-line, rather than the CR-LF line termination sequence of NVT-    ASCII. 
  153.  
  154. 2.2.2.2.  'm' Response 
  155.  
  156.    The 'm' response contains a one-line message which should be    presented to the user. 
  157.  
  158.    At this point, the client returns a response consisting of 'm'    followed by the LF-character.  The client should then continue    reading from the existing data connection. 
  159.  
  160. 2.2.2.3.  'y' Response 
  161.  
  162.    The 'y' response contains a yes/no question which should be presented    to the user.  After querying the user, the response (either 'y' or 
  163.  
  164.  
  165.  
  166. Rose                                                            [Page 6] 
  167.  RFC 1202              Directory Assistance Service         February 1991 
  168.  
  169.     'n'), followed by the LF-character, should be sent to the DAP-    listener.  The client should then continue reading from the existing    data connection. 
  170.  
  171. 2.2.2.4.  'p' Response 
  172.  
  173.    The 'p' response contains a password-prompt which should be presented    to the user.  After querying the user, the client returns a response    consisting of 'p' followed by the password supplied by the user    followed by the LF-character.  The client should then continue    reading from the existing data connection. 
  174.  
  175. 2.2.2.5.  'e' Response 
  176.  
  177.    The 'e' response is used to ask the user to edit some text.    Following the 'e' character is a decimal number in ASCII followed by    the LF-character, indicating the number of octets that should be    presented to the user for editing (these octets may include LF-    characters). 
  178.  
  179.    At this point, the client returns a response consisting of a single    character followed by a LF-character.  If the character is 'e', the    edit is aborted (e.g., the text is too large), and the client should    then continue reading from the existing data connection. 
  180.  
  181.    Otherwise, the DAP-listener sends the indicated number of octets    corresponding to the buffer that the user is to edit.  After the user    edits the buffer, one of two responses should be sent. 
  182.  
  183.    If the user aborted the edit, the response sent to the DAP-listener    is a single character 'e', followed by the LF-character. 
  184.  
  185.    Otherwise, the response consists of any single character other than    indicating the number of octets immediately following that resulted    from the user-edit. 
  186.  
  187.    Regardless of the outcome, the client should then continue reading    from the existing data connection. 
  188.  
  189. 2.2.2.6.  'l' Response 
  190.  
  191.    The 'l' response contains an entry for a selection list to be    presented to the user.  The form of this entry consists of two    strings separated by the '$' character, and terminated by the LF-    character.  The first string is a user-friendly name, suitable for    display to the user; the second string is a fully-qualified    Distinguished Name in textual format. 
  192.  
  193.  
  194.  
  195.  Rose                                                            [Page 7] 
  196.  RFC 1202              Directory Assistance Service         February 1991 
  197.  
  198.     At this point, the client returns a response consisting of 'l'    followed by the LF-character. 
  199.  
  200.    The client should continue to accumulate selection entries until an    LF-character. 
  201.  
  202.    At this point, the user should be asked to select one or more of the    selection entries.  After this selection, the client sends back a    response consisting of 'L' followed by one or more decimal numbers in    ASCII followed by the LF-character.  The numbers are separated by    spaces, and correspond to the entries selected by the user.  (The    entry corresponding to the first 'l' response is numbered 1, etc.) 
  203.  
  204.    The client should then continue reading from the existing data    connection. 
  205.  
  206. 2.2.2.7.  'd' Response 
  207.  
  208.    The 'd' response contains a name that the client may be interested    in.  The form of this name consists of two strings separated by the    '$' character, and terminated by the LF-character.  The first string    is a user-friendly name, suitable for display to the user; the second    string is a fully-qualified Distinguished Name in textual format. 
  209.  
  210.    At this point, the client returns a response consisting of 'd'    followed by the LF-character.  The client should then continue    reading from the existing data connection. 
  211.  
  212. 2.2.2.8.  'P' Response 
  213.  
  214.    The 'P' response is used to transmit a picture to the client.    Following the 'P' character is a decimal number in ASCII followed by    a name and then the LF-character.  The decimal number indicates the    size of the picture.  The name contains three strings separated by    the '$' character.  The first string is the name of the attribute    corresponding to the picture, in textual format; the second string is    a user-friendly name, suitable for display to the user; and, the    third string is a fully-qualified DistingiushedName in textual    format. 
  215.  
  216.    At this point, the client returns a response consisting of a single    character followed by a LF-character.  If the character is 'P', the    picture will not be sent (e.g., the image is too large), and the    client should then continue reading from the existing data    connection. 
  217.  
  218.    Otherwise, the DAP-listener sends the indicated number of octets    corresponding to the picture.  The picture is encoded using the PBM 
  219.  
  220.  
  221.  
  222. Rose                                                            [Page 8] 
  223.  RFC 1202              Directory Assistance Service         February 1991 
  224.  
  225.     format from the PBMPLUS package. 
  226.  
  227.    Regardless of the outcome, the client should then continue reading    from the existing data connection. 
  228.  
  229. 3.  Example Interaction 
  230.  
  231.    In the text that follows, "S:" refers to the DA-server, "L:" refers    to the DAP-listener, "C:" refers to the client talking to the DA-    server, and, "I:" refers to the client talking to the DAP-listener. 
  232.  
  233.           S: <wait for connection on TCP port 411> 
  234.  
  235.           C: <open connection to DA-server>           L: <wait for connections>           S: +OK 192.33.4.21 32867 
  236.  
  237.           I: <open connection to DAP-listener>           I: bind -simple -user "@c=US@cn=Manager"           L: pc=US@cn=Manager           -- client asks user for password for "c=US@cn=Manager"           I: psecret           L: <closes connection, signaling success but no response> 
  238.  
  239.           -- since response was null, client verifies that DAP-listener           -- is still operating...           C: STAT           S: +OK 
  240.  
  241.           I: <open connection to DAP-listener>           I: fred -expand "@"           L: 5              North America$l=North America              US$c=US              ...           L: <closes connection> 
  242.  
  243.           I: <open connection to DAP-listener>           I: fred -ufn rose,psi,us           L: 1              <followed by much data>           L: <closes connection> 
  244.  
  245.           I: <open connection to DAP-listener>           I: fred -ufn -list,rose,ps,us           L: lHewlett-Packard, US$c=US@o=Hewlett-Packard           I: l           L: lPerformance Systems International, US$c=US@o=Performance... 
  246.  
  247.  
  248.  
  249. Rose                                                            [Page 9] 
  250.  RFC 1202              Directory Assistance Service         February 1991 
  251.  
  252.            I: l           L: lRutgers University, US$c=US@o=Rutgers University           I: l           L: Lps           -- client presents selection list to user asking to select           -- matches for 'ps', user selects the 2nd           I: L 2           L: dManager, US$c=US@cn=Manager           I: d           L: 4Marshall Rose, ...$c=US@o=Performance...              <followed by much data>           L: <closes connection> 
  253.  
  254.           I: <open connection to DAP-listener>           I: fred -ufn -list,schoffstall,ps,us           L: 33 matches found.           Martin Schoffstall, ...$c=US@o=Performance...           Marvin Schoffstall, ...$c=US@o=Performance...           Steve Schoffstall, ...$c=US@o=Performance...           L: <closes connection> 
  255.  
  256.           C: QUIT           L: <stop listening for connections>           S: +OK           C: <close connection> 
  257.  
  258.           S: <wait for next connection> 
  259.  
  260. 4.  References 
  261.  
  262.    [1] Information Processing - Open Systems Interconnection - The        Directory, International Organization for Standardization.        International Standard 9594, (1988). 
  263.  
  264.    [2] Kille, S., Robbins, C., Roe, M., and A. Turland, "The ISO        Development Environment: User's Manual", Volume 5: QUIPU,        Performance Systems International, January 1990. 
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  Rose                                                           [Page 10] 
  279.  RFC 1202              Directory Assistance Service         February 1991 
  280.  
  281.  5.  Security Considerations 
  282.  
  283.    Security considerations are not discussed in this memo. 
  284.  
  285. 6.  Author's Address 
  286.  
  287.    Marshall T. Rose    PSI, Inc.    PSI California Office    P.O. Box 391776    Mountain View, CA 94039 
  288.  
  289.    Phone: (415) 961-3380 
  290.  
  291.    EMail: mrose@psi.com 
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  Rose                                                           [Page 11] 
  328.  
  329.