home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 8 Other / 08-Other.zip / DBMRPW.ZIP / READ.ME < prev    next >
Text File  |  1992-08-19  |  24KB  |  486 lines

  1.  
  2.   (C) Copyright IBM Corp. 1992
  3.   REMOTE PASSWORD ADMINISTRATION UTILITY
  4.   For Client-to-Server-to-Host Password Updates
  5.  
  6.   This is for EXTENDED SERVICES 1.0 (ES 1.0)
  7.  
  8.   PURPOSE:  This utility is intended for use with the OS/2 Database
  9.             Manager, while running a Server and Client(s) arrangement
  10.             without the use of the OS/2 LAN Server program.
  11.  
  12.             The problem to be solved is: how does a user on a client
  13.             machine update the password access on the server, for
  14.             a particular user-id.  In addition, if a host session(s)
  15.             is provided and active on the server, how does a user on a
  16.             client machine update the password access on the host
  17.             session(s). The problem is physical access to the
  18.             server is very difficult or virtually impossible, due to
  19.             distance or security access.
  20.  
  21.             This utility allows a user on a client machine to update 
  22.             the password access on the server, for a particular 
  23.             user-id.  In addition, if a host session(s) is provided 
  24.             and active on the server, this utility allows a user on a 
  25.             client machine to update the password access on the host 
  26.             session(s), all without having physical access to the server.
  27.  
  28.  
  29.   ASSUMPTIONS: 1. Both the Client and Server are running OS/2.
  30.                   (Support for a DOS or DOS-Windows client is tbd.)
  31.  
  32.                2. The OS/2 Database Manager Server and Client have
  33.                   been installed, and are running.
  34.  
  35.                3. If RACF Host password updates are desired, the OS/2 
  36.                   Communications Manager has been installed, and 3270
  37.                   or 5250 terminal emulator sessions have been configured.
  38.  
  39.                4. The same userid is being used for: the server logon, and
  40.                   all host sessions (if any).
  41.  
  42.                5. The same password is being used for: the server logon, and
  43.                   all host sessions (if any).
  44.  
  45.  
  46.   INSTALLATION:
  47.     SERVER: 1. User must create a directory with the following name
  48.                and location.  This is mandatory, and has no relation
  49.                to where the database(s) may actually reside.
  50.  
  51.                C:\DBMRPWA    (this stands for DataBase Manager Remote
  52.                               PassWord Administration)
  53.  
  54.             2. The user then inserts the Utility diskette in to drive
  55.                A: and does a 
  56.                   copy a:*.* c:\dbmrpwa <enter>
  57.  
  58.                What has been copied into this directory:
  59.  
  60.                   a. HOST.DIR (required name - contents explained
  61.                                below).
  62.                   b. VM1.RSP (a sample, contents explained below).
  63.                   c. VM2.RSP (a sample, contents explained below).
  64.                   d. MVS.RSP (a sample, contents explained below).
  65.                   e. DBMRPWAS.DLL (this is the code that executes on
  66.                                    the server).
  67.                   f. DBMRPWA.EXE  (used on the Client; used by the
  68.                                    Database Administrator to test
  69.                                    the setup code on the Server.)
  70.                   g. READ.ME (the file you are reading now).
  71.  
  72.             3. User alters the CONFIG.SYS by adding the following
  73.                to an existing LIBPATH= statement (or creates a new
  74.                LIBPATH= statement):
  75.  
  76.                   LIBPATH=C:\DBMRPWA;
  77.                         or
  78.                   LIBPATH=(stuff already there);C:\DBMRPWA;
  79.                         NOTE: don't forget the semicolon (;) preceeding
  80.                         the directory's path name.
  81.  
  82.             4. The user must now perform a shutdown of the system and
  83.                then restart (ctrl-alt-del) in order for the updated
  84.                CONFIG.SYS to take effect.
  85.  
  86.                NOTE: if you have an existing LIBPATH= statement in
  87.                your CONFIG.SYS file, the shutdown can be avoided by
  88.                doing the following:
  89.                a. Examine the existing LIBPATH= statement and pick
  90.                   a subdirectory from the list.  We are going to copy
  91.                   our executable file into this subdirectory.
  92.                b. Go back to step 2 and copy DBMRPWAS.DLL into the
  93.                   subdirectory you just selected.
  94.                c. Type the name of this subdirectory in the following
  95.                   blank area: 
  96.                   ALTERNATE SUBDIRECTORY IS:___________________________.
  97.                d. Rename this file OLDREAD.DOC and save it back.
  98.                   Future upgrades will be copied into this subdirectory,
  99.                   and you will want to remember where you copied
  100.                   DBMRPWAS.DLL so that you may replace it with the
  101.                   updated code.
  102.                e. Don't remove C:\DBMRPWA subdirectory!
  103.                   Our code still requires that it be present.
  104.                   (thanks).
  105.  
  106.             5. Now is the time to consider the contents of the 3 files
  107.                discussed in step 2 above.  All 3 files are plain,
  108.                flat ASCII files that can be edited by the same editor
  109.                you are using for this READ.ME file.
  110.  
  111.                a. HOST.DIR is used if you are running VM or MVS or
  112.                   OS/400 host sessions.  These are the host sessions running
  113.                   on the 3270 or 5250 terminal emulators.
  114.                   The contents should be as follows:
  115.                   - If no host connections: file is blank, or file does not
  116.                     exist (you erase it).
  117.                   - If any host connection: file contains at least one line as
  118.                     shown below.
  119.                   - For each additional userid and/or session id, file contains
  120.                     additional line(s) as shown here:
  121.  
  122.                 (userid),(session-id),(time-out-1),(time-out-2),(response-file)
  123.  
  124.                     Where 
  125.                       userid = both the Server Userid and the Host
  126.                                userid(s) (must be the same).
  127.                       session-id = the nickname for the host session: 
  128.                                    A, B, C, D, E (there are only 5 
  129.                                    sessions allowed in Comm. Manager)
  130.                       time-out-1 = When-Say time out (non-zero, in seconds),
  131.                                    refer to the appendix below for a more 
  132.                                    detailed explanation of this time out.
  133.                       time-out-2 = If/For-Say time out (non-zero, in seconds)
  134.                                    refer to the appendix below for a more 
  135.                                    detailed explanation of this time out.
  136.                       response-file = file that contains keystrokes to
  137.                                       effect a password change on the
  138.                                       host. Refer to the appendix below for
  139.                                       a more detailed explanation of this file.
  140.                                       NOTE: do not use a path as part of
  141.                                       the name; the file must be in C:\DBMRPWA,
  142.                                       so we do not check for path.
  143.  
  144.                     For example: WANGLER, A, 30, 5, vm1.rsp
  145.                                  WANGLER, B, 30, 5, vm2.rsp
  146.  
  147.                     NOTE: there are up to 5 sessions available through
  148.                     Communications Manager configuration.  While this allows
  149.                     5 different hosts to be accessed simultaneously, it also
  150.                     allows 5 different sessions to the same host.  So, if there
  151.                     are a large number of Clients likely to update passwords
  152.                     at the same time, on the same host, then the available
  153.                     sessions ids could be distributed evenly amongst the
  154.                     clients.  For example: 10 clients would mean that 1
  155.                     session id could be shared per 2 Clients.  This would
  156.                     likely improve over-all response time; however, having
  157.                     all Clients using the same session id would certainly
  158.                     still work (the password updates would all take place
  159.                     serially, of course, and take longer to accomplish).
  160.  
  161.                b. VM1.RSP and VM2.RSP and MVS.RSP are simple examples.  
  162.                   They can be named anyway desired (as long as the entry 
  163.                   in HOST.DIR is updated to have the correct file name).
  164.  
  165.                   There is at least one response file.  Usually, each type
  166.                   of host requires a unique response file, usually due to
  167.                   differences in what an operator must key to logon and
  168.                   update the password.  Many userids, for the same host,
  169.                   can have a single response file.  For example, if there
  170.                   is only one host (VM1) but there are 30 userids, all
  171.                   30 entries in the HOST.DIR could use the same response
  172.                   file. Please see the Appendix for a complete explanation 
  173.                   of how this file can be keyed.  
  174.  
  175.  
  176.             6. As part of the installation, all the users from a given client 
  177.                must have connect authority to the same database residing at 
  178.                the server.  All the clients may share a database in common,
  179.                or each client may have a unique database, as long as all the
  180.                users at each client have connect authority to the same
  181.                database residing at the server.
  182.  
  183.                One way to do this is to create a new database on the
  184.                server, and catalog it at each client.  This will automatically
  185.                give all current and future users, on each client, access to
  186.                the new database (default for a database is to be PUBLIC, or
  187.                open to all users).  This costs over a megabyte of hardfile
  188.                space to be used on the server, however. 
  189.  
  190.                To do this, from the OS/2 command line, the following may be 
  191.                executed:
  192.                a. startdbm <enter>
  193.                b. logon userid /p:password <enter>
  194.                c. dbm create database dbmrpwa on c
  195.                   (where c is drive c: or any other convenient drive).
  196.  
  197.  
  198.                An alternative method is to identify an existing database,
  199.                on the server, that is accessible to all users at a given
  200.                client, and catalog this database at a given client with
  201.                an alias that must conform to the following naming convention:
  202.                DBMRPWA#, where # can be any alphabetic or numeric.
  203.                In fact, each client can use a different database, as long
  204.                as it is aliased correctly and is accessible to all users.
  205.                (See CLIENT INSTALLATION for how to do the cataloging and
  206.                 aliasing.)
  207.  
  208.             7. Testing at the server can be done to confirm the contents
  209.                of all the editable files (see:TESTING AT THE SERVER below).
  210.                To do this, catalog a local database as follows:
  211.  
  212.                dbm catalog database <name> as DBMRPWA0 <enter>
  213.  
  214.  
  215.   INSTALLATION:
  216.     CLIENT: 1. User should select (or create) a directory that is in
  217.                the PATH statement of the CONFIG.SYS file.  We suggest
  218.                SQLLIB directory, for example.
  219.  
  220.             2. The user then inserts the Utility diskette in to drive
  221.                A: and does a 
  222.                   copy a:DBMRPWA.EXE into the selected directory.
  223.  
  224.             3. The user now must catalog the server's database so that
  225.                the Client may access this database remotely.  We can use
  226.                the 'dbm command line interface' to do this.  At the OS/2
  227.                command line, type the following:
  228.  
  229.                dbm catalog database <name> as DBMRPWA0 at node WORK1<enter>
  230.  
  231.                Here, the items in uppercase are examples of the ALIAS
  232.                (DBMRPWA0) and the Workstation name (WORK1).  The Workstation
  233.                name (<name>)is, of course, the name given to the Server during
  234.                its installation.  The ALIAS name should be chosen so it
  235.                is unique at that Client. The alias used must conform to the 
  236.                following naming convention: DBMRPWA#, where # can be any 
  237.                alphabetic or numeric.
  238.  
  239.                If 2 or more servers are set up for this utility, then all the
  240.                servers Workstations must be cataloged (at each client, don't
  241.                forget). A unique ALIAS must be used every time.  In the
  242.                example above, we have a Workstation named WORK1; we can also 
  243.                have 2 other Workstations named WORK2 and WORK3.  Here are the 
  244.                catalog SQL statements for all three:
  245.  
  246.                CLIENT #1:
  247.                dbm catalog database SAMPLE  as DBMRPWA0 at node WORK1<enter>
  248.                dbm catalog database PAYROLL as DBMRPWA1 at node WORK2<enter>
  249.                dbm catalog database DBMRPWA as DBMRPWA2 at node WORK3<enter>
  250.  
  251.                Each client may re-use the same set of ALIAS names, so:
  252.  
  253.                CLIENT #2:
  254.                dbm catalog database ACCOUNTS as DBMRPWA0 at node WORK1<enter>
  255.                dbm catalog database DBMRPWA  as DBMRPWA1 at node WORK2<enter>
  256.                dbm catalog database DBMRPWA  as DBMRPWA2 at node WORK3<enter>
  257.  
  258.  
  259.   TESTING AT THE SERVER:
  260.  
  261.             1. The contents of the editable files (HOST.DIR, and VM1.RSP, 
  262.                etc) may be confirmed by executing the DBMRPWA.EXE at the
  263.                server, from the subdirectory C:\DBMRPWA.
  264.  
  265.                Execution will be the same as for the client, as 
  266.                described below.  Except, when filling in the Utility popup,
  267.                set Workstation = LOCAL.
  268.  
  269.                Some items to confirm: do I have any host sessions?  If not,
  270.                is the HOST.DIR blank?  If so, did I add 1 line for each
  271.                userid and/or host to the HOST.DIR file?  Are the time-outs
  272.                long enough?  Do the response files execute the way I expected 
  273.                them to?
  274.  
  275.   EXECUTION:
  276.     SERVER: 1. Confirm that the userid that will be used by the client
  277.                exists, that it is the same as the Host logon id(s), and that
  278.                all of these now have the same password.  Also, be sure that
  279.                each host session referenced by HOST.DIR has been started
  280.                by Commo Manager (ie: logon can be done by DBMRPWA).
  281.  
  282.   EXECUTION:
  283.     CLIENT: 1. User must execute the dbmrpwa.exe file:
  284.  
  285.                >dbmrpwa <enter>
  286.  
  287.             2. At this point, the popup appears, into which the operator
  288.                can enter the old and new passwords, the userid, and the
  289.                workstation (Server) name:
  290.  
  291.               ┌───┬──────────────────────────────────────────────────┐
  292.               │ - │ DB MGR Remote Password Administration            │
  293.               ├───┴──────────────────────────────────────────────────┤
  294.               │                                                      │
  295.               │             USER ID:   ________________________      │
  296.               │                                                      │
  297.               │    CURRENT PASSWORD:   ________________________      │
  298.               │                                                      │
  299.               │        NEW PASSWORD:   ________________________      │
  300.               │                                                      │
  301.               │  NEW PASSWORD TWICE:   ________________________      │
  302.               │                                                      │
  303.               │  REMOTE WORKSTATION:   ________________________      │
  304.               │                                                      │
  305.               │    ╔════════╗      ╔═══════╗                         │
  306.               │    ║ CHANGE ║      ║ QUIT  ║                         │
  307.               │    ╚════════╝      ╚═══════╝                         │
  308.               │                                                      │
  309.               └──────────────────────────────────────────────────────┘
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.   APPENDIX:
  318.  
  319.   RESPONSE FILES EXPLAINED
  320.  
  321.   Here are the contents of the example files:
  322.  
  323.   VM1.RSP:
  324. / This is an example response file for changing an VM1 password.
  325.  When  "MSG10"       Say "VM1 #U@E"
  326.  For   "not in CP"   Say "logoff@E"     Return "invalid user id #"#U#"."
  327.  When  "password"    Say "#P/#N/#N@E"   / this line changes the password
  328.  For   "incorrect"   Say "logoff@E"     Return "Invalid password #"#P#"."
  329.  For   "INVALID"     Say "logoff@E"     Return "Invalid new password #"#N#"."
  330.  If    "SYSNEWS"     Say "@3"
  331.  If    "HOLDING"     Say "@C"
  332.  If    "MORE"        Say "@C"
  333.  When  "PROFS"       Say "logoff@E"
  334.  
  335.  
  336.   VM2.RSP:
  337. / This is an example response file for changing an VM2 password.
  338.  When  "MSG10"       Say "VM2 #U@E"
  339.  For   "not in CP"   Say "logoff@E"     Return "invalid user id #"#U#"."
  340.  When  "password"    Say "#P/#N/#N@E"   / this line changes the password
  341.  For   "incorrect"   Say "logoff@E"     Return "Invalid password #"#P#"."
  342.  For   "INVALID"     Say "logoff@E"     Return "Invalid new password #"#N#"."
  343.  If    "SYSNEWS"     Say "@3"
  344.  If    "HOLDING"     Say "@C"
  345.  If    "MORE"        Say "@C"
  346.  When  "Ready;"      Say "logoff@E"
  347.  
  348.  
  349.   MVS.RSP:
  350. / This is an example response file for changing an MVS password.
  351.  When  "access code:"   Say "TSO4@E"
  352.  When  "USERID -"       Say "#U@E"
  353.  When  "Password"       Say "#P#T#N@E"   / these two lines
  354.  When  "verification"   Say "#N@E"       / change the password
  355.  When  "***"            Say "@E"
  356.  When  "OPTION"         Say "x@E"
  357.  When  "READY"          Say "logoff@E"
  358.  
  359.  
  360.  
  361.   1. SYNTAX - how to construct the statements
  362.   ORDER DEPENDENCE
  363.   The entries in the response files are order dependent.
  364.   This means that the statements execute in the order in which they appear.
  365.  
  366.   TIME-OUTS EXPLAINED
  367.   Each statement has a time-out value associated with it.
  368.   If the first clause of the statement is not satisfied within the time-out
  369.   value specified (in the HOST.DIR) then a time-out action occurs.
  370.   For the 'WHEN' clauses, a time-out causes an exit from the response file;
  371.   for the 'IF' and 'FOR' clauses, a time-out causes control to be passed
  372.   to the next statement.
  373.  
  374.  
  375.   SPANNING MULTIPLE LINES
  376.   Also, the entries in the response file may span mutiple lines, since there
  377.   are no optional parts to them.  However, each keyword/string pair must 
  378.   appear on the same line. For example:
  379.  
  380.        For "INVALID" Say "logoff@E" Return "Invalid new password #"#N#"."
  381.  
  382.   is the same as
  383.        / this is a check for invalid password
  384.        For "INVALID"  / check for an invalid password
  385.          Say "logoff@E"  / logoff if we find an invalid password
  386.          Return "Invalid new password #"#N#"."  /tell the client what happened
  387.  
  388.  
  389.   2. COMMENTS
  390.  
  391.      As illustrated above, comments begin with a slash and continue to the
  392.      end of the line.  The comment may be on a line by itself, or at the
  393.      end of a line of code.
  394.      
  395.   3. SEMANTICS - how to read the statements
  396.   RESERVED KEYWORDS
  397.   The following reserved keywords are case independent (can be in any case,
  398.   or mixed case): When, Say, If, For, Return.
  399.  
  400.   THE STRINGS
  401.   The strings ("yyyy") must occur exactly as they are typed.
  402.  
  403.   WHEN-SAY STATEMENT
  404.   When     "xxxx"        Say      "yyyy"  
  405.            [This means that a required/expected event has a given response.]
  406.            [Example: When "password" Say "#P/#N/#N@E" means that we will
  407.             wait for (time-out 1) seconds for the phrase "password" to
  408.             appear next on the display screen.  If it does, then we respond
  409.             back to the host with the string for a password change 
  410.             (old/new/new) followed by the enter key.  We can then pass control 
  411.             on to the next line in this response file.
  412.  
  413.             If the phrase "password" doesn't appear within 30 seconds, then 
  414.             we exit from the response file and terminate execution of the 
  415.             utility.  An error message to this effect will be returned to 
  416.             the Client's display.]
  417.  
  418.   IF-SAY STATEMENT
  419.   If       "xxxx"        Say      "yyyy"
  420.            [This means that an optional event has a given response.]
  421.            [Example: If "HOLDING" Say "@C" means that we will wait for
  422.             (time-out 2) seconds for the phrase "HOLDING" to appear next
  423.             on the display screen.  If it does, then we respond with the
  424.             CLEAR key and pass control on to the next line in this response
  425.             file.
  426.  
  427.             If the phrase "HOLDING" doesn't appear within (time-out 2) seconds,
  428.             then we pass control on to the next line in this response file.  
  429.             No error condition is said to occur, and no notice of this
  430.             will be sent to either the Server or the Client.
  431.  
  432.   FOR-SAY-RETURN STATEMENT
  433.   For      "xxxx"        Say      "yyyy"        Return "zzz"
  434.            [This means that a possible error has a given response, and the
  435.             Return string appears at the client's display screen.]
  436.            [Example: For "INVALID" Say "logoff@E" Return
  437.            "Invalid new password #"#N#"." means that we will wait for
  438.             (time-out 2) seconds for the phrase "INVALID" to appear next
  439.             on the display screen.  If it does, then we respond with the
  440.             phrase "logoff" plus the ENTER key, to the host.  We pass the
  441.             Return string "Invalid new password "new password". back to the
  442.             Client's display.  We then exit from the response file and
  443.             terminate execution of the utility.
  444.  
  445.             If the phrase "INVALID" doesn't appear within (time-out 2) seconds, 
  446.             then we pass control on to the next line in this response file.  
  447.             No error condition is said to occur, and no notice of this
  448.             will be sent to either the Server or the Client.
  449.  
  450.  
  451.   3. HOW TO WRITE THE STRINGS
  452.  
  453.   The strings are encoded as follows:
  454.  
  455.   STRING SUBSTITUTION:
  456.   #P = current password string from the CLIENT (as typed)
  457.   #N = new password string from the CLIENT (as typed)
  458.   #U = userid string from the CLIENT (as typed)
  459.   ## = '#'
  460.   #" = ' " '
  461.   #T = a conditional @T (tab right) is executed if preceediing string was 
  462.        less than 8 characters.
  463.        (This is for optional field advancing: Say "#P#T#N#T#U" as the input
  464.        to a 3 field menu.  If #P is only 3 characters long, then a @T must
  465.        be executed to advance to the next field; but if #P is exactly 8
  466.        characters long, then the cursor will automatically advance to the
  467.        next field.  Thus, it is conditional on whether the preceeding string
  468.        is less than 8 characters.
  469.  
  470.   KEY STROKES:
  471.   @T = tab right; field advance.
  472.   @B = back tab; tab left.
  473.   @E = enter
  474.   @C = clear
  475.   @q = end
  476.   @0 = home
  477.   @1 - @9 = F1 - F9
  478.   @a - @o = F10 - F24
  479.  
  480.  
  481.  
  482.   4. DISCLAIMER:
  483.   Data encryption is not being performed when transmitting passwords from the 
  484.   DBM client to the DBM server or hosts. Some users may determine this to be an
  485.   unacceptable security exposure, and thus may choose not to use this facility.
  486.