000024966 - How to report on Last Login Date for audit trail purposes in RSA ACE/Server

Document created by RSA Customer Support Employee on Jun 16, 2016Last modified by RSA Customer Support Employee on Apr 21, 2017
Version 2Show Document
  • View in full screen mode

Article Content

Article Number000024966
Applies ToRSA ACE/Server 3.3.x (no longer supported as of 3-30-2002)
Sun Solaris 2.6
IssueHow to report on Last Login Date for audit trail purposes in RSA ACE/Server
Last login dates are wrong after exporting a token
Using the Token Utilities to extract Last Login Date for Audit purposes
RSA Security developed Token Utilities (the latest version is 1.7a) for moving SecurID token records between ACM hardware boxes. The Token Utilities were never packaged as a product but were at one time available by download from an RSA Security FTP site. For the past two years, the Token Utilities have been available from RSA Security Customer Support only by request.

RSA Security discontinued support for the ACM hardware boxes in July 2001. While a few customers are continuing to use the Token Utilities to perform tasks unrelated to the ACM boxes, these customers will be able to reproduce the functionality of the Token Utilities using the RSA ACE/Server Administration API. Please note that a RSA Developer Support contract is required to receive assistance in developing scripts using the Administration API.

RSA Security will be discontinuing service on all versions of these token utilities according to the following schedule:

- After January 1, 2002: Token Utilities no longer available upon request. New and existing workarounds provided. No new software patches provided.
- After February 28, 2002: No new workarounds provided. Existing workarounds only.
- After March 30, 2002: No technical telephone or engineering support for the Token Utilities.

RSA Customer Support can be contacted at the numbers provided at https://knowledge.rsasecurity.com/mrktng/contact.asp.
CauseThe Last Login Date field handling in the Token Utilities is one byte too short. The Token Utilities is unsupported and will not be updated.
When exporting tokens records, the last log on dates are incorrect. This started happening to tokens which have a last login date of Dec. 13 2001, and higher. The values for last login dates in the ace database are correct. After exporting  them the dates go off by about 8,000 days. The year reads 1986.
ResolutionAs a courtesy to our customers, RSA Security has created an Administration API TCL script to generate a report with the relevant data:

TCL SCRIPT: Please remove the leading and ending quotation marks prior to running this script.  

"#/*  lastlogintimes.tcl  */
#* COPYRIGHT (C) 1990-2002 by  RSA Security Inc.                        *

Sd_ApiInit "" "" 1

# note: You can use the functions "Sd_SetLoggingOn, OR Sd_SetLoggingOff
# to set the logging options for your current admin  toolkit session
# by default the logging option is set to ON
#puts [Sd_SetLoggingOff]
#puts [Sd_SetLoggingOn]

# set the delimiter to be used for all the parsing and string operations
# note:  This delimiter needs to be unique in the sense, there should
# not be any usernames, lastname, firstname etc which has the delimiter
# character in their data fields.
# a non-unique delimiter can produce unexpected results

set delim ,

set i 0

while {1} {

   set tk [Sd_ListAssignedTokens]
   if { $tk == "Done" } {

      set ar($i) $tk
      incr i

   set curtime [clock seconds]
   set today [clock format $curtime -format %c -gmt true]
   puts ""
   puts "RSA ACE/Server LastLoginTimes Report = $today"
   puts ""
   puts ""
   puts "TokenSerial $delim Lastname $delim Firstname $delim Login $delim LastLoginDate $delim LastLoginTime"
   puts ""
   puts ""

set j 0

while { $j < $i } {

   set listtoken [Sd_ListTokenInfo $ar($j)]

   set tmpList $listtoken

   set x 0
   while { $x < 15 } {
       set tmpIndex [string first , $tmpList]
       incr tmpIndex
       set tmpString [string range $tmpList $tmpIndex end]

       if { $x == 8 } {
           set lastlogindate [string range $tmpList 0 $tmpIndex]
           set tmp_1 [string trim $lastlogindate]
           set tmp_2 [string trim $tmp_1 , ]
           set lastlogindate $tmp_2

       if { $x == 9 } {
           set lastlogintime [string range $tmpList 0 $tmpIndex]
           set tmp_1 [string trim $lastlogintime]
           set tmp_2 [string trim $tmp_1 , ]
           set lastlogintime $tmp_2

       if { $x == 14 } {
           set usernum [string range $tmpList 0 $tmpIndex ]
           set tmp_1 [string trim $usernum]
           set tmp_2 [string trim $tmp_1 , ]
           set usernum $tmp_2

       set tmpList $tmpString
       incr x

   set userInfo [Sd_ListUserInfo $ar($j) -d $delim]

   set tmpList $userInfo

   set x 0
   while { $x < 4 } {

       set tmpIndex [string first $delim $tmpList]
       incr tmpIndex
       set tmpString [string range $tmpList $tmpIndex end]

       if { $x == 1 } {
           set lastname [string range $tmpList 0 $tmpIndex]
           set tmp_1 [string trim $lastname]
           set tmp_2 [string trim $tmp_1 $delim ]
           set lastname $tmp_2

       if { $x == 2 } {
           set firstname [string range $tmpList 0 $tmpIndex]
           set tmp_1 [string trim $firstname]
           set tmp_2 [string trim $tmp_1 $delim]
           set firstname $tmp_2

       if { $x == 3 } {
           set userlogin [string range $tmpList 0 $tmpIndex ]
           set tmp_1 [string trim $userlogin]
           set tmp_2 [string trim $tmp_1 $delim ]
           set userlogin $tmp_2

       set tmpList $tmpString
       incr x

   set lastloginhour [clock format $lastlogintime -format %H -gmt true]
   set lastloginmin [clock format $lastlogintime -format %M -gmt true]
   set lastloginsec [clock format $lastlogintime -format %S -gmt true]

   puts "$ar($j) $delim $lastname $delim $firstname $delim $userlogin $delim $lastlogindate $delim $lastloginhour:$lastloginmin:$lastloginsec"   

   incr j


Sd_ApiEnd "
Legacy Article IDa8364