Previous Topic: SDK OverviewNext Topic: Programming Guide for Perl


About the SDK

This section contains the following topics:

Introduction to the SiteMinder SDK

Architectural Overview

Policy Server Access

Installed Directory Structure

SDK Samples

SiteMinder Test Tool

SDK Documentation

Other SiteMinder Documentation

Support for Custom Code

Introduction to the SiteMinder SDK

The SiteMinder Software Development Kit (SDK) provides Application Programming Interfaces (APIs) that let you perform the following tasks:

The following table summarizes the custom applications and Policy Server extensions you can write using the APIs in the SiteMinder SDK:

Purpose and Associated API

Language

Agent applications:

Agent API

C

Java

Policy Management applications:

Policy Management API

C

Java

Delegated Management Services (DMS) applications:

DMS API

Java

Authentication:

Authentication API

C

Java

Authorization:

Authorization API

C

Java

Event handling:

Event API

C

Tunnel service:

Tunnel API

C

Pre- and post-process workflow for DMS events:

DMS Workflow API

C

Access to non-supported directory types:

Directory API

C

To run a custom SDK-based program, you must install the CAPKI library. The Policy Server and Web Agent installations include a CAPKI library. If the CAPKI library does not exist, perform the following steps:

  1. Navigate to the installation_location\ETPKI directory.
  2. Open the readme.txt file.
  3. Perform the instructions to install the CAPKI library on the required platform.

Architectural Overview

The following figure illustrates the location of the APIs in relation to the SiteMinder Policy Server:

Graphic showing the location of the APIs in relation to the SiteMidner Policy Server

Policy Server Access

You must have the SiteMinder Policy Server to run the applications and Policy Server plug-ins that you develop with the SiteMinder SDK.

However, in most cases, you do not use the Policy Server to build those applications and plug-ins. The one exception is that when building Policy Management applications for Solaris using the C Policy Management API, you must do so on the machine where the Policy Server is installed.

At runtime:

The following table specifies the type of access to the Policy Server required by your applications and plug-ins:

Applications or Plug-Ins Developed with This API...

Require This Type of Access to the Policy Server...

Authentication API

Local

Authorization API

Local

Directory API

Local

Tunnel Services API

Local

Event API

Local

C Policy Management API

Local

C Agent API

Local or Remote

Java Agent API

Local or Remote

Java Policy Management API

Local or Remote

Note: When you build Policy Management applications for Solaris environments using the C Policy Management API, use the libraries libsmpolicyapi45.so and libsmutilities.so, which are part of the Policy Server.

Installed Directory Structure

The SDK installation includes header files, binary files, and sample code. The top-level installed directory structure is shown below in the sdk directory:

Graphic showing the SDK directory structure

SDK Samples

The SiteMinder SDK contains a number of sample applications and plug-ins that can help you use the APIs.

The samples are installed in subdirectories of the following directory:

install_path/sdk/samples

For example:

C:/Program Files/CA/sdk/samples

Note: The Java samples use properties defined in the file smjsdksample.properties, located in /sdk/properties. Before you run the Java sample applications, modify this file with settings for your environment.

Sample Subdirectories

The sample subdirectories contain source files, project files, makefiles, and other related files for building the sample applications and plug-ins.

The following table lists the subdirectories where the sample files are installed:

Subdirectory Name

Sample Description

assertiongenerator
   plugin

Java sample of SAML assertion customization.

 

dmsworkflow

C-language Delegated Management Services workflow sample.

 

javaauthapi

Java custom authentication sample.

 

javaazapi

Java custom authorization samples.

 

javadmsapi

Java Delegated Management Services sample.

The directory includes examples of build and run
scripts. You can use the examples as models for your own scripts.

This sample uses the policy store created by the javapolicyapi sample.

 

javapolicyapi

Java policy management sample.

The directory includes examples of build and run scripts. You can use the examples as models for your own scripts.

smagentapi

C-language custom agent sample.

smauthapi

C-language custom authentication sample.

smazapi

C-language custom authorization sample.

 

smdirapi

C-language sample for accessing unsupported directories.

smeventproviderapi

C-language sample for creating custom event handlers.

This sample references the header file smeventproviderapi.h. This is a custom header file used exclusively with this sample. The header file required for the Event API (and referenced within smeventproviderapi.h) is SmEventApi.h.

 

smjavaagentapi

Java custom agent sample.

The directory includes examples of build and run scripts. You can use the examples as models for your own scripts.

This sample uses the policy store created by the javapolicyapi sample.

 

smpolicyapi

C-language policy management sample.

The sample shows how to protect a Web resource by creating a variety of SiteMinder Policy objects. The example includes:

  • Calls to initialize and uninitialize the API.
  • The calls that are required to create agents, domains (policy domains), user directories, realms, rules, responses, and policies.

 

smtunnelagent

C-language tunnel agent sample.

This sample is provided to communicate with the smtunnelservice sample shared library. The smtunnelagent sample uses the Agent API’s Sm_AgentApi_Tunnel() function.

 

smtunnelservice

C-language tunnel services sample.

 

SiteMinder Test Tool

The SiteMinder Test Tool is a Windows-based utility that you can use to verify your policy configurations. The Test Tool simulates the interaction between Agents and Policy Servers, allowing you to test the functionality of the Policy Server without having a Web Agent or Web server installed.

The Test Tool acts as an agent sending requests to the Policy Server. These requests enable you to perform functional tests, such as verifying whether a resource is protected. You can also use the Test Tool to perform regression tests, which helps determine how well the Policy Server handles simultaneous requests.

To run the SiteMinder Test Tool, run SmTest.exe in the following location:

install_path\sdk\bin\

Note: The Test Tool does not support multibyte characters.

SDK Documentation

The CA SiteMinder® bookshelf includes the following SDK documentation:

Other SiteMinder Documentation

SiteMinder documentation that you can possibly find helpful when using the SiteMinder SDK are listed following.

Support for Custom Code

CA supports the Software Development Kit (SDK) as part of the standard offerings. Code written by customers or partners, however, is not supported. You are responsible for the code you write. If you require assistance designing or implementing SDK-based code, contact your CA customer account team.