Adm - Idm 920
Adm - Idm 920
Adm - Idm 920
.
.
PARTICIPANT HANDBOOK
INSTRUCTOR-LED TRAINING
.
Course Version: 19
Course Duration: 5 Day(s)
Material Number: 50155435
SAP Copyrights, Trademarks and
Disclaimers
No part of this publication may be reproduced or transmitted in any form or for any
purpose without the express permission of SAP SE or an SAP affiliate company.
SAP and other SAP products and services mentioned herein as well as their
respective logos are trademarks or registered trademarks of SAP SE (or an SAP
affiliate company) in Germany and other countries. Please see https://
www.sap.com/corporate/en/legal/copyright.html for additional trademark
information and notices.
Some software products marketed by SAP SE and its distributors contain proprietary
software components of other software vendors.
National product specifications may vary.
These materials may have been machine translated and may contain grammatical
errors or inaccuracies.
These materials are provided by SAP SE or an SAP affiliate company for
informational purposes only, without representation or warranty of any kind, and SAP
SE or its affiliated companies shall not be liable for errors or omissions with respect
to the materials. The only warranties for SAP SE or SAP affiliate company products
and services are those that are set forth in the express warranty statements
accompanying such products and services, if any. Nothing herein should be
construed as constituting an additional warranty.
In particular, SAP SE or its affiliated companies have no obligation to pursue any
course of business outlined in this document or any related presentation, or to
develop or release any functionality mentioned therein. This document, or any related
presentation, and SAP SE’s or its affiliated companies’ strategy and possible future
developments, products, and/or platform directions and functionality are all subject
to change and may be changed by SAP SE or its affiliated companies at any time for
any reason without notice. The information in this document is not a commitment,
promise, or legal obligation to deliver any material, code, or functionality. All forward-
looking statements are subject to various risks and uncertainties that could cause
actual results to differ materially from expectations. Readers are cautioned not to
place undue reliance on these forward-looking statements, which speak only as of
their dates, and they should not be relied upon in making purchasing decisions.
Typographic Conventions
Demonstration
Procedure
Warning or Caution
Hint
Facilitated Discussion
37 Unit 2: Forms
53 Unit 3: Jobs
TARGET AUDIENCE
This course is intended for the following audiences:
● System Administrator
● Solution Architect
Lesson 1
Describing SAP Identity Management 3
Lesson 2
Explaining SAP IdM Architecture 9
Lesson 3
Describing the SAP IdM Data Model 19
UNIT OBJECTIVES
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Explain the main purpose and functionalities of SAP Identity Management
● Understand the important role that SAP IdM plays in an IT landscape
Identity Management (IdM) is a key component of the security portfolio of SAP, which is
responsible for managing the identity lifecycle of employees, externals, administrators and
other entities, which require a single point of truth when it comes to their accounts and
authorizations. IdM ensures that the right users have the right access to the right systems at
the right time, thus enabling efficient, secure, and compliant execution of the business
processes. The following are some of the key capabilities of SAP IdM:
● One central location for managing:
- Identities master data and lifecycle
- Permissions (privileges and business roles)
- Granting and revoking authorizations
- Synchronizing data between applications and systems
Employee Lifecycle
A typical identity lifecycle enters the career circle usually with a hiring process. This is the
moment when an identity is registered in IdM for the first time, unless it is a returning
employee, for example, a re-hire. During this phase, one of the biggest challenges which IdM
solves is the time for the new employee to become productive, for example, the creation of
required accounts, email, role assignments, and so on.
Normally within the identity lifecycle of an employee, (we use employee as a collective term
for internal, external, or other type of employee), there are many milestones, but not all of
these are relevant for their accounts or permissions. While some obvious events such as New
position impact access that the employee might need, or not need anymore, there are others
such as Promotion, where if the promotion is only related to salary changes, then surely it has
little to zero impact on the IdM profile of the identity. During position changes, it is very
important how access is changed between positions, so that there is no disruption for the
ongoing work of the employee. At the same time, it should be avoided that the employee still
has access related to their old position for long periods of time.
There are also certain master data changes, which unexpectedly can have big impact on IdM.
One example is the change of a family name, which is often the case when people marry.
Although not related to a particular career event, this simple change of names could lead to
processes in IdM for change of email address and even account names, if the account name is
built based on the user's first and last name.
Normally identity lifecycle ends with a resignation or termination of the employee contract.
This process requires equally high attention, as access and accounts of the employee should
be removed in a timely manner. In today’s digital world, the biggest risk of not handling this
process properly would be that ex-employees can still access enterprise data long after they
have left the company.
The following sections identify some additional challenges related to a missing or non-
performing IdM.
Disconnected Systems
When systems are disconnected, applications are unaware of each other, and the following
tasks have to be completed manually:
Note:
Even connected systems may not comply to the same business logic.
SAP Identity Management helps to automate these processes without requiring a change in
the applications.
SAP Identity Management synchronizes and correlates the identity data from all connected
systems. Existing errors could be detected and resolved, while new errors are being
prevented.
SAP Identity Management controls the complete lifecycle of the identity and thus the risks are
prevented, for example, if an employee leaves the company, the appropriate rights are
revoked either immediately or based on company policies and active country/region/union
laws.
As SAP Identity Management automates the processes, you no longer need manual steps and
can free-up human resources. The automation guarantees compliancy to various regulations.
Compliance Challenges
The following are examples of compliance challenges:
With SAP Identity Management, SAP offers integrated identity management capabilities for
heterogeneous system landscapes (SAP and non-SAP software), driven by business
processes including the following:
The integration with human capital management (HCM) solutions, like SAP Business
Suite on premise HCM or cloud SAP SuccessFactors Employee Central, as source
systems for identity information is a key functionality for enabling business-driven
identity management.
Compliance Checks (GRC-AC)
The integration with SAP Access Control offers extensive functions for assuring
compliance and segregation of duties in the role and authorization assignment process.
Definition of Business Roles and Rule-Based Assignment
Business roles are a very powerful concept, which can combine privileges from different
systems into one role, representing all access, which a particular employee on a certain
position would need in order to be productive. You can define different rule sets for the
assignment of those roles to users. This means that the assignment can be performed
automatically based on attributes of the identity.
Audit and Reporting
Provides auditors with one central place to check employees’ authorizations in all
connected systems. The information is time-based and can also be tracked back from
when IdM was activated in the enterprise.
Password Management
A centralized password management reduces calls to the help desk for password resets
and enables password provisioning across heterogeneous landscape.
Provisioning
Handles user accounts and role assignments to SAP and non-SAP applications.
LESSON SUMMARY
You should now be able to:
● Explain the main purpose and functionalities of SAP Identity Management
● Understand the important role that SAP IdM plays in an IT landscape
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Identify the components of SAP IdM and understand their purpose
● Connect to SAP IdM
SAP Identity Management consists of several components. Some of the components run on
SAP NetWeaver AS for Java, like the Identity Management User Interface. Other components
are stand-alone and are installed separately. The clean installation of SAP IdM from version
8.0 onwards is executed exclusively using another software from SAP – SWPM 1.0.
Exceptions to the general rule are applied for systems, which were upgraded from version 7.2.
The core of the IdM product consists of the Identity Management database, the Keysini utility,
and the configuration packages. In the following sections, we will briefly describe the separate
components and explain their purpose in the big picture.
The core of the IdM product consists of the Identity Management database, the Keysini utility
and the configuration packages.
Note:
The prefix mxmc can be changed. This also affects the prefix for the generated DB
users during installation.
The installation creates dedicated IdM database users and roles, which are used by the IdM
components to connect to the IdM database.
Configuration Packages
The configuration package concept was introduced with SAP Identity Management 8.0. A
configuration package is a collection of configuration information including constants, scripts,
repository types, processes, forms, and jobs. Users are granted access to different packages,
which allows multiple users to work on the configuration and transport separately. These
configuration packages are delivered as part of the SAP Identity Management core
component and imported into the SAP Identity Management database to provide a starting
point for the configuration of the solution. Generally, those split in two categories –
provisioning frameworks and connectors. Provisioning frameworks designate a set of
reusable jobs, tasks, and functions that are necessary when provisioning various system
types, for example, SAP Provisioning framework, GRC provisioning framework, and so on.
Connectors are a set of reusable IdM artifacts, which are used for the connection to the target
repositories within IdM, for example, AS ABAP, AS Java, SuccessFactors, and so on.
The Identity Management runtime components include the runtime engine, the dispatchers,
and the SAP Identity Management Dispatcher Utility.
The Dispatcher is constantly running as a service and constantly checks with the database for
any items ready to be processed. When the dispatcher needs to execute a certain job, it can
start a runtime engine process. The Runtime Engine process only runs temporarily and stops
when the job is complete.
Dispatcher
● The dispatcher runs as a service and is responsible for the following tasks:
- Evaluates process decisions
- Starts the runtime engine to execute tasks and jobs
- Housekeeping jobs
Runtime Engine
● The runtime engine runs on Java and is responsible for the following tasks:
- Connecting to external repositories and systems
- Performing the work identified by the dispatchers as due
The Web Dynpro end user/key user interface is also known as the IDM UI or the IDM Web UI.
It is used by end users/key users/line managers to execute self-service tasks, approvals,
reporting, and tasks on behalf of their role in the organization, which is accessible through the
Manage tab.
● Main interface for end users, key users, and line managers
● Web interface accessible on the SAP NetWeaver server at http(s)://host:port/idm
● Requires the UME action idm_authenticated (part of IDM_User role) and IdM privileges for
access to tabs such as Manage and To Do
● Main interface for IdM system administrators (access granted using standard MX_ roles)
● Web interface accessible on the SAP NetWeaver server at http(s)://host:port/idm/admin
● Requires the following UME actions to enable the Monitoring tab:
- idm_monitoring_administration (not part of any role by default – create custom)
- idm_monitoring_support (readonly access – not part of any role by default – create
custom)
The IDM User Interfaces are accessed through the SAP NetWeaver Java server and
authentication is handled completely by the SAP NetWeaver User Management Engine
(UME). In order for a user to be able to access the UIs, the user account in UME should be the
same as the identity account in the IDM Identity Store. In order to optimize performance,
some of the Web Dynpro UIs are cached on the server. To refresh the cache when certain
changes are not visible in the browser, use “?NoCache” at the end of the URL.
REST API
As mentioned, in addition to the UIs provided by the solution, SAP Identity Management
offers a REST API to provide access and management on Identity Store data by external
applications or custom-developed UIs. It comes in two releases (v.1 and v.2). While v.1 is
rarely used nowadays, the v.2 has a broad usage scope. It supports both JSON and XML
format and implements the ODATA v2.0 protocol. It is the API behind the HTML5 screens of
IdM and also can be used for development of custom SAPUI5 screens, which further enhance
the usability of SAP IdM.
The Developer Studio is used to configure the scenarios and processes in the IdM. It consists
of two main components: a plug-in for Eclipse, which is installed on the computer of every IdM
developer, and a central component called Developer Studio REST service. Those two
components communicate in order to establish the connection to the IdM database. The
Developer Studio REST service is deployed on SAP NetWeaver Application Server Java.
The authentication between the Eclipse plug-in and the REST service is handled by UME. The
Developer Studio REST Service connects to the IdM database using the mxmc_admin DB
user.
In addition to authentication, the Developer Studio service also checks that the authenticated
user is defined as an IdM developer before it allows any operation.
To connect from Eclipse to the IdM database through the IdM Developer Studio REST service,
the developer needs to maintain the host and port number of the appropriate SAP NetWeaver
Java server, where the Developer Studio REST is installed. This communication runs over a
secure http channel (https), thus the port for the connection data should be the secure port of
the SAP NetWeaver Java server. The data source name should be the same as the one
maintained during the installation of IdM (part of the post-installation procedure). It can be
found in the NetWeaver Administrator of the respective SAP NetWeaver Java server under
the sub-component Application Resources.
The IdM Developer Studio Service is configured by the IdM Administrator before it is used by
IdM Developers. As a minimum, the database connection, the keys encryption file and the
SAP NetWeaver Java certificate have to be configured so that a successful connection is
established. The same keys.ini file is used independently of the number of database
connections established from one SAP NetWeaver Java instance. If you have to use different
encryption keys, you will need to use additional Developer Studio REST services running on a
different host.
Additional Components
● Logon Help
Provides self-service to reset the password of a user directly in the Microsoft Windows
Domain by answering a set of security questions maintained in IdM.
LESSON SUMMARY
You should now be able to:
● Identify the components of SAP IdM and understand their purpose
● Connect to SAP IdM
LESSON OVERVIEW
In this lesson, you will learn how to describe the SAP IdM data model.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Describe the Identity Store
● Describe configuration packages
● Create an Identity Store and import SAP delivered packages
SAP Identity Management maintains information in the Identity Store including the following:
● Users
● Roles and privileges
● Assignments
● Groups
Each Identity Management database can have multiple identity stores, but only one can be
the main one.
An identity store is created with a default SAP schema (a set of entry types and attributes)
that can be extended. The attributes within the schema can be pre-defined or automatically
created when new entries with unknown attributes names are identified. For the main identity
store, it is recommended to keep the pre-defined attributes. When using staging areas, it is
common practice to enable the automatic creation of new attributes.
Identity Stores contain instances of entry types and attributes defined by the Identity Store
Schema.
- Can store values for predefined datatypes (text, numeric, binary, and so on)
- Can have multiple values
- Can represent a reference to another entry (for example, manager of a person)
- Can keep historic values
● Attribute presentation
- Can be customized to have different display names with translation support
- Can be customized to have different UI element visualization (for example, SingleLine
or MultipleLine)
● Attribute value
- Can be checked for uniqueness – no other entry within the IdStore can have the same
value
- Can have a minimum and maximum length (only on UI level)
- Can be checked against specific regular expressions (only on UI level)
- Can be limited to a pre-selected list – allowed values (for example pre-defined or
dynamically determined values (SQL), or fixed value help table with values)
Note:
One Attribute definition can be attached to multiple entry types, for example,
DISPLAYNAME.
The Identity Store Attributes Event Processes tab allows you to use assignment triggers
instead of event processes for attributes when possible. These settings can have an impact
on a system’s performance.
● MSKEYVALUE
- Unique key within the whole identity store across all entry types
- As an example within the MX_Person entry type, the value of this attribute could
contain the employee ID or e-mail address (as long as those are unique in the
enterprise)
- Only the first 400 characters are searchable, thus should be unique
● DISPLAYNAME
- The display name for an identity
● MX_*,SAP_*, SAPC_*
- Default attributes, which are part of the identity store schema
- When creating new custom attributes, make sure that they do not start with MX_ , SAP_
or SAPC_
● MX_DISABLED
- Assigned to a person
- Used for enabling/disabling logon to target systems
- Usually is attached to a trigger
● MX_INACTIVE
- Assigned to a person or a custom entry type defined as Identity
- Used for setting an entry as inactive (similar to delete, but without removing the data
from IdM)
- Entries with MX_INACTIVE are not visible in the UI (unless additional configuration is
done)
● MX_IDENTITY_CATEGORY
- Assigned to a person and used for license management
■ 0 (or missing): identity category undefined
■ 1: internal identity
■ 2: external identity
■ >2: for future use
● MX_ENTRYTYPE
- Defines the type of entry (for example, MX_PERSON)
● MX_APPROVERS
- Holds the list of legal approvers
● MX_OWNER
- References the owners of the entry
● MX_ENCRYPTED_PASSWORD
- Provides two-way encrypted password for password provisioning
● Purpose of the entry type (does it hold identities or context and if it is searchable (available
in the IdM UI))
● Access control of the entries of a specific type (who can see whom)
● Display and search forms (defines how entry type is displayed and how it is searched)
● Leaf-Object
- An entry type, which cannot contain other entry types
- Example: MX_Person → MXREF_MX_PRIVILEGE (MXREF_<entry type>)
■ Attribute, which is created automatically, when references between entry types are
defined
■ Reference to the parent entry (assignment)
● Container-Object
- An entry type which can contain other entry types
- Example: MX_Role → MXMEMBER_MX_PERSON (MXMEMBER_<entry type>)
■ Attribute, which is created automatically, when references between entry types are
defined
■ Reference to the child entry (assigned entries or hierarchy)
Identity Data
Now that we know how data is stored in the identity store (using entry types and attributes),
let’s review briefly how this data is distributed and handled when target systems are
connected to SAP IdM.
Each connected repository stores its own user information such user id/logon id,
authentication information like passwords and authorization data – which roles does the
respective user has in the repository in question.
SAP Identity Management provides the means to correlate the various User Accounts either
automatically, semi-automatically or manually. This enables the concept of having only one
identity in SAP Identity Management. Authorization data is synchronized with the appropriate
systems and applications providing an easy way to retrieve an overview of all authorizations
of a given identity.
The master record of an identity in the identity store includes attributes from various
repositories. The attributes included depend on the requirements of the user and the quality
of the attributes within each of the connected repositories. For example, the master record
may retrieve the employee's personal data from the company's HR system. It then retrieves
the employee's phone extension from the company phone system and retrieves the
employee's email from the company's e-mail system. This data is then orchestrated in SAP
IdM following the organization needs and requirements.
Identity data consists of different information that is used for decisions on authorizations.
Therefore, security depends on the quality of the following data:
Identity Data
● Personal data
Personal data consists of short data elements such as names, phone numbers, e-mail
addresses, pictures, or certificates.
● Pointer data
Pointer, reference data points or links from identity to other objects such as web pages,
document archives, files, and so on.
● Assignment data
Assignment data refers to roles, privileges, or other objects that grant certain
authorizations to an identity.
If you cannot correlate identities automatically, you will need to decide how to resolve the
issue. A solution would be to have a data steward correlate the identities manually, but should
be avoided where possible, since this could lead to unwanted human errors.
That is why a very important role plays the data quality and consistency across all systems
including IdM. With cleansed and organized data with clear data ownerships it is much easier
to have a streamlined and optimized security processes.
Configuration Packages
A package is the smallest part of the configuration that is maintained as a unit. This could be a
connector for a repository type or a collection of utilities that are used by other packages.
Users are granted access to different packages which allows multiple users to work on the
configuration and transport separately.
Configuration Packages
● Configuration authorization
- Users can have different access to different packages
● Multiple developers
- Can work on different parts of the configuration
- No danger of overwriting each other changes
● Revision control
- Each package check-in is stored in the database
● Transport
- Each package can be transported separately (keep dependencies in mind)
Keep the content of a package as small as possible, for example, the workflow for a given
business scenario, such as employee on-boarding. This simplified testing and transport
procedures. It should be also avoided to define too small packages. They should be business
meaningful.
Package Authorization
● Owner: Can change all package contents including authorizations for the package
● Developer: Can change all package contents excluding authorizations
● Layout Developer: Can change only forms within the package
● Import: Can import new versions of the package
● View: Can view all package contents, but cannot change anything
Package Types
There are several package types including the following:
Package Versioning
- Only the user who checked out the package can edit it
- Updates are made directly in the database
- Any user can run jobs and processes and access forms
● Check in
- Updates revision control
- Closes the edit mode for the package
- Force check in is available only for authorized users
● Revert restores the package and the database to the version before it was checked out
Package Dependencies
When creating package names, be sure that each package in your IdM system has a unique
name. Package dependency is established based on the qualified name. If the name is
changed, any established dependencies with the old name are broken. The qualified name
should contain only alphanumeric values (A-Z, a-z, 0-9), underscore(_) and period(.).
● ID
- Internal ID: Every new object receives a new ID (taskid, jobid, and so on)
- When changing an object, the object receives a new ID
● GUID
- Global unique ID: Every new object receives a new ID and if it is a new object, a new
GUID is generated.
- Every modified object receives a new ID and inherits the GUID from the previous version
of the object, which gets a new generated GUID.
- Both new and old process are stored. The old object version gets assigned a new GUID
and is marked as “Obsoleted”. Pending provisioning queue items are executed against
the old GUID.
● Qualified name
- Created based on the baseQN and the objectname
When changing a process, the modified process will keep the existing GUID.
For example, you have package A, version 1 and process P with GUID 123. You import a new
version of the package – version 2, which contains the same process P with same GUID 123.
Before importing version 2, the database already contains process P with GUID 123 and
probably some pending items in the provisioning queue. Upon importing version 2, the new
process in the database keep the old GUID 123 (but receives a new ID) and new items will
point to it. The old process gets a new GUID, but reference in the provisioning queue is by ID.
Therefore old items in the queue are executed against the old version of the process and
newly added items will get the new process version. The old version of the process is not
visible anywhere.
Connector Packages
● Repository types
- Defines the parameters needed for the connection to the target repository
- The package may provide more than one repository type
● Jobs
- Initial load job
- Other jobs depending on the connector type
● Process reference to the SAP Provisioning Engine Package,which are linked as constants
in the respective repository type
- Provision
- Deprovisioning
- Modify
● List of pre-defined public processes with specified names:
- AssignUserMembership, RevokeUserMembership
- CreateGroup, DeleteGroup
- CreateUser, ModifyUser, DeleteUser
- EnableUser, DisableUser
- SetUserPassword
- CreateCompanyAddress, ModifyCompanyAddress, DeleteCompanyAddress
Package Transport
The transport concept within SAP IdM is realized through package export/import. Usually
IdM is installed in as many tiers as the systems it provisions to. In the above example of a 3-
tier landscape, the purpose of the systems is as follows:
- Do not do any direct changes in the system, unless they are minor fixes, which are also
automatically applied to Dev
● Production
- No direct changes in the system
- Import only tested packages from Test/QA
- If the setup and configuration is done properly, the key users should be able to operate
the solution using only the user interface
- Developer Studio and an SQL editor might be needed in problematic cases for root
cause analysis
Package Export
Package Import
● Dispatcher names should match across systems in order to assign the transported objects
to the same dispatcher as in the source system.
● Packages contain references to various other objects. For the import to work correctly,
those objects should be available in the target system prior to the import.
● If the package is imported for the first time, the contents are imported as-is.
● If package already exists, then:
- New objects in the package are imported in the target system
- Modified package objects overwrite the existing objects with the exception of package
constants, which are visible in the Admin User interface
- Deleted package objects are preserved in the target system. Those can be deleted
manually. Alternatively, you can delete the package in the target system and import it
again from the source system
● One and the same package name cannot be imported in different identity stores of one
and the same SAP IdM system
● During import, a process called Obsoletion is started. It makes sure that new versions of
the jobs and tasks, which are running at the moment, continue to do so uninterrupted and
newly scheduled ones will use the new definitions
● If approvers are not found in the target system with their MSKEYVALUE, they are omitted.
LESSON SUMMARY
You should now be able to:
● Describe the Identity Store
● Describe configuration packages
● Create an Identity Store and import SAP delivered packages
Learning Assessment
X True
X False
3. For which Identity stores is it recommended to select the Automatically Create Attributes
checkbox?
Choose the correct answer.
X D This checkbox should never be selected, since it might lead to errors with the IdM
schema
X A Configuration packages
X B Processes
X C Constants
X D Scripts
X True
X False
3. For which Identity stores is it recommended to select the Automatically Create Attributes
checkbox?
Choose the correct answer.
X D This checkbox should never be selected, since it might lead to errors with the IdM
schema
X A Configuration packages
X B Processes
X C Constants
X D Scripts
Lesson 1
Creating Forms 39
Lesson 2
Customizing Search Results 43
Lesson 3
Implementing a Custom User Interface with IdM REST API 45
UNIT OBJECTIVES
LESSON OVERVIEW
In this lesson, you will learn how to create forms.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Create a custom IdM UI
Forms Overview
Forms stand for the way that end users, key users, and administrators perform certain
activities on entries in SAP IdM. Standard forms are dynamically generated based on
configuration performed with Developer Studio. They are always defined for a concrete entry
type and have a list of attributes, which are visible in the UI.
In the SAP IdM Store schema, you can define which attributes relate to which entry type.
Following the same logic here, attributes that do not belong to the selected entry type for the
form cannot be assigned to it. Forms can be organized in hierarchical folders. In the UI, these
folders can be declared as visible or not visible. The folder hierarchy is visible only when
choosing a task from within the Manage tab of the standard SAP IdM UI.
Form Types
Form types define the purpose of and the reference for a form. These include the following:
● Regular form: The normal user interface form.
● Access Control form: A form used for defining the access control of attributes.
● Display form: A form used for display of an entry type.
● Search form: A form used for search of an entry type.
SQL filters are supported for backwards compatibility only. Do not use them from SAP IdM
8.0 onwards for other actions because they can affect performance.
● Tab: Everything below a declared Tab row in the attributes list is in that tab until another
Tab row is created.
● Column: Another column of UI controls, for example, a two-column layout.
● Section: Sections appear with a given title, for better visual representation on the screen.
● Line: A horizontal line drawn for separation.
● Label: A header with custom text.
Form Presentation
In addition to the layout, you can control how the form is visualized in the IDM UI, including the
following:
● Submit/Modify Button Caption: Allows you to change the captions of the form action
buttons (for example, Save & Modify).
● Confirmation Message: A message that displays upon successful submit.
Note:
If you upgrade from 7.2, you will have the UI Tasks from 7.2 Provisioning
Framework migrated to Forms. Consider replacing them with the ones from
the default forms package of version 8.0.
Access Control
The following access controls are set by default for the display and search forms:
● Self-service forms can be executed by any user and are visible in the Self-service tab of the
standard UI.
● Other forms require the MX_PRIV:IDS:MANAGE privilege (this gives access to the Manage
tab).
● In order to validate if the logged-in user has permissions to execute the forms, additional
access control checks apply after opening the Manage tab.
● Even if the form is accessible to the logged-in user, it might be the case that all referenced
objects require additional permissions to be expanded.
LESSON SUMMARY
You should now be able to:
● Create a custom IdM UI
LESSON OVERVIEW
In this lesson, you will learn how to customize search results.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Customize a default display and search task
Display Form
The purpose of a display task is to show some default information in the search results. It is
displayed below the search table after selecting an entry from the results. It is recommended
to have a display task for each entry type. If no display task is assigned, a default one with a
limited number of attributes is generated.
Search Form
Search Results
Customizing Search Results
When customizing search results, note the following points:
The display and search forms are attached to an entry type. This reference is kept as an
incoming dependency to the package, where the form is defined. You can define display and
search forms in multiple packages, but the first form imported occupies the vacancy. The
import of the second form would result in a “target already occupied” error for the
dependency. You can see which display or search form is attached to an Entry Type within the
General tab of the Entry Type in the Developer Studio. The state of the dependency can be
seen in the properties of the package on the Dependencies tab.
LESSON SUMMARY
You should now be able to:
● Customize a default display and search task
LESSON OVERVIEW
In this lesson, you will learn how to implement a custom user interface.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Invoke an SAP IdM API
The REST API v2 of SAP IdM implements the Open Data Protocol (Odata) in version 2.0. It
supports both XML and JSON formats. Version 1 of the REST API is still available for
backwards compatibility, but should not be used for new developments. When using the REST
API, an SSL communication channel is recommended, for example, https.
All components of the REST API v2 are deployed on the SAP NetWeaver AS Java server and
thus have dependencies to the underlying stack. One of these dependencies is the
authorization and authentication, which is executed by the UME of the Java stack. In order to
get access to the REST API, certain UME actions need to be present within the profile of the
logged-in user. Both idm_authenticated and idm_authenticated_restapi UME actions are
needed for proper access to the API.
REST Functionality
● GET
Retrieves an entity or a set of entities
● POST
Creates a new entity
● POST & MERGE
Updates an entity
LESSON SUMMARY
You should now be able to:
● Invoke an SAP IdM API
Learning Assessment
1. Which of the following is an example of a self service that end users can access in the user
interface?
Choose the correct answer.
X B Create a UI task
2. A manager wants to execute a specific task on the users he or she directly manages.
Which access control should you set to allow this?
Choose the correct answers.
X A Filter/SQL Query
X B Logged-in user
X C Relation-Self
X D Relation-Manager
X C Show only the essential information in the UI for the task at hand.
X D Use structure elements like Sections to organize the attributes on the task in
alphabetical order.
6. The REST API v2 can be used to read from identity stores, but not write to them.
Determine whether this statement is true or false.
X True
X False
1. Which of the following is an example of a self service that end users can access in the user
interface?
Choose the correct answer.
X B Create a UI task
2. A manager wants to execute a specific task on the users he or she directly manages.
Which access control should you set to allow this?
Choose the correct answers.
X A Filter/SQL Query
X B Logged-in user
X C Relation-Self
X D Relation-Manager
X C Show only the essential information in the UI for the task at hand.
X D Use structure elements like Sections to organize the attributes on the task in
alphabetical order.
6. The REST API v2 can be used to read from identity stores, but not write to them.
Determine whether this statement is true or false.
X True
X False
Lesson 1
Creating Jobs 55
Lesson 2
Creating a Repository 63
Lesson 3
Creating Repository Jobs 67
Lesson 4
Implementing Scripts for Advanced Data Conversion 69
UNIT OBJECTIVES
LESSON OVERVIEW
In this lesson, you will learn how to create jobs.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Create jobs to read data from a repository or a temporary table
● Enable delta to reduce the load on the systems
● Jobs are a collection of passes that run sequentially. Jobs can be scheduled for periodic
execution using scheduling rules. Jobs do the following tasks:
- The table is created and updated on the fly, based on pass definitions.
- Usually the IdM database is used for the temporary table, but the user can specify a
different database.
- The table can be cleaned up on each run.
1. The Dispatcher detects a new job in the queue. Starts corresponding runtime
2. Runtime requests a job and locks for execution. Prepares for next job execution based on
scheduled time, engine type, and machine or machine name defined
● Periodically creates a trace file in the Jobs folder of the IdM Runtime
● Report status
● Writes log data into DB (but trace file stays next to the IdM Runtime)
Job Scheduling
SAP Identity Management uses scheduling rules for scheduling a job. You may define
scheduling rules for the following types of jobs:
Job Log
There are several different types of logs, including the following:
● Job log
- Each job execution is stored in the database
- Accessible using the IdM Admin UI or the Developer Studio
- Written in XML format, which can be used for custom integration with other tools
- By default, the job log contains only 25 lines, but this can be increased with
configuration
● Trace file
- Overridden on each run
- Access by users with file system access
- Required for support
● Log level
- Controls the amount of information that is stored in the log and trace files
- Debug and information levels might decrease performance and should only be used for
debugging
● System log
- Stores all information from trace files without overwriting it (for all jobs – mixed content
sorted by timestamp)
● Execution log
- Stores only the state of the executed jobs, for example, OK or not OK
● A job may run on different machines, so a job must not depend on local files.
● A job should consist of as few passes as possible, unless dependencies exist between
passes, or the passes execute in a given sequence.
- Better for throughput
- Different jobs can run in parallel
● If a job or multiple jobs run on multiple dispatchers, you do not know which dispatcher will
process the job every time. On the other hand, running more than one dispatcher is also
seen as good practice for failover scenarios. In those cases, it is recommended to share
resources between systems where dispatchers run (for example, load files/logs, and so
on).
● All passes within a job always run on the same dispatcher.
● The recommendation is to have 1 dispatcher per runtime component (for example, running
on different systems).
● A high-availability environment ensures that a job may be executed on different machines
(for example, runtimes). If one machine fails, another machine takes over.
● A job is a single thread - until running, it cannot be started again.
● To make elements easier to find and to communicate across the project team, design a
naming convention for Identity Center elements, including the following:
- Repositories
- Jobs
- Table names
- For example, you could use the following convention:
<yourcompany namespace><repositoryname><contents>
Naming Conventions
When naming components, use the following naming convention guidelines:
● Do not use special characters
● Temporary tables
sap%$rep.$NAME%<objectType>
● Delta keys
sapd%rep.$NAME%<objectType> where %$rep.$NAME% resolves the repository name
● objectType examples:
- User
- Role
- Profile
- Group
- Company
Delta Functionality
Delta Benefits
Enabling delta functionality has the following benefits:
● It reduces the load on the network and target systems because only changes are written.
● It can detect both new and obsolete entries.
Delta Workflow
Deltas are built using the following process:
Note:
Be careful with deletions. If the source is empty due to a connection failure,
this could delete all entries.
LESSON SUMMARY
You should now be able to:
● Create jobs to read data from a repository or a temporary table
● Enable delta to reduce the load on the systems
LESSON OVERVIEW
In this lesson, you will learn how to create a repository.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Understand and create repositories
Repository Types
Repositories Overview
The following is a brief overview of repositories:
● Repository definitions
- There is one repository definition for each target system and application.
- A repository definition contains system-specific parameters required to connect
systems and databases, such as servers, ports, credentials, and so on. (For example,
ABAP, LDAP, SAP SuccessFactors, and so on.)
● Repository type
- Constants relevant for all repositories of a given type (for example, ABAP) are stored
within the repository type.
- The repository type stores common settings for roles and privileges, job references,
and other common parameters.
Repository Type
- SAP SuccessFactors
- AS ABAP Database
● Maintained in the IdM Admin UI
Orphaned Repositories
Deleting a repository type may result in orphaned repositories.
- Re-create the repository type manually in the same package, so that the QName is the
same as before.
- Change the repository type to a new one. All declarations missing from the new
repository type are removed.
● The central UI for IdM repositories can be found under the “System configuration” tab of
the IdM Admin UI
● Apart from the usual Create and Delete operations, there are some additional interesting
features:
- Enable/Disable – A disabled repository is not deleted, and all its related contents are
still in SAP IdM. It is only marked as temporary unavailable. Provisioning for the
repository is stopped until it is enabled again.
- Import/Export – Repositories are not transported with the package transport. They can
be exported and imported separately through this user interface.
- Change Repository type – available only for disabled repositories. Allows the user to
change the repository type for a repository. Keep in mind that such change might lead
to some inconsistencies and should be used carefully.
● Below the selected repository, in a table, there are two additional tabs “Constants” and
“Jobs”. Within the constants tab you see all “Repository Constants” and “Repository Type
Constants with Override”, which are defined within the Repository Type.
● On the second tab “Jobs”, you can view and run all repository jobs, which are created for
the repository type of the repository you have selected.
LESSON SUMMARY
You should now be able to:
● Understand and create repositories
LESSON OVERVIEW
In this lesson, you will learn how to create repository jobs.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Run repository jobs
● Run a job with a given repository. An instance exists for each repository.
● Provides the following:
- Initial load
- Reconciliation
- Reports
● Can provide a link from a package constant, which makes the repository job visible in the
Admin UI.
- Run jobs
- Inspect logs
Note:
Do not link the repository job if you want to keep it internal so that the IdM
Administrators cannot run it directly.
● The same repository job is executed for various repositories of a given type.
- All instances share the same pass definitions independent of the concrete repository.
● The following settings can be defined per repository:
- Dispatcher
- Scheduling rule
● The purpose of the SAP initial load job includes the following:
- Starts the initial synchronization between the repository and IdM.
- Provides IdM with relevant information from the repository.
● The initial load job can load the following:
- Users
- Authorizations as privileges
- Groups
- Company addresses (from AS ABAP)
- Current user assignments
- Help values (from AS ABAP) for selected attributes, for example, salutation
Handled Information
SAP SuccessFactors handles the following information:
● Users (read/write)
● Dynamic groups (read/write)
● Roles (read)
LESSON SUMMARY
You should now be able to:
● Run repository jobs
LESSON OVERVIEW
In this lesson, you will learn how to implement scripts for advanced data conversion.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Use scripting for advanced logic and data transformation
Scripts
SAP Identity Management scripts primarily perform data manipulations. The following are
examples of data manipulation:
● Verify attributes
● Build attributes
● Retrieve values
● Modify values
● Convert data (advanced)
Using Scripts
Note the following when using scripts:
● Scripts are defined in the job definition or within the action tasks.
● Package scripts can be defined so that you can reuse the same script in many jobs or
action tasks.
- An explicit reference to a package script is declared in the job or action task.
● Scripts can be declared public and therefore be reused in jobs and action tasks from other
packages.
● Based on JavaScript.
- Basic JavaScript syntax error checks are performed on save.
● Can call IdM Script functions, like uEncrypt.
LESSON SUMMARY
You should now be able to:
● Use scripting for advanced logic and data transformation
Learning Assessment
X A From-passes read and write data to repositories and to-passes read and write data
to databases.
X B To-passes read from identity stores and write to repositories, from-passes read
data from repositories and write to databases.
X C From-passes read from identity stores and write to repositories, to-passes read
data from repositories and write to databases.
X D To-passes read and write data to repositories and from-passes read and write data
to databases.
2. What happens when you activate the delta functionality of a certain pass?
Choose the correct answer.
X B A hash is generated from the values and target is updated only if the hash differs.
X A Standard jobs
X B Action jobs
X C Repository jobs
X D Housekeeping jobs
X A From-passes read and write data to repositories and to-passes read and write data
to databases.
X B To-passes read from identity stores and write to repositories, from-passes read
data from repositories and write to databases.
X C From-passes read from identity stores and write to repositories, to-passes read
data from repositories and write to databases.
X D To-passes read and write data to repositories and from-passes read and write data
to databases.
2. What happens when you activate the delta functionality of a certain pass?
Choose the correct answer.
X B A hash is generated from the values and target is updated only if the hash differs.
X A Standard jobs
X B Action jobs
X C Repository jobs
X D Housekeeping jobs
Lesson 1
Connecting to SAP S/4HANA On-Premise 75
Lesson 2
Connecting to AS JAVA 77
Lesson 3
Connecting to Active Directory With LDAP 79
UNIT OBJECTIVES
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Connect to an SAP S/4 HANA on-premise system
● ABAP Connector
- For managing ABAP user accounts and their assignments to roles and profiles (SU01)
- Supports both Load Balanced Connection and Specific Application Server connection
- Contains a job to read help value information, for example, salutation)
- Contains a job to provision company addresses from IdM to ABAP repositories
● Business Suite Connector
- For managing ABAP user accounts and their assignments to roles and profiles (SU01)
- For managing Business Partners in SAP Business Suite components
- Depends on the standard ABAP Connector
- Contains a job to provision company addresses from IdM to ABAP repositories
● Dual Stack Connector
- For managing both ABAP and Java stack in one repository
- Supports both Load Balanced Connection and Specific Application Server connection
- Depends on the standard ABAP Connector
- The connector can be used for scenarios, where the Java system user management is
connected to ABAP AS server and thus all users and assignments done in ABAP are
also visible in the Java stack
Connectivity Specifics
Communication from SAP IdM to the ABAP target system is based on RFC (using SAP JCo)
● Communication for the Business Suite integration from ABAP to IDM is based on SPML. In
this scenario, Virtual Directory Server (VDS) is deployed on NetWeaver
● Secure communication is achieved using SNC and may be required in some cases (e.g.
setting a productive password in the target ABAP system)
● Connection parameters like hostname, client number, r3name, instance number, user and
password are the minimum requirements for successfully established connection
● For the ABAP connector, the technical user used for the communication should have as a
minimum the SAP_BC_SEC_IDM_COMMUNICATION role.
● If the Business Suite connector is used, then the technical user requires one additional role
– SAP_CA_BP_IDM_INTEGRATION.
● Support AS ABAP systems with release 4.6 or higher
LESSON SUMMARY
You should now be able to:
● Connect to an SAP S/4 HANA on-premise system
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Connect to an SAP AS JAVA system
● For managing Java user accounts and their assignments to roles and groups (UME)
● Supports both standalone and connected UME (LDAP)
● For ABAP connected UME, use the dual stack package explained in the previous unit
● Often the first repository to be connected in order to provision proper privileges to users,
who need access to SAP IdM
Connectivity Specifics
Communication from SAP IdM to the Java target system is based on SPML.
● Secure communication is achieved with exchange of certificates between the SAP IdM
runtime and the AS Java server. Respectively, the https parameters need to be maintained
in the repository (e.g. HTTP_PROTOCOL = https).
● Connection parameters are very simplified and require only hostname, port, user and
password.
● For the Java connector, ensure the technical user in the communication has a proper
authorizations, which are granted with the ‘Spml_Write_Action’ UME action. For read-only
access, use ‘Spml_Read_Action’ UME Action.
● Supports AS JAVA systems with release 7.0 or higher.
LESSON SUMMARY
You should now be able to:
● Connect to an SAP AS JAVA system
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Connect to an active directory system
● Used for managing Active directory user accounts and their group assignments
● Provides templates for Sun One LDAP and Microsoft Active Directory Server (ADS). Those
may be adapted to fit to the project needs
● Can be used for creation of mail accounts for users with Microsoft Exchange 2007 or 2010
Connectivity Specifics
Communication from SAP IdM to the Active Directory target system is based on LDAP
● Secure communication is achieved using the LDAPS protocol. (requires maintenance of
LDAP_PORT_SSL repository constant and certificate trust between IdM runtime and LDAP
server)
● The minimum set of connection parameters consist of hostname, port, user starting point
and filter and groups starting point and filter, as well as technical user and password to
establish the connection.
● For the AD connector, the technical user used for the communication should have proper
authorizations to read/write both users and groups in the respective locations within AD.
● Supports AD versions 2000, 2003, 2008, 2012, and 2012 R2.
LESSON SUMMARY
You should now be able to:
● Connect to an active directory system
Learning Assessment
1. How many different IdM packages can be used to connect to an ABAP backend system?
Choose the correct answer.
X A 1
X B 2
X C 3
X D 4
2. Which repository types are supported with the Java IdM package of SAP IdM?
Choose the correct answer.
X A ASJavaDB, ASJavaPortal
X B ASJavaPortal, ASJavaLDAP
X C ASJavaDB, ASJavaABAP
X D ASJavaDB, ASJavaLDAP
3. What can be done additionally with an Active Directory repository connected to SAP IdM,
apart from provisioning users and groups?
Choose the correct answers.
X C You can grant users access to 3rd party applications, which are connected to
Active Directory.
4. What additional benefit does the Business Suite connector offers compared to the
standard ABAP connector?
Choose the correct answer.
X D It can create company addresses from SAP IdM to the connected backend system.
1. How many different IdM packages can be used to connect to an ABAP backend system?
Choose the correct answer.
X A 1
X B 2
X C 3
X D 4
2. Which repository types are supported with the Java IdM package of SAP IdM?
Choose the correct answer.
X A ASJavaDB, ASJavaPortal
X B ASJavaPortal, ASJavaLDAP
X C ASJavaDB, ASJavaABAP
X D ASJavaDB, ASJavaLDAP
3. What can be done additionally with an Active Directory repository connected to SAP IdM,
apart from provisioning users and groups?
Choose the correct answers.
X C You can grant users access to 3rd party applications, which are connected to
Active Directory.
4. What additional benefit does the Business Suite connector offers compared to the
standard ABAP connector?
Choose the correct answer.
X D It can create company addresses from SAP IdM to the connected backend system.
Lesson 1
Assigning Privileges 87
Lesson 2
Describing the SAP Provisioning Framework 97
Lesson 3
Creating Business Roles 103
Lesson 4
Defining Automatic Role Assignments 105
UNIT OBJECTIVES
● Assign privileges
● Understand how provisioning works in SAP IdM
● Create business roles
● Define automatic role assignment using dynamic groups
LESSON OVERVIEW
In this lesson, you will learn how to assign privileges.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Assign privileges
Privileges
Privileges are used to manage provisioning based on assignments of authorizations in
external systems. These can be user accounts, e-mail accounts or access control systems.
The fact that a user is given a privilege does not in itself mean that the actual account is
created, only that the process has been initiated. Assigning and removing privileges can
automatically start tasks to perform provisioning and de-provisioning.
Privileges represent the smallest authorization entity in SAP IdM. They can be mapped to
various objects in the respective backend systems depending on the connector used. Here
are some examples:
● MX_PRIV:WD:TAB_TODO: Enables the To-Do tab in the standard IdM UI, which is used for
approvals
● MX_PRIV:WD:TAB_MANAGE: Enables the Manage tab in the standard IdM UI, which is
used to execute tasks on other users (not self-service)
● MX_PRIV:APPROVALS:READONLY: Provides read-only access to the Approval
Management tab. This tab provides an administrator an overview over all approvals in the
system.
Note:
Privileges are not used for access to the Developer Studio.
Assignments
Assignment Attributes
Privileges can be assigned to a user in two ways:
● Directly: Adding the privilege to the user. Assigning direct privileges is done by adding the
user entry as a member of the privilege entry.
● Indirectly: Through a business role. When assigning a business role to the user, all
privileges associated with the business role (and all sub-business roles) are added to the
user.
Privilege Types
There are two general types of privilege:
● Master privilege: Any privilege on which other privileges depend, for example, an account
privilege.
● Sub-privilege: Any privilege that depends on another privilege.
● The following specifics apply to privileges in the SAP IdM identity store.
- PRIV:<repository>:ONLY (Account privilege of type master)
■ The initial load of the <repository> creates it.
■ If assigned to a user, starts the process for creating an account in the <repository>.
■ If assigned to a company address, indicates that a change in the company address is
provisioned to the respective <repository>.
■ Contains the attribute MX_IS_ACCOUNT with value 1. The privilege is not
provisioned to the backend system.
■ Removing this privilege from a user deletes the user account from the <repository>.
■ Removing this privilege from a company address, deletes the company address in
the respective <repository>.
Note:
The account privilege cannot be assigned with context to a user.
- PRIV:SYSTEM:<repository>
● Processes can define when to be executed: Immediately, when valid, never, N days before
valid to (only for link expiry).
Assignment Attributes
Note the following about assignment attributes:
Assignment properties that can be changed on the form level include the following:
● Status filter
Extended Assignment Properties on the Relation Between Entry Type and Attribute
The following properties are additionally available to configure the assigments:
● Decide if the IdM UI asks for a reason during the assignment with the following options:
- No: Do not ask.
- Optional: A reason can be entered, but is not required.
- Mandatory: A reason is required.
● Decide if Valid From and Valid To is visible in the UI.
● Decide if assignment status is displayed or not.
Programmatic Assignments
Programmatic adding of privileges are as follows:
● The MXREF_MX_PRIVILEGE value can be assigned with MSKEY or MSKEYVALUE using the
following notation:
- MSKEY
- <MSKEYVALUE>
● Multiple values are separated by a pipe: |
Assignments Validity
Uses Cases
Here are some examples of addition and removal of assignments and when event tasks are
executed.
A user requests an assignment without maintaining validity. This immediately triggers the
Validate Add event. If this is approved, it is followed by the Add member event. After those
two events, the privilege is assigned. Because no Valid To is defined, a user starts a manual
delete operation. This operation is followed again by a Validate Remove process and, if it is
approved, but a Delete member process.
This is the same scenario as the previous one. However, the requestor provides validity. There
is no difference for Validate Add but, when approved, the Add member has an execution
condition set to “When Valid”. This delays the provisioning until the privilege's valid from date
is reached. 14 days before its Valid To date, a notification is sent and, if no action is taken,
after the expiration the del member event is called.
If the target system is validity aware, the add task can immediately provision the assignment
to the target system, including ValidFrom and ValidTo (for example, ABAP systems).
Where validity of a certain assignment must be automatically extended, the above setup can
do this extension. 14 days before the Valid To date, a notify validity process starts that
extends the privilege validity for a certain period. On the other hand, this triggers a Validate
modify event. If approved, it triggers a Modify validity member process, which extends the
privilege in IdM and the backend system.
Assignments Visibility
● When searching for entries to assign the privilege, only entries accessible to the user are
visible in the search result.
● When managing the privilege, only group members accessible to the user are visible.
● When assigning a privilege to an entry, only privileges accessible to the user are visible.
The following entry visibility options are available:
- All: The privilege is visible to all users. This is the default value.
- Owner and members: The privilege is visible to the owner and entries assigned to the
privilege.
- Owner only: The privilege is only visible to the entries defined as owners.
LESSON SUMMARY
You should now be able to:
● Assign privileges
LESSON OVERVIEW
In this lesson, you will learn how to describe the SAP provisioning framework.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Understand how provisioning works in SAP IdM
Provisioning Framework
The provisioning framework for SAP Identity Management (IdM) 8.0 provides the templates
used to connect SAP systems to SAP IdM and to set up jobs and processes for provisioning
corresponding users and assignments.
Artifact Distribution
The engine itself is in a read-only package. In SAP IdM 8.0, provisioning needs artifacts that
are distributed in several packages:
● Engine package: The engine package contains the core provisioning flow responsible for
triggering the necessary processes (Provision, Deprovision and Modify) as well as
common scripts used by all packages.
● Connector packages: The package for each connector contains the specific processes for
provisioning to a specific system (for example ABAP).
● Forms package: The forms package contains the definition of all User Interface tasks for
CRUD operations (create, read, update, delete) on different entry types.
● Notification package: The notification package contains the notification task and the
notification templates used to send notifications from the SAP Provisioning framework,
approval and attestation tasks.
● Custom package: The custom package allows customizations of the provisioning
framework without changing other packages. It contains customizations and extensions
made by the customers, default constants as well as custom scripts that could be changed
later.
Note:
To perform successful provisioning, you need to import the engine SAP package,
the custom SAP package, and at least one connector package.
Execution Path
Check during workflow approval and then revert to this statement. The member event
process is called directly because validate add is not set for the scenario.
You must determine the correct connector package and process to be called.
Figure 43: Determining the Correct Connector Package and Process (1)
Predefined processes must be public. They have a strict naming convention. Depending on
the type of connector, the processes can include the following:
● CreateUser
● ModifyUser
● DeleteUser
● AssignUserMembership
● RevokeUserMembership
● EnableUser
● DisableUser
● SetUserPassword
● CreateGroup
● DeleteGroup
● CreateCompanyAddress
● ModifyCompanyAddress
● DeleteCompanyAddress
● Basic: Does not require checking out the package (repository constants, package
constants)
● Custom Package
- Can be changed by the customer
Note:
An SAP package that has been modified by a customer requires manual
work to upgrade to a newer version from SAP.
● Connector packages can be imported under a new name with the following conditions:
- Can be used to create a new connector.
- The new package has a newly assigned qualified name, which is used to identify all
public objects it contains.
- The package still references the original engine package.
- There are no references to any other connector package.
● Engine packages cannot be copied or renamed. All connector packages reference them
(both standard SAP and those renamed or copied).
LESSON SUMMARY
You should now be able to:
● Understand how provisioning works in SAP IdM
LESSON OVERVIEW
In this lesson, you will learn how to create business roles.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Create business roles
Business Roles
IdM Business Roles
Business roles share the same member event processes as privileges. They trigger based on
the defined hierarchy. If we take the example from the figure, Role Inheritance, then, if the
ROLE:MANAGER is assigned to a person, the events of all marked business roles and
privileges trigger. The only direct assignment is the business role MANAGER, while others are
inherited.
Visibility and validity are other properties of the business role. They have more in common
with each other in how they are handled than with privileges. However, there is one property
that is exclusively available only for business roles. This property is restrictions.
● Allows or disallows the assignment of the business role to a particular set of entries, for
example, person or role
● Can define the exclusion of a possible co-existence of two or more business roles. These
are assigned to one and the same entry. The business roles part of this list cannot co-exist
attached to the same entry.
LESSON SUMMARY
You should now be able to:
● Create business roles
LESSON OVERVIEW
In this lesson, you will learn how to define automatic role assignments.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Define automatic role assignment using dynamic groups
Dynamic Groups
Purpose of Dynamic Groups
The purpose of dynamic groups includes the following:
How to Achieve Automatic Assignment with Business Roles and Dynamic Groups
You can use automatic assignments in the following scenarios:
- When a dynamic group is resolved, all members of the group automatically receive the
business role to which the dynamic group is assigned
- Business roles assigned in this way are appearing as indirect assignments to the
person, since they are assigned through the dynamic group
● If you want to programmatically assign dynamic groups to business roles:
- Use the attribute MX_ROLE_AUTOASSIGN_TO, which is part of the MX_ROLE entry
type
LESSON SUMMARY
You should now be able to:
● Define automatic role assignment using dynamic groups
Learning Assessment
1. Which of the following options is NOT a valid way to assign a privilege to a person?
Assume that the person already has an account in the system from which the privilege
originates.
Choose the correct answer.
X D Create a job with a To Identity Store pass, which has the following destination tab
setup (Entry type → MX_PERSON):Attribute 1 (MSKEYVALUE) with a value of
<MSKEYVALUE of PERSON>.Attribute 2 (MXREF_MX_PRIVILEGE) with a value of
<MSKEYVALUE of privilege>.
2. When creating a new dynamic group, which attributes/values do you add to the filter in
order to select all of the people which belong to department “Development”?
Choose the correct answers.
X A MX_ENTRYTYPE = MX_PERSON
X B MX_ENTRYTYPE = MX_ROLE
X C MX_DEPARTMENT = Development
X D MX_DEPARTMENT = Admin
3. Which part of the provisioning framework performs operations in the target system?
Choose the correct answer.
4. Which of the below privileges from target system SYS100 has an attribute
MX_IS_ACCOUNT set to 1 by default? Assume that we are using the standard initial load
for the system, which is type ABAP Single Application Server.
Choose the correct answers.
X A PRIV:SYS100:ONLY
X B PRIV:ROLE:SYS100:ONLY
X C PRIV:SYSTEM:SYS100
X D ROLE:SYS100:ONLY
1. Which of the following options is NOT a valid way to assign a privilege to a person?
Assume that the person already has an account in the system from which the privilege
originates.
Choose the correct answer.
X D Create a job with a To Identity Store pass, which has the following destination tab
setup (Entry type → MX_PERSON):Attribute 1 (MSKEYVALUE) with a value of
<MSKEYVALUE of PERSON>.Attribute 2 (MXREF_MX_PRIVILEGE) with a value of
<MSKEYVALUE of privilege>.
2. When creating a new dynamic group, which attributes/values do you add to the filter in
order to select all of the people which belong to department “Development”?
Choose the correct answers.
X A MX_ENTRYTYPE = MX_PERSON
X B MX_ENTRYTYPE = MX_ROLE
X C MX_DEPARTMENT = Development
X D MX_DEPARTMENT = Admin
3. Which part of the provisioning framework performs operations in the target system?
Choose the correct answer.
4. Which of the below privileges from target system SYS100 has an attribute
MX_IS_ACCOUNT set to 1 by default? Assume that we are using the standard initial load
for the system, which is type ABAP Single Application Server.
Choose the correct answers.
X A PRIV:SYS100:ONLY
X B PRIV:ROLE:SYS100:ONLY
X C PRIV:SYSTEM:SYS100
X D ROLE:SYS100:ONLY
Lesson 1
Creating Processes 113
Lesson 2
Configuring Approval Workflows 119
Lesson 3
Sending Notifications 123
Lesson 4
Storing Information with Pending Value Objects (PVOs) and Context Variables 125
Lesson 5
Implementing Automatic Approve/Decline 129
UNIT OBJECTIVES
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Create your own workflows
● It is built from a sequence of tasks/other processes, which are added to a process flow
diagram.
● If one of the tasks fail, none of the subsequent tasks are executed.
● The workflow can be controlled using special type of tasks (for example, Wait, Switch,
Conditional, and so on).
● Task processing within one process instance is always sequential.
● Parallel processing can be achieved using event tasks.
● A process can be public, meaning that it can be referenced and called from other
packages. If that is the case, its name must comply with the qualified name requirements
(for example, there must be no empty spaces or special characters in the name, apart
from an underscore).
● A process may have a type, for example, Validate Add.
- The type is used when adding process references to identify to filter the relevant
processes.
- The default value of the process type is Regular. Regular processes can be attached
generally on any type of event process reference.
● The tasks of a process are not visible within the Identity Management tree. They can only
be accessed through the workflow editor of the process to which they are added.
● A process may be called as an event process.
- For example, Entry type, attribute, OnOK, and so on.
Tasks
Note the following points about tasks:
Task Types
Irrelevant of its type, a task always operates on entries in the identity store (such as entry
types, attributes, and assignments).
The following task types are available:
● Action task
The action task contains a reference to a job that is run after the task is executed.
● Conditional task
The conditional task executes a certain process flow branch based on the result of a
specific condition. The condition may, for example, check the presence of an attribute in
the identity store. The condition must always evaluate to TRUE or FALSE and each result is
bound to one conditional task output branch.
● Switch task
The switch task, similarly to the conditional task, executes a certain process flow branch
based on the result of a condition. The switch task, however, may evaluate to more than
two conditions (for example, true/false). It can have a number of exit case branches that
should correspond to the possible values of the returned result. For fallback scenarios, you
must have an “Else” branch which is executed if none of the other branches match the
result.
● Wait task
The wait task influences the task execution flow. It is a kind of synchronization task, which
waits on previous tasks to complete before continuing with the rest of the process flow.
● Approval task
Approval tasks will be explained in detail in a later lesson. For now, it is enough to know
that those tasks are included in the process when a certain request requires approval (for
example, Assignments approval).
● Attestation task
Those tasks are used to perform periodic attestations of roles/privilege assignments.
Action Tasks
Action tasks have the following properties:
Conditional Tasks
Conditional tasks have the following properties:
● The task executes either a ‘true’ branch flow or a ‘false’ branch flow
● A condition defines which flow to execute
- LDAP-like filter
■ Includes possibility to include inactive entries
■ You can use attribute IDs instead of attribute names for faster comparison, but not
so generic as attribute name
■ Can define the Return attribute, for example, MSKEYVALUE
- SQL statement
- Database stored procedure
● The SQL statement must return one of the following:
- 0 or empty string: Execute the FALSE branch
- Anything else: Execute the TRUE branch
Switch Tasks
Switch tasks include the following properties:
● A decision point which evaluates a condition and executes one of the matching exit
branches.
● The condition is defined the same as with conditional tasks.
LDAP Filtering
The filter is a string representation of LDAP search filters based on RFC2254:
- If you edit the generated SQL, it is not possible to go back to the LDAP filter (for
example, a reverse conversion)
Wait Tasks
● Provisioning audits
- Keep track of what a process or task has triggered and the result of that task
- Can be viewed within the Monitoring tab of the IdM Admin UI
● Provisioning queue
LESSON SUMMARY
You should now be able to:
● Create your own workflows
LESSON OVERVIEW
In this lesson, you will learn how to configure approval workflows.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Configure approval workflows
Approvals
Approval Definition
An approval definition includes the following:
● Approval workflow
- Attached to a role or privilege as a Validate Add process
- Can contain multiple approval tasks — each task is a separate level of approval
● Approvers and escalation approvers can be defined on:
- Role or privilege
- Assignment Context – in case of context-based assignments
- Approval task
- Pending value object – when event is started, the approvers are copied to the PVO from
the role/privilege. The difference here is that you can modify the approvers manually
before entering the approver task
● Approvals are sequential
- Each approval can be configured independent of the others
- Example: first approval by line manager, second approval by role owner
Approval Tasks
The approval task has the following three sub-branches:
● Approve – if the task is approved, all tasks under this branch are executed
● Decline – if the task is declined, then all tasks under this branch are executed
● Timeout – if neither of the above takes place for a certain period of time, then the timeout
branch is triggered
● The approval task can be configured for both assignment and basic approval.
- For assignment approval, the approver confirms if a certain role or privilege should be
attached to a person. The object which is being approved is a pending value and waits
for the process to complete with a proper decision.
- For the basic approval, which approves certain master data objects, there is no pending
object. This means that the values which are being approved are already set and it is
only a matter of the approver’s decision which influences the branch to be executed in
the approval workflow.
- The approvers for the type basic are always defined on the approval task itself.
Note:
The basic approval can be configured using the Attributes tab of the
approval task, which is enabled only if the Show Attributes checkbox is
selected in the task.
Approval Management
Central Approval Management
Use central approval management to centrally monitor and act on pending approvals. Central
approval management is available to administrators in IDM Admin UI and managers in the
IDM Standard UI with the following roles:
● Administrator: If users have any of the following privileges, they can see all approvals in the
system:
- MX_PRIV:APPROVALS:READONLY – only read access, no approval
- MX_PRIV:APPROVALS:PROCESS
● Manager: Users are allowed to see the approvals for all approvers as MX_MANAGER
- MX_PRIV:MANAGED_APPROVALS:READONLY – only read access, no approval
- MX_PRIV:MANAGED_APPROVALS:PROCESS — this role is also allowed to decline and
escalate
Delegation
Manual Delegation
An approval item can be delegated to somebody else for processing. This delegation can be
done manually or automatically. Note the following about manual delegation:
- To a role or a privilege
- To the user receiving the assignment (for example, the recipient)
● The new approver can be notified by email about the delegated task
Auto Delegation
Auto delegation can be used when an approver is out of the office or unavailable for any other
reason. Note the following points about auto delegation:
LESSON SUMMARY
You should now be able to:
● Configure approval workflows
LESSON OVERVIEW
In this lesson, you will learn how to send notifications.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Send notifications
Notification Types
Notification Package
The notification package includes a notification framework that allows you to send e-mail
notifications for certain events.
Message Templates
Message templates allow you to perform the following tasks:
LESSON SUMMARY
You should now be able to:
● Send notifications
LESSON OVERVIEW
In this lesson, you will learn how to store information with pending value object and context
variables.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Store information with pending value objects (PVOs) and context variables
Pending value objects are deleted some time after the process for which they were created is
completed.
Common attributes of the PVOs during approvals include the following:
● MX_ENTRY_REFERENCE – contains the mskey, which references the entry for which the
pending object was created (for example, during approval – the mskey of the requestee).
● MX_ATTR_STATE – indicates the state of the attribute on the PVO. Usually it is not
changed, except in cases of automatic decline. It can have the following values:
- 0 – disabled (no reason)
- 1 – pending approval (added on Validate-Add/Delete/Modify events). If during task
completion, the value of this attribute is still 1, the assignment is considered approved.
- 2 – pending enable (waiting for future validFrom)
- 3 – declined approval
● MX_APPROVALS – used for assignment approvals and stored as one multi-value attribute
on the entry. Contains the approvals for the requested role/privilege.
● MX_OWNER – contains the owner(s) of the requested object (for example, role/privilege).
Pending value objects for future values additionally include the following attributes:
● MX_ATTRIBUTE_NAME – the name of the attribute which will be processed in the future.
● MX_ATTRIBUTE_VALUE – the value to be written when the ValidFrom date arrives.
● MX_ATTRIBUTE_DELETE – contains a list of values with their unique identifiers, which
allow removal of multi-value attributes, for example, role assignments.
- MX_VALIDFROM – the date/datetime from which the attribute value is valid. If this is
not provided, then no pending value object is created, and the value of the attribute is
applied immediately.
- MX_VALIDTO – the date/datetime on which the attribute value will be removed. This is
set as expiryTime for the attribute value.
- MX_VALIDFROM_NEW/MX_VALIDTO_NEW – only during change of validity, these two
attributes hold the extension values for the new validity.
Context Variables
Context variables can transfer data between tasks of the same process. The following
characteristics apply:
Note:
For the event attributes values, the context, and the validity, there are also context
variables representing the old values.
LESSON SUMMARY
You should now be able to:
● Store information with pending value objects (PVOs) and context variables
LESSON OVERVIEW
In this lesson, you will learn how to implement automatic approve/decline of role requests.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Implement automated approve/decline
Automatic Approve/Decline
To evaluate if certain assignments should be automatically approved or declined, normally
you would need additional information to make a proper decision. With the help of the PVO,
you can access various attributes related to the user receiving the assignment (for example,
the SUBJECT), to the role or privilege being assigned, the context, if any, as well as the
properties from the link table. Access to these attributes is granted using pre-defined prefixes
as shown in the figure, PVO Event Tasks.
- idmv_approvals_basic
- idmv_approvals_ext
The function supports a number of operations related to the approval. Some of the common
ones are as follows:
● Approve (1)
● Decline (2)
● Delegate (3)
● Add approver (4)
● Remove approver (5)
Operations like add and remove approver, and delegate, require additional input
(AdditionalParams) with the mskey of the entry which is targeted.
LESSON SUMMARY
You should now be able to:
● Implement automated approve/decline
Learning Assessment
X F The process should adhere to the naming convention of IdM for public objects
3. Which event task should be used if you want to have an approval for particular privilege/
role?
Choose the correct answer.
X B Add
X C Validate Add
X D Validate Remove
4. Which process should be defined on repository type level if you do not want to always
assign the ONLY privilege alongside backend system privileges to start provisioning?
Choose the correct answer.
X A Connection expiration
X B Provisioning
X C Validate Add
X D No Master Process
X A Timeout
X B Escalation
X C Approve
X D Decline
6. Which attribute of the PVO contains the approvers for the requested assignment?
Choose the correct answer.
X A SUBJECT.MSKEYVALUE
X B MX_APPROVERS
X C LINK.LinkAssigner
X D TARGET.MSKEY
X F The process should adhere to the naming convention of IdM for public objects
3. Which event task should be used if you want to have an approval for particular privilege/
role?
Choose the correct answer.
X B Add
X C Validate Add
X D Validate Remove
4. Which process should be defined on repository type level if you do not want to always
assign the ONLY privilege alongside backend system privileges to start provisioning?
Choose the correct answer.
X A Connection expiration
X B Provisioning
X C Validate Add
X D No Master Process
X A Timeout
X B Escalation
X C Approve
X D Decline
6. Which attribute of the PVO contains the approvers for the requested assignment?
Choose the correct answer.
X A SUBJECT.MSKEYVALUE
X B MX_APPROVERS
X C LINK.LinkAssigner
X D TARGET.MSKEY
Lesson 1
Defining Context 137
Lesson 2
Creating Guided Activity Forms 141
Lesson 3
Provisioning Context Toward Backend Systems 145
Lesson 4
Assigning Automatic and Conditional Context 149
UNIT OBJECTIVES
LESSON OVERVIEW
In this lesson, you will learn how to define context.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Define a Context in SAP Identity Management
Basic Assignments
Context-Based Assignments
Context Type
Each type of context must be created as a separate entry type, for example Store. Each
context is defined as an entry with this entry type. For example, if the context type is Store,
each store location is defined as an entry with this entry type.
The specified context follows the inheritance of the assignment. If a role is assigned with a
given context, then all inherited roles and privileges are also assigned in the same context.
Context types are defined based on the need of the project. Each role or privilege have a
defined set of legal contexts. This set is stored in the privilege under attribute MX_CTX_TYPE.
When an assignment is made, only contexts of the specified context types can be in the
assignment.
MX_CTX_TYPE can be set either on roles, privileges, or repository types.
Context Types
Many different context types can be defined including the following:
● Factory
● Store
● Project
● Location
LESSON SUMMARY
You should now be able to:
● Define a Context in SAP Identity Management
LESSON OVERVIEW
in this lesson, you will learn how to create guided activity tasks.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Create guided activity forms to request privileges
Guided Forms
Most of the forms in SAP IdM are created with one atomic step or operation, for example,
assignment of access or update of master data. However, guided activity forms have multiple
steps organized in a wizard-like UI. When context is available, they are used for assignments
of role or privileges.
4. Confirm
If you do not want to use Guided tasks but want to assign the context automatically
with a job or an action task, you can specify the context, as shown in the figure, Context
Assignment from the Runtime, and the figure Assignment with Illegal Context Type.
To make an assignment including a context, the role or privilege must have the entry type of
the context object as a legal context type. Set the MX_CTX_TYPE on the entry to the entry
type you want to use as context.
Every role and privilege which you want to assign with a context must have the MX_CTX_TYPE
set. If you attempt an assignment with a context entry, where the entry type of the context
entry is not defined in the MX_CTX_TYPE:
● If this is a direct assignment, an error is returned.
● If this is an indirect assignment, this is silently ignored, and you will not get the inherited
role/privilege
Once assigned, MX_CTX_TYPE is rarely removed or changed. However, if you must do this,
note that there is no automatic reconciliation process started. You must ensure that all
affected users are marked as dirty, so that the reconciliation process picks and cleans them.
LESSON SUMMARY
You should now be able to:
● Create guided activity forms to request privileges
LESSON OVERVIEW
In this lesson, you will learn how to provision context towards back-end systems.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Provision context towards back-end systems
● Backend systems that can identify contexts: Send the user, authorization, and context
(triplet) to the back-end system
● Backend systems that cannot identify contexts:
- Convert the triplet to single authorization in the backend system.
- Use the context to define different backend systems to send the authorization to.
If the back-end system can identify the context, then no conversion is needed. You can send
the following objects to the target system:
● User
● Context
● Privilege
Note:
Only a few systems currently support this, for example, Active Directory.
Depending on how assignment is done, there might be two different solutions on how to
assign context-based privileges:
● Using privileges: Generate one privilege for each global authorization, for example,
Manager or Supervisor. Then, based on the context assignment, create a mapping to the
backend authorizations.
● Using business roles: Assign all backend authorizations to a business role with the proper
context, for example, Walldorf or Las Vegas. Then, assign the business role to the user with
needed context, for example, Waldorf or Las Vegas. Only the one that matches the
privileges are assigned. The rest are silently ignored.
LESSON SUMMARY
You should now be able to:
● Provision context towards back-end systems
LESSON OVERVIEW
In this lesson, you will learn how to assign automatic and conditional context.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Assign automatic and conditional context
Automatic Context
Automatic context is for automatically calculating, in runtime, if a requested assignment
without context assigns its privileges with or without context based on context-automatic
values assigned to a person and the automatically-assign policy of the privileges:
■ If missing: Only add the context if not part of the request assignment already.
■ Always: Always try to assign with context regardless of the requested context.
● The autoassign policy does not apply to any other entry types than MX_PRIVILEGE.
● Alternatively, the MX_PERSON entry type has an attribute, MX_CTX_AUTO_VALUES, that
holds references to one or more context values.
Country-Based Assignment
The user attribute MX_CTX_AUTO_VALUES holds the country-context values for the user.
These are automatically added to assignments. Consider the following scenario, as shown in
the figure, Example - Automatic Context with Country-Based Assignment:
The figure, Example - Inherited Automatic Context, shows an example of inherited automatic
contexts. In the example, all roles and privileges in the diagram have a properly set,
MX_CTX_TYPE, that enables assignment of the country context.
● Role 1 (R1) is requested for assignment without context.
● Role 3 (R3) is a child to Role 1 (R1). It also has no context assigned because it inherits the
context from Role 1
● Depending on the Privilege 1 (P1) autopolicy, the following scenarios are possible:
- None: P1 is assigned without context.
- If missing: Context value US is added to P1 because the role is requested for
assignment without context and the user has the context value US in the context auto
values attribute.
- Always: Context value US is added to P1 because the policy implies that it is always
added and the user has the context value US in the context auto values attribute.
Conditional Context
The purpose of conditional context is to handle a privilege assignment when the assignment is
requested with context.
Conditional Context
The figure, Example - Conditional Context, shows a use case. In this example, we assume that
both the role and privilege are set to Country
The figure, Inherited Conditional Context Assignment - Example, shows the following when
business roles are requested with context:
LESSON SUMMARY
You should now be able to:
● Assign automatic and conditional context
Learning Assessment
1. When creating a new context entry type, how do you create the context values?
Choose the correct answers.
X A General context
X B Conditional Context
X C Automatic context
X A MX_PERSON
X B MX_CTX_AUTO_VALUES
X C MX_ROLE
X D MX_PRIVILEGE
4. When requesting a context for a privilege, the privilege is assigned even if the conditional
context does not contain the context from the assignment. (Assume that the person has
no context auto-values defined.)
Choose the correct answer.
X A Yes
X B No
1. When creating a new context entry type, how do you create the context values?
Choose the correct answers.
X A General context
X B Conditional Context
X C Automatic context
X A MX_PERSON
X B MX_CTX_AUTO_VALUES
X C MX_ROLE
X D MX_PRIVILEGE
4. When requesting a context for a privilege, the privilege is assigned even if the conditional
context does not contain the context from the assignment. (Assume that the person has
no context auto-values defined.)
Choose the correct answer.
X A Yes
X B No
Lesson 1
Configuring the Virtual Directory Server (VDS) 161
Lesson 2
Managing Passwords with SAP IdM 173
Lesson 3
Explaining the Reporting Tools 177
Lesson 4
Debugging Entries 183
Lesson 5
Running Housekeeping Procedures 185
Lesson 6
Implementing Hybrid Scenarios 187
UNIT OBJECTIVES
LESSON OVERVIEW
In this lesson, you will learn how to configure the Virtual Directory Server (VDS).
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Configure the VDS
SAP NetWeaver Identity Management Virtual Directory Server can logically represent
information from a number of disperse directories, databases, and other data repositories in a
virtual directory tree. Different users and applications can, based on their access rights, get a
different view of the information.
Features like namespace conversion and schema adaptations provide customers with a
flexible solution that can continually grow and change to support various demands from
current and future applications and demands for security and privacy without changing the
underlying architecture and design of data stores like databases and directories.
● The Virtual Directory Server can act as a server for incoming LDAP or SPML requests.
● The Virtual Directory Server can act as a client when accessing its back-end data sources.
● Both the client and the server can be configured to use SSL when accessing LDAP data.
Virtual Trees
The core functionality of the Virtual Directory Server is joined in the concept of virtual trees. A
virtual tree provides a structure that combines data sources with user groups and rules that
are used when processing the requests submitted from the clients.
The Virtual Directory Server always creates one virtual tree, but you can define more than
one, if necessary. This could be the case if you want clients to access the same server and
port number using the same starting point, but either give different clients different views
(structure) of the same data source, or even connect to different data sources.
● One user group may be associated with only one virtual tree
● Data sources and rules are available to all virtual trees
● The virtual tree can contain two node types:
- Static – do not reference any data source. Used to build the structure of nodes for the
tree starting points
- Data source – underlying objects are retrieved from the data source
● The structure of a virtual tree must comply with the LDAP standard (e.g. only one level with
attribute o=, which can be followed by one or more ou=)
● A node’s qualified name consists of the name of all nodes above the node in the virtual tree
including the node itself (e.g. o=data,cn=john smith)
● When running VDS as a server, you can access it as any other LDAP server. The server
configuration can be run also in test mode. In this case the data sources are accessed
through the internal tree, which is simply a representation of the data source in LDAP
structure, where each data source has its own DN. The internal tree itself has the DN
o=internal. (e.g. ou=ds_<unique ID of source>,o=internal)
● Attribute names are converted from the client attributes to the internal attributes (1)
● The request is cleaned using rule configurations. They define which attributes are allowed
and all others (e.g. not allowed) are cleaned (2)
● The remaining attributes are converted according to the data source configuration (3)
● There follows a new attribute clean-up, according to the specified data source (4)
● The same is applied to the filter attributes (5)
● The converted request is processed using the defined methods for the appropriate
connector (6)
● Due to the applied filters, it might happen that either the attribute or filter part of the
request become “empty”. In this case the request is not carried out and an error message
is returned to the client.
Configuration Deployment
When you deploy the configuration, you specify the server name and port number that the
clients will use to access the server.
When connecting an SAP HCM system to SAP Identity Management, the identity data is
exported from the SAP HCM system and imported into the Identity Store. For this, the Virtual
Directory Server is used as the common interface for processing the data. You can therefore
use the export functions in SAP HCM that are available for exporting data to an LDAP
directory. This data is then imported into a staging area before being replicated into the
productive identity store. Once the data is in the productive identity store, it can be
provisioned to the connected systems.
In order to establish the integration, certain prerequisites should be met:
The SAP Identity Management GRC integration consists of a set of processes in SAP IdM and
a configuration in the Virtual Directory Server that enables the use of SAP Access Control for
risk validation before user provisioning. Using this solution, SAP Identity Management can
execute provisioning to multiple target systems which are controlled by SAP Access Control
to ensure compliance according to the rules implemented here.
● Centralized provisioning: This is a scenario where SAP Identity Management is the only
provisioning system, responsible for provisioning both the assignments that require and
do not require compliance checks to the target systems
● Distributed provisioning: This is a scenario where the provisioning is performed both by
SAP Identity Management and SAP Access Control
● AC Validation – the result can be obtained based on the defined result handling option
(polling or AC callback)
● Polling - Identity Management performs the appropriate web service request, polling the
SAP Access Control for the result continuously at a particular interval (which is
configurable). This result handling scenario is fail-safe.
● Event-based (AC Callback Service) - Instead of polling for the result, Identity Management
is informed about the status of the request when the processing is done. The information
about this is sent by GRC (SAP Access Control) by calling a web service deployed on SAP
NW Java (GRAC_EXIT_FROM_IDM_WS) and Identity Management is waiting for this call.
Only one call is made, which makes this result handling scenario more vulnerable (not fail-
safe) as this one call may be lost (e.g. due to network issues)
Which of the two behaviors is active is configurable with a set of constants on the GRC10
repository within SAP IdM.
In the centralized provisioning scenario, the process executes a synchronous call to the GRC
system, which obtains the risk result immediately. No use of result handling scenarios is
needed. Those apply only to the distributed provisioning scenario.
Attribute Description
MX_AC_MAINTAINED Indicates that a role is created and main-
tained in the GRC system
MX_AC_ENVIRONMENT Specifies the GRC provisioning environ-
ment
● Certain attributes are locked in SAP IdM to avoid desynchronization between the two
systems. You should not modify these:
- DISPLAYNAME
- DESCRIPTION
- MX_AC_ENVIRONMENT
- MX_AC_ROLEID
- MXMEMBER_MX_PRIVILEGE
- Filtering
- Access Control
- Join
- Logging
- Using a fail-over server
LESSON SUMMARY
You should now be able to:
● Configure the VDS
LESSON OVERVIEW
In this lesson, you will learn how to manage passwords with SAP IdM.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Manage passwords with SAP IdM
● Identify – the user will be asked for a unique identifier (could be MSKEYVALUE or other
unique attribute)
● Verify identity – the user should answer some pre-defined questions, to which only he/she
knows the answer
● Set password – a new password is set for the user, either as manual input or generated by
the system.
Password reset may fail due to various reasons (e.g. complexity of password, user locked in
target system, repeated password from history, etc.). Such failed attempts are logged.
The password reset form should be configured to call a Password reset failed process.
Parameters, like defining a minimum number of validation answers or a number of
authentication questions that should be displayed for the user, need to be defined also.
The password reset form should also be referenced from the identity store.
● Initial password
- Target system would require the user to change the password on first login
- If no password is provided, some target systems will disable login with password
● Productive password
- Target systems require SSL connection in order to set productive passwords
- To set a productive password use the attribute “ProductivePwd” with the value “X”
Password Attributes
The following attributes are related to password management:
● MX_PASSWORD
- Stores hashed password
- Used by the IdM UI for password input
- One central password for all connected target systems
● MX_ENCRYPTED_PASSWORD
- Used for password provisioning and synchronization
LESSON SUMMARY
You should now be able to:
● Manage passwords with SAP IdM
LESSON OVERVIEW
In this lesson, you will learn how to explain reporting tools.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Explain the reporting tools
Reporting Overview
IdM Reporting Options
The following options are available to create IdM reports:
● HTML reports
- Generates static HTML reports from data available in IdM
- Uses SQL queries to define the resulting data set
- Uses MX_REPORT entry type
- Result is stored as a binary in the database
● BW reporting
- IdM data can be replicated to SAP BW using a data transfer job from IdM
- After the initial load, it is recommended to set up a delta load to avoid long-running jobs
- BW can generate reports based on replicated data
- Good option if BW is already in use for reporting purposes
● SAP Lumira or SAP Analytics Cloud
- Can be used to connect directly to the SAP IdM database and build dashboards for self-
service reporting
HTML Reports
Reports that successfully extract information from IdM are visible in the View Reports tab.
BW Reports
Note the following about SAP Identity Management and BW reporting:
Architecture
Lumira Reporting
SAP Identity Management Analytical Reports using SAP Lumira
You can run SAP Identity Management analytical reports using SAP Lumira. SAP Lumira
includes the following components:
● Connection
Data Refresh
You can refresh data in the following ways:
● Automatic
- Schedule data extraction from the DB
- Schedule data publication to SAP Lumira cloud
● Manual
- Manual data extraction from SAP Lumira desktop
- Manual publication of the refreshed DataSets to SAP Lumira cloud
LESSON SUMMARY
You should now be able to:
● Explain the reporting tools
LESSON OVERVIEW
In this lesson, you will learn how to debug entries in SAP IdM.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Enable the entry trace for debugging
Entry Trace
Entry Traces
The purpose of an entry trace is to follow the processing of a single entry. Entry traces can be
enabled from the Admin UI. An entry trace includes the following:
● Traced information
- Writing attributes
- Internal operations
- Conditional tasks such as SQL queries
- Switch tasks
- Script log messages (uErrMsg, uWarning, uInfo)
- Dispatcher operations
- Time
- PVOs
● On database level, the views containing the traced information are:
- Core data — idmv_trace_basic
- User friendly format — idmv_trace_data
LESSON SUMMARY
You should now be able to:
● Enable the entry trace for debugging
LESSON OVERVIEW
In this lesson, you will learn how to run housekeeping procedures in SAP IdM.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Configure the schedule for housekeeping procedures
Housekeeping Procedures
Housekeeping Procedures
Note the following about housekeeping procedures:
LESSON SUMMARY
You should now be able to:
● Configure the schedule for housekeeping procedures
LESSON OVERVIEW
In this lesson, you will learn how to implement hybrid scenarios.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
● Explain the role of SAP IdM in hybrid scenarios
In a hybrid landscape, SAP IdM plays a very important role, being the on-premise user store
which controls and triggers all provisioning operations for cloud and non-cloud systems. In
combination with on-premise SAP Access Control and the cloud IAG product, it offers a full
range of security services needed for an advanced Identity and Access Management solution.
LESSON SUMMARY
You should now be able to:
● Explain the role of SAP IdM in hybrid scenarios
Learning Assessment
1. What are common use cases for the Virtual Directory Server?
Choose the correct answers.
X D They are temporary attributes, which are deleted after password provisioning
X A SAP IdM
X B SAP Lumira
X C SAP ASE
X D SAP BW
X D Initiate attestation
6. Which SAP product in the cloud allows provisioning to SAP cloud applications?
Choose the correct answer.
1. What are common use cases for the Virtual Directory Server?
Choose the correct answers.
Correct. SAP HCM integration, LDAP Gateway for SAP Identity Store, and SAP GRC
Access Control integration are common use cases for the Virtual Directory Server.
X D They are temporary attributes, which are deleted after password provisioning
Correct. These attributes are used to store the user password in SAP IdM and for
password provisioning.
X A SAP IdM
X B SAP Lumira
X C SAP ASE
X D SAP BW
Correct. SAP IdM, SAP Lumira, and SAP BW can be used to create IdM reports.
Correct. You can enable entry traces for a particular identity from the admin UI.
X D Initiate attestation
6. Which SAP product in the cloud allows provisioning to SAP cloud applications?
Choose the correct answer.
Correct. SAP Cloud Platform Identity Provisioning allows provisioning to SAP cloud
applications.