13.2 Non-Managed Application REST API

This API allows you to implement a REST endpoint for a non-managed application. A non-managed application is an application that is not connected to an Identity Vault, but nonetheless includes data that you want to be able to report on. By defining a REST endpoint for an application, you make it possible for the reporting module to collect data from this application.

After you have defined the REST endpoint for a non-managed application, you need to provide details about this application, including its location and context, on the Non-Managed Application Data Sources page in the reporting module.

Managed System Prefix: The REST API described in this section is also used by the reporting module to perform data queries for managed systems, so some of the URIs use the prefix ms, which refers to managed systems.

Logical system identifier: Some of the URIs include a parameter for logical system identifier. This is an identifier for the instance of a managed system.

NOTE:In Identity Manager 4.0.2 and later, you must define at least one logical system for the reporting module to be able to collect data from the application. The reporting module no longer collects data from the primary system.

13.2.1 Overview

These APIs use an asynchronous Query architecture. The Identity Manager Reporting Service will call the various Query APIs and expect to receive a unique REQID field value in response. This REQID field value will be passed in a subsequent call to determine if the requested data Results are available, obtain the Results set, and ultimately to purge the REQID and associated Results data. It is the responsibility of the application service to create and cache the unique REQID fields and associated data until a request is made to purge the data.

A JSON (Java Script Object Notation) interface is used for all APIs. Ensure that the Content-Type in the headers for all HTTP messages is application/json when testing application service implementations.

NOTE:All PUT operations require a content payload. For some APIs, this may simply be an empty payload "{ }".

13.2.2 Generic Service APIs

These APIs are used by the Identity Manager Reporting Service during the processing of the various data collection query activities.

GET – /results/<requestID>/status

Verifies the result status after data collection. The identifier is a request identifier obtained when the query API is invoked.

The REQID value returned from a preceding data collection query API call is used in the URI to identify the request whose status is being obtained.

URI
context/results/requestID/status
HTTP Method

This operation supports the GET method.

Input

None.

Output

STATUS: A Boolean flag that indicates if the result set is ready to be consumed. If the value returned is false, subsequent calls can be expected.

Sample Output
{"STATUS":"true"}
Return HTTP Status

PUT – /purge

This API is used to inform the application service that the results set associated with the REQID will no longer be accessed and can be released.

URI
context/purge
HTTP Method

This operation supports the PUT method.

Input

REQID: String (mandatory)

Sample Input
{"REQID":"5ac00e5660ec435aae966ca2975b98f3"}
Output

SUBMITTED: A Boolean flag that indicates if the purge request was received.

Sample Output
{"SUBMITTED":"true"}
Return HTTP Status

13.2.3 Managed System Information APIs

These APIs are used to request and obtain the Managed System information of the non-managed application. The supported fields for the Results objects can be found under Section A.3, Managed System Information Schema.

PUT – /ms

Returns a list of the applications and managed systems that are available for data collection. This operation also provides the attributes for each application.

URI
context/ms
HTTP Method

This operation supports the PUT method.

Input

Locale: String (optional). This field is a 2-character Language ISO code that may be passed by the Identity Manager Reporting Service. The application service is requested to return results in the specified language if possible.

Sample Input
{"Locale":"EN"}
Output

REQID

Sample Output
{"REQID":"5ac00e5660ec435aae966ca2975b98f3"}
Return HTTP Status

PUT – /ms/results

Retrieves the results of system query execution.

If the application service provides connectivity to more than 1 application instance, each instance is considered a Logical System to the Identity Manager Reporting Service. For each Logical System, the application service must return a Results instance.

The GUID value returned will be used as the application identifier in the URI of subsequent data collection API calls from the Identity Manager Reporting Service. If there are no Logical Systems identified by the application service, the same value will be used as the ls-identifier in those calls. Otherwise, the LogicalInstance:ID values will be used as the ls-identifier in those calls.

URI
context/ms/results
HTTP Method

This operation supports the PUT method.

Input Fields
  • REQID: String (mandatory). Request ID

  • SIDX: Integer (optional). Optional starting index. First result is at index 0.

  • SIZE: Integer (optional). Optional number of results in Results set.

Sample Input
{"REQID":"5ac00e5660ec435aae966ca2975b98f3"}
Sample Output (No Logical Systems)
{
  "SIDX":0,"EIDX":1,"MORE":0,
  "Results":
  [
    {
      "GUID":"SAPUM-151.155.161.8-300",
      "Name":"SAP DEV Central",
      "Description":"SAP CUA Central Development Server",
      "Type":"Enterprise",
      "Classification":"Development",
      "Vendor":"SAP",
      "Version":"Basis 700",
      "BusinessOwner":"Mark Jeffrey",
      "ApplicationOwner":"HCM-ADMIN",
      "Location":"Provo QA Lab, PRV-H-622",
      "Environment":"Development",
      "AuthenticationIPAddress":"151.155.161.8",
      "AuthenticationPort":"sapgw00",
      "AuthenticationID":"admin",
      "Hierarchical":"false"
    }
  ]
} 
Sample Output (2 Logical Systems)
{
  "SIDX":0,"EIDX":2,"MORE":0,
  "Results":
  [
    {
      "GUID":"SAPUM-151.155.161.8",
      "Name":"SAP DEV",
      "Description":"SAP CUA Development Server",
      "Type":"Enterprise",
      "Classification":"Development",
      "Vendor":"SAP",
      "Version":"Basis 700",
      "BusinessOwner":"Mark Jeffrey",
      "ApplicationOwner":"ADMIN",
      "Location":"Provo QA Lab, PRV-H-622",
      "Environment":"Development",
      "AuthenticationIPAddress":"192.168.1.10",
      "AuthenticationPort":"sapgw00",
      "AuthenticationID":"ADMIN",
      "Hierarchical":"false",
      "LogicalInstance:ID":"ADMCLNT300",
      "LogicalInstance:Name":"Client 300",
      "LogicalInstance:Description":"CUA Central Client",
      "LogicalInstance:Type":"Enterprise",
      "LogicalInstance:Classification":"Development",
      "LogicalInstance:Vendor":"SAP",
      "LogicalInstance:Version":"Basis 700",
      "LogicalInstance:BusinessOwner":"Mark Jeffrey",
      "LogicalInstance:ApplicationOwner":"CUAADMIN",
      "LogicalInstance:Location":"Provo QA Lab, PRV-H-622",
      "LogicalInstance:Environment":"Development",
      "LogicalInstance:AuthenticationIPAddress":"192.168.1.10",
      "LogicalInstance:AuthenticationPort":"sapgw00",
      "LogicalInstance:AuthenticationID":"CUAADMIN",
      "LogicalInstance:Hierarchical":"false"
    },
    {
      "GUID":"SAPUM-151.155.161.8",
      "Name":"SAP DEV",
      "Description":"SAP CUA Development Server",
      "Type":"Enterprise",
      "Classification":"Development",
      "Vendor":"SAP",
      "Version":"Basis 700",
      "BusinessOwner":"Mark Jeffrey",
      "ApplicationOwner":"ADMIN",
      "Location":"Provo QA Lab, PRV-H-622",
      "Environment":"Development",
      "AuthenticationIPAddress":"192.168.1.10",
      "AuthenticationPort":"sapgw00",
      "AuthenticationID":"ADMIN",
      "Hierarchical":"false",
      "LogicalInstance:ID":"ADMCLNT400",
      "LogicalInstance:Name":"Client 400",
      "LogicalInstance:Description":"CUA Child Client",
      "LogicalInstance:Type":"Enterprise",
      "LogicalInstance:Classification":"Development",
      "LogicalInstance:Vendor":"SAP",
      "LogicalInstance:Version":"Basis 700",
      "LogicalInstance:BusinessOwner":"Jon Doe",
      "LogicalInstance:ApplicationOwner":"CHLDADM",
      "LogicalInstance:Location":"Provo QA Lab, PRV-H-622",
      "LogicalInstance:Environment":"Development",
      "LogicalInstance:AuthenticationIPAddress":"192.168.1.10",
      "LogicalInstance:AuthenticationPort":"sapgw00",
      "LogicalInstance:AuthenticationID":"CHLDADM",
      "LogicalInstance:Hierarchical":"false"
    }
  ]
}
Return HTTP Status

13.2.4 Account Matching Rules APIs

These APIs are used to request and obtain the a set of matching rules that can be used by the IDM Reporting Service information of the non-managed application. The supported fields for the Results objects can be found in Section A.7, Accounts Rule Schema.

NOTE:In Identity Manager 4.0, these APIs are in a proposal stage in the Identity Manager Reporting Service. Data is collected but is not yet used.

PUT – /accounts/rule/ms/<identitifer>

Requests managed and application account rules data.

URI
context/accounts/rule/ms/identifier
HTTP Method

This operation supports the PUT method.

Input

Locale: String (optional). This field is a 2-character Language ISO code that may be passed by the Identity Manager Reporting Service. The application service is requested to return results in the specified language if possible.

Sample Input
{"Locale":"DE"}
Output

REQID

Sample Output
{"REQID":"e6bf4fd18817449885caa34bd8e84781"}
Return HTTP Status

PUT – /accounts/rule/ms/<identitifer>/results

Requests system account rules data.

URI
context/accounts/rule/ms/identifier/results
HTTP Method

This operation supports the PUT method.

Input
  • REQID: String (mandatory). Request ID

  • SIDX: Integer (optional). Optional starting index. First result is at index 0.

  • SIZE: Integer (optional). Optional number of results in Results set.

Sample Input
{
  "REQID":"e6bf4fd18817449885caa34bd8e84781",
  "SIDX":0,
  "SIZE":100
}
Sample Output
{
  "SIDX":0,"EIDX":1,"MORE":0,
  "Results":
  [
          {"Order":1, "MatchAttrName":"USERNAME:BAPIBNAME"},
          {"Order":2, "MatchAttrname":"ADDRESS:FIRSTNAME,ADDRESS:LASTNAME"}
  ]
} 
Return HTTP Status

13.2.5 Entitlement Types APIs

These APIs are used to request and obtain the various types of application Entitlements that can be assigned to application identities. Examples of entitlements may be a User account, Roles, User Profiles, Group Memberships, Email access, home directories, and so forth.

The supported fields for the Results objects can be found under Section A.4, Entitlements Types Schema.

PUT – /entitlements/types/ms/<identifier>

Requests entitlement type data for each system.

URI
context/entitlements/types/ms/identifier
HTTP Method

This operation supports the PUT method.

Input

Locale: String (optional). This field is a 2-character Language ISO code that may be passed by the Identity Manager Reporting Service. The application service is requested to return results in the specified language if possible.

Sample Input
{"Locale":"DE"}
Output

REQID

Sample Output
{"REQID":"faae9d07cf7f47d5bb7c5179819da9ea"}
Return HTTP Status

PUT – /entitlements/types/ms/<identifier>/results

Retrieves the results of query execution for entitlement types.

URI
context/entitlements/types/ms/identifier/results
HTTP Method

This operation supports the PUT method.

Input
  • REQID: String (mandatory). Request ID

  • SIDX: Integer (optional). Optional starting index. First result is at index 0.

  • SIZE: Integer (optional). Optional number of results in Results set.

Sample Input
{
  "REQID":"faae9d07cf7f47d5bb7c5179819da9ea",
  "SIDX":0,
  "SIZE":20
}
Sample Output
{
  "SIDX":0,"EIDX":3,"MORE":0,
  "Results":
  [
    {
      "ENT_TYPE":"ActivityGroup",
      "ENT_TYPE_DISPLAY_NAME":"Rolle",
      "ENT_ID":"AG",
      "ENT_CATEGORY":"Sicherheit Gruppe",
      "ENT_DESCRIPTION":"SAP Rolle",
      "ENT_DISPLAY_NAME":"Rolle"
    },
    ...
  ]
}
Return HTTP Status

13.2.6 Entitlements Information APIs

These APIs are used to request and obtain detailed information about all Entitlements of the non-managed application. The supported fields for the Results objects can be found under Section A.5, Entitlements Information Schema.

PUT – /entitlements/ms/<identifier>/ls/<ls-identifier>

Requests application entitlement data.

URI
context/entitlements/ms/identifier/ls/ls-identifier
  • identifier: Managed System Information GUID value (see PUT – /ms/results)

  • ls-identitifer: Managed System Information LogicalInstance:ID value (if present) otherwise Managed System Information GUID value (see PUT – /ms/results).

HTTP Method

This operation supports the PUT method.

Input
  • ENT_ID: String (mandatory). Identifies the type of Entitlement information being obtained from the target application or logical systems. The value will be the ENT_ID from one of the entitlement types previously collected from the application service.

  • Locale: String (optional). This field is a 2-character Language ISO code that may be passed by the Identity Manager Reporting Service. The application service is requested to return results in the specified language if possible.

Sample Input
{
  "ENT_ID":"AG",
  "Locale":"EN"
}
Output

REQID

Sample Output

{"REQID":"f8977b3bdce34b3f8e2e44ff10567746"}

Return HTTP Status

PUT – /entitlements/ms/<identifier>/ls/<ls-identifier>/results

Some entitlements, such as a User account entitlement, may not be represented by an actual application object or value. Such entitlements are considered granted based on the presence of an account for a User. It is therefore appropriate for an application to return an empty results set for non-valued entitlements.

URI
context/entitlements/ms/identifier/ls/ls-identifier/results
  • identifier: Managed System Information GUID value (see PUT – /ms/results)

  • ls-identitifer: Managed System Information LogicalInstance:ID value (if present) otherwise Managed System Information GUID value (see PUT – /ms/results).

HTTP Method

This operation supports the PUT method.

Input
  • REQID: String (mandatory). Request ID

  • SIDX: Integer (optional). Optional starting index. First result is at index 0.

  • SIZE: Integer (optional). Optional number of results in Results set.

Sample Input
{"REQID":"f8977b3bdce34b3f8e2e44ff10567746", "SIZE":200}
Sample Output
{
  "SIDX":0,"EIDX":200,"MORE":1,
  "Results":
  [
    {
      "MS_ENT_DESC":"Employee Self-Service Germany",
      "MS_ENT_VAL":"SAP_HR_EMPLOYEE_DE",
      "MS_ENT_VAL_DISP_NAME":"SAP_HR_EMPLOYEE_DE"
    },
    {
      "MS_ENT_DESC":"Auth. for RFC Service User in Client System (RFC)",
      "MS_ENT_VAL":"SAP_BC_USR_CUA_CLIENT_RFC",
      "MS_ENT_VAL_DISP_NAME":"SAP_BC_USR_CUA_CLIENT_RFC"
    },
    ....
  ]
}
Return HTTP Status

13.2.7 Entitlement Assignment APIs

These APIs are used to request and obtain the information about the assignment of a specified Entitlement type to Identities within the non-managed application. The supported fields for the Results objects can be found under Section A.6, Entitlements Assignments Schema.

PUT – /entitlements/assignments/ms/<identifier>/ls/<ls-identifier>

Requests entitlement assignment data.

URI
context/entitlements/assignments/ms/identifier/ls/ls-identifier
  • identifier: Managed System Information GUID value (see PUT – /ms/results)

  • ls-identitifer: Managed System Information LogicalInstance:ID value (if present) otherwise Managed System Information GUID value (see PUT – /ms/results).

HTTP Method

This operation supports the PUT method.

Input
  • ENT_ID: String (mandatory). Identifies the type of Entitlement assignment information being obtained from the target application or logical systems. The value will be the ENT_ID from one of the entitlement types previously collected from the application service.

  • Locale: String (optional). This field is a 2-character Language ISO code that may be passed by the Identity Manager Reporting Service. The application service is requested to return results in the specified language if possible.

Sample Input
{
  "ENT_ID":"PROFILE"
}
Output

REQID

Sample Output
{"REQID":"87d95b44c7bf4db1aafeb54ad840008d"}
Return HTTP Status

PUT – /entitlements/assignments/ms/<identifier>/ls/<ls-identifier>/results

Some entitlements, such as a User account entitlement, may not be represented by an actual application object or value. Such entitlements are considered granted based on the presence of an account for a User. It is therefore appropriate for an application to return an empty results set for non-valued entitlements.

URI
context/entitlements/assignments/ms/identifier/ls/ls-identifier/results
  • identifier: Managed System Information GUID value (see PUT – /ms/results)

  • ls-identitifer: Managed System Information LogicalInstance:ID value (if present) otherwise Managed System Information GUID value (see PUT – /ms/results).

HTTP Method

This operation supports the PUT method.

Input
  • REQID: String (mandatory). Request ID

  • SIDX: Integer (optional). Optional starting index. First result is at index 0.

  • SIZE: Integer (optional). Optional number of results in Results set.

Sample Input
"REQID":"87d95b44c7bf4db1aafeb54ad840008d", "SIZE":100}
Sample Output
{
  "SIDX":0,"EIDX":20,"MORE":0,
  "Results":
  [
    {
      "MS_ENT_VAL":"SAP_ALL",
      "MS_MEMBER":"DDIC"
    },
    {
      "MS_ENT_VAL":"S_A.SYSTEM",
      "MS_MEMBER":"DDIC"
    },
    {
      "MS_ENT_VAL":"SAP_ALL",
      "MS_MEMBER":"SENTINEL"
    },
    ...
  ]
}
Return HTTP Status

13.2.8 Account Information APIs

These APIs are used to request and obtain the Accounts information of the non-managed application. The supported fields for the Results objects can be found under Section A.8, Account Information Schema.

NOTE:If the application service does not support the concept of Logical Systems (see Section 13.2.3, Managed System Information APIs), the Identity Manager Reporting Service will use the Managed System GUID field value for both identifier and ls-identifier in the URI.

PUT – /accounts/ms/<identifier>/ls/<ls-identifier>

Requests accounts information for an application.

URI
context/accounts/ms/identifier/ls/ls-identifier
  • identifier: Managed System Information GUID value (see PUT – /ms/results)

  • ls-identitifer: Managed System Information LogicalInstance:ID value (if present) otherwise Managed System Information GUID value (see PUT – /ms/results).

HTTP Method

This operation supports the PUT method.

Input

Locale: String (optional). This field is a 2-character Language ISO code that may be passed by the Identity Manager Reporting Service. The application service is requested to return results in the specified language if possible.

Sample Input
{"Locale":"EN"}
Output

REQID

Sample Output
{"REQID":"e6cfbe0747604fa7ad8d20da6abeb203"}
Return HTTP Status

PUT – /accounts/ms/<identifier>/ls/<ls-identifier>results

Retrieves the results of a query execution for application accounts data.

URI
context/accounts/ms/identifier/ls/ls-identifier/results
  • identifier: Managed System Information GUID value (see PUT – /ms/results)

  • ls-identitifer: Managed System Information LogicalInstance:ID value (if present) otherwise Managed System Information GUID value (see PUT – /ms/results).

HTTP Method

This operation supports the PUT method.

Input
  • REQID: String (mandatory). Request ID

  • SIDX: Integer (optional). Optional starting index. First result is at index 0.

  • SIZE: Integer (optional). Optional number of results in Results set.

Sample Input
{"REQID":"e6cfbe0747604fa7ad8d20da6abeb203"}
Sample Output
{
  "SIDX":0,"EIDX":81,"MORE":0
  "Results":
  [
    {
      "ACCT_ID_VALUE":"NSLUSER",
      "ACCT_ID_TYPE":"USER",
      "Managed":"false",
      "APP_NAME":"SAPUM-151.155.161.8-300",
      "Synchronized":"false",
      "ACCT_STATUS":"A"
    },
    ....
  ]
}
Return HTTP Status

13.2.9 Profile Information APIs

These APIs are used to request and obtain the detailed Identity profile information for all accounts in the non-managed application. The supported fields for the Results objects can be found under Section A.9, Profile Information Schema.

PUT – /profiles/ms/<identifier>/ls/<ls-identifier>

Requests profiles information for an application.

URI
context/profiles/ms/identifier/ls/ls-identifier
  • identifier: Managed System Information GUID value (see PUT – /ms/results)

  • ls-identitifer: Managed System Information LogicalInstance:ID value (if present) otherwise Managed System Information GUID value (see PUT – /ms/results).

HTTP Method

This operation supports the PUT method.

Input

Locale: String (optional). This field is a 2-character Language ISO code that may be passed by the Identity Manager Reporting Service. The application service is requested to return results in the specified language if possible.

Sample Input
{"Locale":"EN"}
Output

REQID

Sample Output
{"REQID":"23549fc57b924ec1924d978792a2b684"}
Return HTTP Status

PUT – /profiles/ms/<identifier>/ls/<ls-identifier>results

Retrieves the results of a query execution for application profiles data.

URI
context/profiles/ms/identifier/ls/ls-identifier/results
  • identifier: Managed System Information GUID value (see PUT – /ms/results)

  • ls-identitifer: Managed System Information LogicalInstance:ID value (if present) otherwise Managed System Information GUID value (see PUT – /ms/results).

HTTP Method

This operation supports the PUT method.

Input
  • REQID: String (mandatory). Request ID

  • SIDX: Integer (optional). Optional starting index. First result is at index 0.

  • SIZE: Integer (optional). Optional number of results in Results set.

Sample Input
{"REQID":"23549fc57b924ec1924d978792a2b684", "SIZE":200}
Sample Output
{
  "SIDX":0,"EIDX":81,"MORE":0,
  "Results":
  [
    {
      "ACCT_ID_VALUE":"CNANO",
      "FIRST_NAME":"Chip",
      "LAST_NAME":"Nano",
      "FULL_NAME":"Chip Nano",
      "JOB_TITLE":"Chief Information Officer",
      "CITY":"Provo",
      "EMAIL_ADDRESS":"cnano@novell.com",
      "OFFICE_PHONE":"(555) 555-1223",
      "PREFERRED_LANG":"EN",
      "COST_CENTER":"US1122",
      "COMPANY":"NOVELL",
      "STREET_ADDRESS":"1800 Novell Place",
      "POSTAL_CODE":"84606","
      COUNTRY":"US",
      "SUITE_NUMBER":"Suite 200",
      "STATE":"UT"
    },
    ....
  ]
}
Return HTTP Status