Configuring Lenel OnGuard in IdentityNow & Identity Security Cloud

Configuring Lenel OnGuard in IdentityNow

Configuration of the Lenel Onguard API to disable card holder accounts to provision users and entitlements using the IdentityNow Web Service Connector.  

Lenel Onguard is a badging system that allows individuals to gain access to certain locations. Typically, every employee/identity gets a card holder account, and this card holder account stays with the individual until they are terminated. Other factors:

  • The card holder account alone does not allow individuals to access certain areas.
  • The card holder account gets assigned a “badge” and that “badge” will allow the individual to access certain areas.
  • Individuals should not have more than one card holder account and although it is technically feasible for a card holder account to have multiple badges, it is not considered a good practice in Lenel OnGuard.

The Lenel OnGuard Web Services Configuration guide outlines how to configure the IdentityNow Web Services Connector to communicate with the Lenel Onguard REST API to create card holder accounts, read card holder account information including badge information, and then remove individual badges from the card holder account.  However, it was determined that the Lenel Onguard API cannot disable card holder accounts.

Below are the configuration options configured for the Lenel Onguard API using IdentityNow & Identity Security Cloud. 

Base Configuration

This section is not covered as it is self-explanatory and determined by your IdentityNow tenant.

Connection Settings

The authentication for Lenel Onguard API requires a session token to be generated every time you call the Web Service.  Due to the session token expiration, custom authentication must be configured. Below are the settings needed to be in place for Custom Authentication on the Connection Settings page.

  • Authentication Type – No/Custom Authentication
  • Base URL – This is the URL of the Rest API.  (i.e. https://APIDOMAINNAME:8080)
  • Connection Timeout – 300
  • Account Enable Status Attribute – 24 (represents an enabled badge)
  • Account Lock Status Attribute – 26 (represents a disabled badge)

Encrypt Service Account Password

It is required to encrypt the password for the Lenel OnGuard Service Account.  This can be done by calling the following APIs in IdentityNow.  *Please note:  SailPoint is in the process of depreciating some of their older API calls. The API calls below might need to be updated to the newer API calls.  Any Identity Now APIs are relevant for Identity Security Cloud.*

1st API CALL

POST – https://{tenentURL}/cc/api/source/update/{SourceID}

The SourceID list about in the Source ID obtained through the UI.

BODY of the API call using FORM fields

KEY – connector_password_CA

Value – Service Account Password (this is the password in clear text)

2nd API CALL

POST – https://{tenentURL}/cc/api/source/update/{SourceID}

The SourceID list about in the Source ID obtained through the UI.

BODY of the API call using FORM fields

KEY – connector_encrypted

Value – accesstoken,refresh_token,oauth_token_info,client_secret,private_key,private_key_password,clientCertificate,clientKeySpec,resourceOwnerPassword,custom_auth_token_info,password_CA

Account Schema

Below is the schema used for the Web Service connector. The SSNO attribute contained the individual’s employee ID and was made the Account ID and Name.  The ALLOWEDVISITORS attribute was a Boolean value and was used as an Entitlement in an Access Profile to allow IDN to create card holder accounts.

Attribute Name Type Notes
SSNO String – Account ID and Name Typically contains the employeeID
ZIP String
STATUS String Status of the Badge assigned to card holder account. Either 24 or 26.
ADDR1 String
ALLOWEDVISITORS Entitlement – Group, Multi-valued
PERSON_ID String
BADGE_ID String Needed to disable a badge
CITY String
FIRSTNAME String
LASTNAME String
STATE String
DEPT String
TITLE String
EMAIL String
DIVISION String
BADGEKEY String

HTTP Operations

The section below will detail all the HTTP Operations configured for the Web Service Connector. To configure a new HTTP Operation, click the “Add Operation” button located at the bottom of the screen.  If the field is not present below in the operation listed, then the field was not populated during configuration and is not required.

HTTP Operation Name: Custom Authentication

General Information

  • Operation Name: Custom Authentication
  • Operation Type: Custom Authentication
  • Custom Authentication URL:

https://REST-API-DOMAIN-NAME/api/access/onguard/openaccess/authentication?version=1.0

  • HTTP Method: Post

Headers

Key Value
Application-Id Unique to customer environment
Content-Type application/json

Body

  • Type: Raw
  • Body:
    {
     user_name: “Unique to customer environment”,

            password: “$application.password_CA$”,

            directory_id:”: “id-1”

             }

Response Mapping

Schema Attribute Attribute Path
session_token session_token

 

HTTP Operation Name: Account Aggregation

General Information

  • Operation Name: Account Aggregation
  • Operation Type: Account Aggregation
  • Context URL: /api/access/onguard/openaccess/instances?type_name=Lnl_Cardholder&version=1.0&page_size=100&queue=false&do_not_reset_inactivity_timer=false
  • HTTP Method: GET

Headers

Key Value
Application-Id Unique to customer environment
Session-Token $application.session_token$
Content-Type application/json

Body

  • Type: Raw
  • Body:

{

 “user_name”: “Unique To Customer Environment”,

  “password”: “$application.password$”,

  “directory_id”: “id-1”

}

Response Information

  • Root Path: $..property_value_map
  • Success Codes: 2**

Response Mapping

Schema Attribute Attribute Path
ZIP ZIP
SSNO SSNO
STATE STATE
FIRSTNAME FIRSTNAME
LASTNAME LASTNAME
EMAIL EMAIL
DIVISION DIVISION
ADDR1 ADDR1
CITY CITY
PERSON_ID PERSON_ID
DEPT DEPT
TITLE TITLE
ALLOWEDVISITORS ALLOWEDVISITORS

HTTP Operation Name: Create Account

General Information

  • Operation Name: Create Account
  • Operation Type: Create Account
  • Context URL: /api/access/onguard/openaccess/instances?type_name=Lnl_Cardholder&version=1.0&page_size=100&queue=false&do_not_reset_inactivity_timer=false
  • HTTP Method: POST

Headers

Key Value
Application-Id Unique to customer environment
Session-Token $application.session_token$
Content-Type application/json

 Body

  • Type: Raw
  • Body:

        {

        “property_value_map”:

         { 

         “CITY”: “$plan.CITY$”,

         “DEPT”: “10010”,

         “EMAIL”: “$plan.EMAIL$”,

         “FIRSTNAME”: “$plan.FIRSTNAME$”,

         “LASTNAME”: “$plan.LASTNAME$”,

         “PRIMARYSEGMENTID”: “1”,

         “SSNO”: “$plan.nativeIdentity$”,

         “STATE”: “$plan.STATE$”,

         “ZIP”: “$plan.ZIP$”

          }

          }

 Response Information

  • Root Path: $property_value_map
  • Success Codes: 2**

Response Mapping

Schema Attribute Attribute Path
ZIP ZIP
SSNO SSNO
STATE STATE
FIRSTNAME FIRSTNAME
LASTNAME LASTNAME
EMAIL EMAIL
DIVISION DIVISION
ADDR1 ADDR1
CITY CITY
PERSON_ID PERSON_ID
DEPT DEPT
TITLE TITLE
ALLOWEDVISITORS ALLOWEDVISITORS

 

HTTP Operation Name: Disable Account

General Information

  • Operation Name: Disable Account
  • Operation Type: Disable Account
  • Context URL: /api/access/onguard/openaccess/instances?type_name=Lnl_Badge&filter=ID=$BadgeID$&version=1.6&version=1.6
  • HTTP Method: GET

Headers

Key Value
Application-Id Unique to customer environment
Session-Token $application.session_token$
Content-Type application/json

 Body

  • Type: Raw
  • Body:

 {

 “user_name”: “Unique To Customer Environment”,

  “password”: “$application.password$”,

  “directory_id”: “id-1”

   }

 Response Information

  • Root Path: $..property_value_map
  • Success Codes: 2**

Response Mapping

Schema Attribute Attribute Path
BADGE_ID ID
STATUS STATUS

 

Author: Jay Neenan, IDMWORKS, Senior IAM Architect