Previous Topic: Agent Operations

Next Topic: Responses and Response Attributes

Resource Protection

When a user attempts to log into a site and access a protected resource, the agent typically needs to answer the following questions:

The following script illustrates how you can use the Agent API to address and respond to these basic agent questions:

use Netegrity::AgentAPI;

#Define script variables
$agent = "agent1";
$secret = "oursecret";
$ip = "127.0.0.1";
$respath = "/mysite/hr/payroll.htm";
$username = "userid";
$pwd = "userpwd";

print "\nStep 1. Connecting to Policy Server...\n";
$agentapi = Netegrity::AgentAPI‑>New($agent, $secret);
$serverconfig = $agentapi‑>AddServerConfig($ip);
$status=$agentapi‑>Connect();
die "FATAL: Connect() failed with error code " .
                         $status unless($status==SM_AGENTAPI_YES);

$resource = $agentapi‑>GetResource($respath);  
print "\nStep 2. Is the resource protected?\n";
if ($resource‑>IsProtected == SM_AGENTAPI_YES) {
   print "Resource ".$respath." is protected.\n\n";

   print "\nStep 3. User login...\n";
   $user = $agentapi‑>CreateUser($username, $pwd);
   print "Logging in user ".$user‑>Name().".\n";
   $status = $user‑>Login($resource);
   if($status==SM_AGENTAPI_YES) {
      print $user‑>Name() . " logged in successfully!\n\n";

      print "\nStep 4. User authorized for the resource?\n";
      $status = $user‑>IsAuthorized($resource);
      if($status==SM_AGENTAPI_YES) {
         print $user‑>Name()." is authorized for " .
                                                $respath . "\n\n";
      }
      else {
         print $user‑>Name()." is not authorized for " .
                                                $respath . "\n\n";
      }
   }
   else {
      print "Couldn't log in user " . $username . ".\n\n";
   }
}
else {
      print "Resource ".$respath." is not protected.\n\n";
}


Copyright © 2010 CA. All rights reserved. Email CA about this topic