Configuring PI Server Security
Configuring PI Server Security
Version 3.4.380
OSIsoft, Inc. International Offices
777 Davis St., Suite 250 OSIsoft Australia
San Leandro, CA 94577 USA Perth, Australia
Auckland, New Zealand
Additional Offices OSIsoft Germany GmbH
Houston, TX Altenstadt, Germany
Johnson City, TN
OSIsoft Asia Pte Ltd.
Longview, TX
Mayfield Heights, OH Singapore
Philadelphia, PA OSIsoft Canada ULC
Phoenix, AZ
Montreal, Canada
Savannah, GA
Calgary, Canada
Sales Outlets/Distributors OSIsoft, Inc. Representative Office
Middle East/North Africa Shanghai, People’s Republic of China
Republic of South Africa OSIsoft Japan KK
Russia/Central Asia Tokyo, Japan
South America/Caribbean
Southeast Asia OSIsoft Mexico S. De R.L. De C.V.
South Korea Taiwan Mexico City, Mexico
OSIsoft do Brasil Sistemas Ltda.
Sao Paulo, Brazil
OSIsoft, the OSIsoft logo and logotype, PI Analytics, PI ProcessBook, PI DataLink, ProcessPoint, Sigmafine, Analysis Framework, IT
Monitor, MCN Health Monitor, PI System, PI ActiveView, PI ACE, PI AlarmView, PI BatchView, PI Data Services, PI Manual Logger, PI
ProfileView, PI WebParts, ProTRAQ, RLINK, RtAnalytics, RtBaseline, RtPortal, RtPM, RtReports and RtWebParts are all trademarks of
OSIsoft, Inc. All other trademarks or trade names used herein are the property of their respective owners.
Published: 9/22/2009
Table of Contents
Chapter 1 Introduction to PI Server Security .............................................................................. 1
A Brief Look at PI Server Security...................................................................................... 1
Why Use the New Security Model? .................................................................................... 9
Chapter 6 How Will PI Server 3.4.380 Affect My Clients and Interfaces? ..............................59
Products That Connect Through a Trust .......................................................................... 59
Products that Connect to an Application Server .............................................................. 60
Administrative Client Applications .................................................................................... 61
PI ACE .............................................................................................................................. 73
PI BatchView .................................................................................................................... 74
PI DataLink ....................................................................................................................... 76
PI DataLink for Excel Services (PI DLES)........................................................................ 77
PI Manual Logger ............................................................................................................. 79
PI Notifications ................................................................................................................. 81
PI OLEDB ......................................................................................................................... 82
PI ProcessBook ................................................................................................................ 83
RtAlerts ............................................................................................................................. 84
RtReports Server (to configuration PI Server) ................................................................. 85
RtReports Editor (to PI Data Server) ................................................................................ 86
RtWebParts and RtBaseLine Services ............................................................................ 88
Interfaces .......................................................................................................................... 90
iv
Chapter 1
In PI Server 3.4.380, both the authentication and the authorization mechanisms are different
from the mechanisms in earlier versions of the PI Server. Although the old model continues
to be supported, the new mechanisms are more flexible, easier to manage, and more secure.
• Authentication (page 1)
• Authorization (page 4)
Authentication
Before the PI Server 3.4.380 release, two methods of authentication were available: PI Trusts
and PI password authentication (also called explicit logins).
• PI Trusts were typically used for PI Interfaces, which run unattended. Trust
authentication works by comparing the connection credentials of the connecting
application to the Trust records in the Trust Database. Human intervention is not required
at the time of connection.
• Users connecting to the PI Server through client applications were typically authenticated
through explicit logins, which means that the user logs on to the PI Server by typing in a
PI User name and password. Explicit logins have a number of drawbacks: they require
users to log in separately to Windows and to the PI Server; they require system managers
to maintain separate user accounts for every user on the PI Server; and they are not
especially secure.
2
A Brief Look at PI Server Security
This authentication model provides single sign-on for PI users, requires less maintenance for
PI administrators, and significantly increases security over the previous model. Both PI
Trusts and explicit logins remain as authentication mechanisms on the PI Server. PI Trusts
are still the recommended method for authenticating most Interfaces. However, explicit
logins are not recommended. They are available to provide backward compatibility.
Authorization
The new security model includes a much more flexible model for access permissions. In
previous versions of the PI Server you could set permissions only for one owner, one user
group, and for world access (everyone else). With the new security model, each PI Server
object can have read and/or write permissions defined for any number of PI Identities.
PI Identities and PI Mappings are the central components of the new PI Server security
model. They determine which Windows users are authenticated on the PI Server and what
access permissions they have there (for example, is the user allowed to create a point? Run a
backup?)
Each PI Identity represents a set of access permissions on the PI Server. Each PI Mapping
points from a Windows user or group to a PI Identity (or a PI User or PI Group). You cannot
directly grant a Windows user or group access to a PI Server resource (such as a point or a
module). Instead, you create a PI Identity that has that access and then you create a PI
Mapping between the Windows user or group and that PI Identity.
Members of the Windows groups that are mapped to a PI Identity are automatically granted
the access permissions for that PI Identity. For example, in the following illustration, the PI
Identity called PIEngineers has read/write access to the data for the TestTag point. Because
the Active Directory (AD) group EngineeringTeam is mapped to PIEngineers, all the
members in that AD group get read/write permission for the point data.
4
A Brief Look at PI Server Security
Each PI Server resource (such as the TestTag in the illustration above) can have defined
access permissions for any number of PI Identities. Although the Windows user gets access
permissions through one or more PI Identities, the PI Server does keep track of the specific
Windows user ID both in the audit trail and in the last change information.
Note: Although the PI Server can use Windows security for authentication, you still need
to define access permissions explicitly on the PI Server.
Note: The Identities tab appears only if you are connected to at least one 3.4.380 or
later PI Server. If not, then only the Users and Groups tabs appear.
To see what Identities you are currently connected as, look at the Connection Information at
the bottom left of the SMT. It displays your Windows user ID, followed by the list of your
Identities (and/or PI Users and Groups).
If you click on the Identities, it tells you how you are connected (for example, through a
Mapping, a Trust or as a default user).
Note: Your Windows account is always displayed, even if you are not connected to the
PI Server through a Mapping.
To manage PI Mappings in SMT, use the Mappings and Trusts tool. Click the Mappings tab
to see all the PI Mappings defined for all connected PI Servers.
6
A Brief Look at PI Server Security
Note: The Mappings tab appears only if you are connected to at least one 3.4.380 or
later PI Server. If not, then only the Trusts tab appears.
PIWorld A PI Identity with default access permissions for read-only access to all PI
resources. The PIWorld Identity represents the "Everyone" concept of
Windows; it specifies the rights of non-explicit users or groups. By Default,
PIWorld is granted read access to all PI Server databases and objects. All
authenticated PI Server users are given at least PIWorld privileges.
PIWorld is available only on PI Server version 3.4.380 and later.
You can rename the PIWorld Identity; however you cannot delete PIWorld.
You cannot map PIWorld to an AD group and you cannot use it in a trust.
Note: There is also a hidden user and a hidden group. PIUserIncompatible and
PIGroupIncompatible are used to display an owner and group in older
administrative tools that do not support Windows authentication. They do not
appear in the list of Identities by default. To show them, use the Options button.
These PI Identities are included only on PI Servers 3.4.380 and later. See
Administrative Client Applications (page 61) for more information.
Note: The piadmins PI Group was called piadmin on previous versions of the PI
Server. The name was changed to piadmins (plural) with the PI Server 3.4.380
release, in order to prevent conflict with the piadmin User account.
8
Why Use the New Security Model?
Note: You can disable PIWorld. If you do that, then users no longer get PIWorld access
along with their explicitly-granted access permissions. This can be risky however,
especially for upgrades. You might be relying on PIWorld access in a number of
places without knowing it. See Disable PIWorld (page 57).
The PIWorld Identity replaces the world access of earlier versions of the PI Server; world
access was always granted to all authenticated users, but there was no explicit world user
account. With PI Server 3.4.380, the previously implied world access is now made explicit
with the PIWorld Identity.
By default, PIWorld is granted read access to all PI Server databases and objects. You can
change the access permissions granted PIWorld, but you cannot delete this Identity. The
PIWorld Identity cannot be used in a Mapping or a Trust.
Quick-Start Configuration
This configuration provides a quick implementation option that you can use while you are
developing a more complete security plan. For very simple systems, you could use this
configuration long term; in that case, consider making some adjustments to improve security
and increase flexibility.
• About the Configuration (page 12) explains the configuration and how it works.
• How to Configure (page 12) explains how to set it up.
• Improve the Quick-Start Configuration (page 13) explains how you could improve the
quick-start configuration to make it more usable for the long term.
In this configuration you assign two levels of access permissions that apply to all PI Server
resources: users either get read-write or read-only access to everything. In AD, your users
should be grouped according to these two levels of PI Server access. On the PI Server itself,
you need two Identities, Users, or Groups on which to define access: one for read-only access
and one for read-write access.
For this quick configuration, we take advantage of two built-in components that have pre-
configured access permissions:
• piadmins: piadmins is a built-in PI Group that is pre-configured with read-write access
to all PI Server resources. Because we're using piadmins, we do not need to explicitly set
access permissions for the read-write group. We simply create a Mapping between
piadmins and the AD group or groups that require read-write access.
• PIWorld: PIWorld is a built-in PI Identity that is pre-configured with read access to all
PI Server resources. You cannot use PIWorld directly in a Mapping, however all
authenticated users on the PI Server get at least PIWorld access. Map an AD group to
any PI Identity (or PI Group or PI User). All the Windows users in that AD group will
automatically get the access that is pre-configured for PIWorld. See The PIWorld
Identity (page 8) for more on PIWorld.
Note: This configuration relies on PIWorld access. It does not work if you disable
PIWorld.
How to Configure
In this very simple model, users either get read-only access to everything on the PI Server or
they get read/write access to everything on the PI Server. You do not configure different
access levels for different PI resources. In AD, your users should be grouped according to
these two levels of PI Server access. (For AD configuration, your company's IT department is
probably your best resource.)
Step 1. Configure Authentication:
1. Identify which AD group or groups will have administrator (read/write) privileges on the
PI Server. Identify which groups will have read-only access.
2. Map the AD group that represents PI Administrators to the built-in PI Group called
piadmins. You can map multiple AD groups to piadmins if needed. Because piadmins
has pre-defined read/write access to all PI Server configuration and data, all the Windows
users in those AD groups will then get that level of access.
Note: Be sure to use the piadmins Group and not the piadmin User.
12
Quick-Start Configuration
3. Map the AD group containing your read-only access users to the built-in PI Group
piusers. You can map multiple AD groups to piusers if needed. All the Windows users
in those groups will be authenticated as piusers. Since all authenticated users get read
access through the PIWorld Identity, you do not need to explicitly configure access
permissions for piusers.
Step 2. Configure PI interfaces. See Configure PI Interface Connections (page 30).
If you plan to base your long-term security configuration on the quick-start configuration,
then consider these suggested improvements:
• To make the quick-start security configuration more flexible, you can add PI Identities to
represent different user categories. For example, you might want to grant IT
administrators permission to perform backups. To do that, you create a PI Identity and
give it the necessary access permissions. Then create a Mapping between AD group for
the IT administrators and that PI Identity.
• To make the quick-start security configuration more secure, you can explicitly set the
access permissions for the piusers Group, rather than relying on the PIWorld access
permissions. In the quick-start configuration we relied on PIWorld in order to make the
configuration process quicker and easier. However, it is a better practice to use explicitly-
configured access permissions. If you rely on PIWorld, it becomes difficult over time to
determine which users or applications are relying on that access.
The following examples demonstrate how to implement each of these suggested
improvements.
Example 1. Configure Administrative Access Categories: This example demonstrates how
to explicitly configure administrative access to run backups.
1. First create a PI Identity called ITAdmins (How to Create a PI Identity (page 16)).
2. Start PI SMT and connect to the PI Server as piadmins (for new installations only; for
upgrades, connect as piadmin). Open the Database Security Editor (Select Security >
Database Security).
3. In the Database Security Editor, give the ITAdmins Identity read-write access to the
PIBACKUP entry.
Example 2. Configure Access Permissions for piusers. Start PI SMT and connect to the PI
Server as piadmins. Open the Database Security Editor (Select Security > Database
Security).
1. For every entry in the Database Security Editor, set the access permissions for piusers to
read-only. See Set Permissions in the Database Security Editor (page 23).
2. Set permissions for built-in points. The PI Server installation includes several default
points. These are useful for test purposes. To explicitly grant read access to the piusers
Group, edit the points themselves. You can do this using Point Builder or Tag
Configurator, both available in the SMT (Set Permissions on Specific Points and Modules
(page 23)).
When you create new points, the piusers Group will automatically have read-only access.
This is because new points automatically have the same access permissions as the
PIPOINT entry in the Database Security Editor. See Set Default Access for New Points
and Modules (page 23) for instructions.
3. Set permissions for existing modules. At a minimum, the PI Server installation includes
the built-in module %OSI. Depending on what client applications you have installed,
there might be others. To explicitly grant read access to the piusers Group, edit the
modules themselves. You can do this using the Module Database Editor in SMT.
When you create new modules, the piusers Group will automatically have read-only
access. This is because new modules automatically have the same access permissions as
the PIModules entry in the Database Security Editor. See Set Default Access for New
Points and Modules (page 23) for instructions.
Recommended Configuration
These instructions assume that you are using Microsoft Active Directory (AD) for
authentication. You can use local Windows security instead, but it is not quite as secure and
extra configuration is required. See Use Local Windows Security (page 25).
To configure PI Server security with AD authentication, follow these basic steps (each step is
explained in more detail in the following sections):
1. Configure User Authentication. In most cases this simply means creating a PI Identity
for each AD group that requires PI access and creating a Mapping between them.
a. Identify User Access Categories: Identify the users who need access to the PI
Server. Understand their roles, and the types of access they need. For example: who
needs permission to create points? Who should be allowed to edit modules? Who will
perform PI Server backups? See Identify User Access Categories (page 15).
a. Create PI Identities: On the PI Server, create PI Identities for each user category.
See Create PI Identities (page 16).
b. Review Active Directory Groups: In Windows, identify Active Directory groups
that represent your PI Server users. In some cases you might need the help of your
Domain Administrator in order to create new groups, nest existing groups, or adjust
group memberships. See Review AD Configuration (page 17).
c. Map AD Groups to Identities: Once you have the necessary AD groups and PI
Identities, the next step is to set up a Mapping between them. See Map AD Groups to
PI Identities (page 20).
2. Configure Access Permissions. Give your PI Identities access to the necessary PI Server
resources. The access permissions specify what tasks each PI Identity is allowed to
perform on the PI Server. See Configure Access Permissions (page 21).
3. Configure PI Interface (and PI Client) access to the PI Server.
a. Configure access for PI Interfaces: You need to set up PI Trusts for interfaces that
will connect to the PI Server. Each trust is defined against a PI Identity that has the
required access permissions for that interface. See Configure PI Interface
Connections (page 30) for instructions on creating PI Trusts for interfaces.
14
Recommended Configuration
Configure Authentication
Note: If you already know which AD group or groups will have PI Server access, then
you can simply create a PI Identity for each of these groups and map each AD
group to the appropriate Identity.
model allows you to give separate access permissions to IT administrators for some tasks
such as backups.
• Four category model: operators/admins/ITadmins/engineers
In this model, we add an engineers category. The engineers category gets read/write
access to the Point Database and the Module Database, allowing them to create and
delete modules and points. However, the engineers category does not get permissions for
administrative tasks, such as managing Identities, Users, and Groups.
These category models are presented as examples. You can adjust them to suit your needs or
you can use your own strategy entirely. In some cases you might need a higher level of
granularity in the access permissions. For example, different categories of users might need to
be able to read from, write to, or configure different points.
Create PI Identities
Once you have identified user categories, you designate a PI Identity or Group for each
category. You can create your own PI Identities, or you can use some of the built-in PI
Identities and Groups that are included in the PI Server installation (Built-in Identities, Users,
and Groups (page 7)).
Most of these are sample Identities, not configured with access permissions. However the
piadmins Group is pre-configured with read/write access to all PI Server resources. Using
piadmins for your main administrator category can save you some configuration time.
The following example shows you how you might use built-in PI Identities for the four user
categories described in Identify User Access Categories (page 15).
• Users: Use the built-in PI Group called piusers. This Group does not have any pre-
configured access permissions, so you will have to set those manually. As a short-cut you
could rely on the PIWorld access permissions, rather than explicitly setting permissions
for piusers. However, this model is less secure. See The PIWorld Identity (page 8).
• Engineers: Use the built-in PI Identity called PIEngineers. This Identity does not have
any pre-configured access permissions, so you will have to set those manually.
• Administrators: Use the built-in PI Identity called piadmins. By default, this Identity
has read/write access to all PI Server resources. You can adjust these access permissions
as needed.
• IT Administrators: Create a PI Identity called ITAdmins. You will need to set the
access permissions manually.
Creating PI Identities is just the first step. You also need to:
• Map each AD group to the appropriate PI Identity (Map AD Groups to PI Identities (page
20)).
• Configure access permissions for each PI Identity (Configure Access Permissions (page
21)).
16
Recommended Configuration
Review AD Configuration
In most cases you can rely on existing AD groups and you will not need to do any AD
configuration. Work with your Windows Domain Administrator to review existing groups
and make any necessary adjustments.
Note: Although the PI Server can use AD for authentication, it does not use Windows
access permissions to determine PI Server access levels. You still have to set
access permissions explicitly on the PI Server.
• Review your AD group memberships to ensure that all Windows users will get the
appropriate PI Server permissions (PI Server Access Permissions and AD (page 18)).
• Establish a naming convention for PI Identities and/or AD groups so that it is clear which
group is mapped to which Identity. Over time, you will be able to control user access to
the PI Server simply by editing group memberships in AD or Windows
Once you have a workable set of AD groups, you are ready to AD groups to PI Identities.
Note: If your current AD groups do not suffice and you cannot get your AD Domain
Administrator's support, there is a simple workaround. You can create local
Windows groups on your PI Server and then place existing AD groups within the
local groups. See Other Security Configurations (page 24) for more information.
Look at the access needs for all your Windows users. Which AD groups does the user belong
to? Which PI Identities do those groups map to? Users that belong to more than one AD
group get the cumulative access permissions for all the associated PI Identities. For example,
in the following illustration, the Windows user, Bob, belongs to both AD groups. Bob
18
Recommended Configuration
therefore gets the permissions configured for PI Identity1 and the permissions for PI Identity2.
Similarly, users get the cumulative access permissions for all parent AD groups (for nested
AD groups). For example, in the following illustration, Windows user, Bob, belongs to AD
Group2. Since AD Group2 is nested inside AD Group1, the users in Group2 get all the access
permissions of Group1, as well as those of Group2.
Note: The Add button is disabled if the selected PI Identity is flagged as disabled or
not usable in a Mapping.
9. Enter the Windows Account. This can be an AD principal or a local Windows group or
user. To select the account either:
ο Click the browse button to browse for the account.
ο Type in the account name. If you choose to type in the account name, click the
resolve SID button to verify that this is a valid account. If the account is valid, an
SID appears in the field. Otherwise, a dialog with an error message appears.
See Specifying AD Users and Groups (page 20) for more information.
20
Recommended Configuration
Note: For local Windows users or groups, you can use only the fully-qualified account
name (computer_name\principal_name) or SID formats.
To find the security identifier (SID) or to check the validity of a domain principal, you can
use the psgetsid utility. This utility is part of a set of command-line tools called PsTools, that
are available on the Microsoft Technet web site. If you run the utility from the PI Server, the
SID that psgetsid returns is guaranteed to be valid for the mapping.
For example, after installing psgetsid, you could type the following from a command window
on the PI Server:
psgetsid.exe domain\somegroup
The psgetsid utility returns something like the following:
PsGetSid v1.43 - Translates SIDs to names and vice versa
Copyright (C) 1999-2006 Mark Russinovich
Sysinternals - www.sysinternals.com
SID for domain\somegroup:
S-1-5-21-1234567890-1234567890-1234567890-4321
Once you have the Mappings between AD groups and PI Identities, you configure access
permissions so that each PI Identity is authorized to perform the appropriate tasks on the PI
Server.
• About Access Permissions on the PI Server (page 21)
• How to Configure Access Permissions (page 22)
The PI Server stores the settings for each object in an Access Control List (ACL). Each secure
object on the PI Server has an ACL that defines access permissions for that object. (Points
have two ACLs: one for the point data and one for the point configuration.) The ACL
contains an entry for each Identity (or User or Group) for which access permissions are set on
that object. The ACL for the TEST_POINT data in the illustration above would look like this:
Identity1:A(r,w) | Identity2:A(r,w) | Identity3:A(r) |
IdentityN:A(r,w)
Access permissions for each PI Identity are separated by the pipe (|) symbol. Each entry is
called an Access Control Entry (ACE) and consists of the PI Identity name, then a colon (:)
followed by the access privileges, which are defined in the format: A(r,w). The A in this
notation stands for Allow and "r,w" indicates the allowed access privileges – read and write,
in this example.
The possible types of access privileges are read and write. The possible unique privilege
combinations are "r" for read only, "w" for write only, "r,w" for read and write, and ""
(empty) for none.
Note: Unlike Windows, the PI Server does not allow you to explicitly deny access
privileges.
22
Recommended Configuration
• Configure access permissions for individual points and modules by editing the objects
themselves. The PI Server installation includes tools for doing this. See Set Permissions
on Specific Points and Modules (page 23).
To Control Use:
Access on:
a module Module Database Editor (SMT Plug-in) or Module Database Builder
(access from the SMT Tools menu)
a PIUnit Module Database Editor (SMT Plug-in) or Module Database Builder
(access from the SMT Tools menu)
administrative Database Security Editor (SMT Plug-in)
tasks
For information about what access privileges are necessary for specific tasks, see Task-Based
Access Permissions Reference (page 63).
24
Other Security Configurations
ο Extra configuration is required. The Windows user accounts on the PI Server must
exactly match the accounts on each client workstation. If you have a lot of client
workstations with a lot of users, then Windows authentication might not be a good
choice for you.
However, authenticating through local Windows security is still far more secure than
authenticating through PI Trusts or PI User accounts. See Use Local Windows Security
(page 25).
• Use a Combination of Local Windows Security and AD: If you want to use AD for
authentication but are not able to configure AD groups to meet your needs, then consider
this workaround. You can use local Windows groups to organize AD users. Then map the
local Groups to your PI Identities. See Use Local Windows Security with AD (page 28).
• Use PI Password Authentication: If you cannot use local Windows security or AD for
authentication, only two authentication methods are available: PI Server User
accounts/passwords and PI Trusts. Typically you configure user authentication through
PI User accounts. Use PI Groups to group the users so that you do not need to define
access permissions for each individual user. See Use PI Users and Groups (page 28).
You can use local Windows security to grant access to the PI Server and its resources if AD
is not available. Using local Windows security requires significant maintenance. The account
names and passwords must be identical on the PI Server and all client machines. When a
password changes or a user is added or deleted, you must make that change on the PI Server
and all participating client machines (this is actually a Windows requirement).
The basic steps for configuring security with local Windows authentication are as follows:
1. Identify User Access Categories. Identify the users who need access to the PI Server.
Understand their roles, and the types of access they need. For example: who needs
permission to create points? Who should be allowed to edit Modules? Who will perform
PI Server backups? See Identify User Access Categories (page 15).
2. Create PI Identities. On the PI Server, create PI Identities for people with similar access
needs. See Create PI Identities (page 16).
3. Configure Local Windows Groups. In Windows, identify the Windows groups that
represent your PI Server roles. See Configure Windows Groups (page 26).
4. Map Windows Groups to Identities. See Create Mappings (page 27).
5. Grant PI Access Permissions. Give your PI Identities access to the necessary PI Server
resources. The access permissions specify what tasks each PI Identity is allowed to do on
the PI Server. See Configure Access Permissions (page 21).
6. Configure access for client applications. Client applications typically connect to the PI
Server using PI SDK. You need SDK 1.3.6 or later to use Windows authentication.
Certain PI client applications require a connection to a separate application server in
26
Other Security Configurations
Windows users that belong to more than one Windows group get the cumulative access
permissions for all the associated PI Identities. For example, in the following illustration, the
Windows user, Bob, belongs to both Windows groups. Bob therefore gets the permissions
configured for PI Identity1 and the permissions for PI Identity2.
Look at the access needs for all your Windows users. Which Windows groups do the users
belong to? Which PI Identities do those Windows groups map to? Make sure that each
Windows user belongs to the appropriate Windows groups.
Create Mappings
Once you have the necessary PI Identities and Windows groups, you need to map each
Windows group to a PI Identity. The Mapping associates the specified PI Identity with the
specified Windows group. Members of that Windows group will be authenticated
automatically on the PI Server as the specified PI Identity.
To map a Windows group to a PI Identity, follow these steps:
1. Open PI SMT.
2. Select the server in the Collectives and Servers pane.
3. In the System Management Tools pane, select Security > Identities, Users, and
Groups.
4. Select the Identities tab. (If you do not see the Identities tab, verify that you are
connected to a PI Server 3.4.380 or later. The Identities tab does not appear in SMT with
earlier versions of the PI Server.)
5. Double-click on the Identity. The Properties dialog appears.
6. In the Properties dialog, click the Mappings and Trusts tab. The top portion of the
dialog shows all existing Mappings for this PI Identity. The bottom portion shows all
existing PI Trusts for this PI Identity.
7. Click the Add button at the bottom of the Mappings portion of the dialog. (There is also
an Add button at the bottom of the Trusts portion, so be sure to click the right button.)
The Add New Identity Mapping dialog appears.
Note: The Add button is disabled if the selected PI Identity is flagged as disabled or
not usable in a Mapping.
8. Windows Account: Enter the Windows group. To select the account either:
ο Click the browse button to browse for the account.
ο Type in the account name. If you choose to type in the account name, click the
resolve SID button to verify that this is a valid account. If the account is valid, an
SID appears in the field. Otherwise, a dialog with an error message appears.
9. Enter a description of the Mapping (optional). There are no restrictions on the contents of
this field.
10. Click OK. The new Mapping appears under Mappings.
If you want to use AD authentication but you are not able to configure AD groups, then you
can use local Windows groups to organize AD groups and users. You are essentially using
local Windows groups on the PI Server computer as a configuration tool to organize existing
AD principals. Create local Windows groups on your PI Server and map them to the
appropriate PI Identities (Create Mappings (page 27)). Then place existing AD groups and
users within the local Windows groups. In this configuration, user authentication is still
handled by AD.
If Windows authentication is not a viable option for you, you can use PI password
authentication (explicit logins) to authenticate your users. With this method of authentication,
you create user accounts on the PI Server and each user types in a PI user name and password
to log on. You can create PI Groups to group users into meaningful access categories. Using
PI password authentication is not as secure as using Windows authentication or PI Trusts. To
configure PI Server PI password authentication, follow these steps:
1. Identify User Access Categories. Identify the users who need access to the PI Server.
Understand the types of access they need. For example: who needs permission to create
points? Who should be allowed to edit modules? Who will perform PI Server backups?
See Identify User Access Categories (page 15).
2. Create PI Groups: On the PI Server, create PI Groups for each user category. See
Create a PI Group (page 29).
3. Grant PI Access Permissions. Give your PI Groups access to the necessary PI Server
resources. The access permissions specify what tasks each PI Group is allowed to do on
the PI Server. See Configure Access Permissions (page 21).
28
Other Security Configurations
4. Create PI Server User accounts. Each user who needs access to the PI Server should
have an associated account. See Create a New PI User (page 29). If you allow multiple
users to share a single PI Server account, then you will not have any way to know who
made what changes on the PI Server.
5. Configure Group memberships. Add each PI User to the appropriate PI Group or
Groups.
6. Configure Access for Interfaces. You need to set up trusts for the interfaces that will
connect to the PI Server. Each trust is based on a PI User, a PI Group, or a PI Identity.
See Configure PI Interface Connections (page 30).
7. Upgrade Administrative Client Applications. If you have existing client computers
that will connect to this PI Server, upgrade any applications that configure access
permissions (Administrative Client Applications (page 61)).
Create a PI Group
To create a new PI Group, follow these steps:
30
Configure PI Interface Connections
5. Give that PI Identity all the access permissions required by the PI Trust. See Product
Access Permissions Reference and Configuration Issues (page 67) as well as the
documentation for the Interface.
6. Create a trust based on that PI Identity. See How to Create a Trust (page 31).
About PI Trusts
PI Trusts allow applications to access the PI Server without explicitly logging onto Windows
(or onto the PI Server). Trusts are typically used for PI Interfaces, which run unattended.
Each PI Trust is defined against a PI Identity, a PI Group, or a PI User. The Trust gives the
Interface the same access permissions as the associated Identity, Group, or User. Trust
authentication works by comparing the connection credentials of the connecting application
to the Trust records in the Trust Database. Human intervention is not required at the time of
connection.
ο For SDK connections only, you also have the following optional fields:
− Windows Domain: the Windows domain of the user who is running the
application. (for example: osi)
− Windows Account: the Windows user name of the user who is running the
application. (for example: my_account)
7. Select the PI Identity that you want to use for this Trust. Applications authenticated
through this Trust will have all the access permissions granted to this PI Identity. You can
alternatively select a PI Group or a PI User for this step.
Connection Types
When you configure a PI Trust, you need to know the type of connection the Trust will be
used for. There are two different PI Server connection types. Each PI Interface and client
application is configured to use one or the other. (There are also a few interfaces that use
both.) The two mechanisms are:
• PI API Connection: Most PI Interfaces use the PI API to connect to the PI Server. PI
API does not support Windows authentication. PI Trusts are the standard way to
authenticate PI API connections.
• PI SDK Connection: Most client applications use the PI SDK to connect to the PI
Server. PI SDK versions 1.3.6 and later support Windows authentication, so use
Windows authentication for these connections if possible. Windows authentication is the
most secure authentication method available for the PI Server.
Note: In previous releases of the PI Server, PI API connections that failed would
typically still get world access to PI Server resources. In PI Server 3.4.380 and
later, this loophole is closed. See Check for Unauthenticated API Connections
(page 60) for more information.
Note: PI API versions before 1.6.0 always send a five-character string: 4 characters
plus a capital E. For PI API versions 1.6.0 and later, up to 8 characters may
be specified as the procname, if configured to do so (in this case, there is no
longer an E appended to the procname).
• For applications that connect through the SDK, use the full name of the connecting
application, including the extension, but not the path. For example, the application name
for the ICU is: PI-ICU.exe
32
Configure PI Interface Connections
If you are running the same PI Interface on another PI Server, then you can use SMT to
determine the correct application name. Select Operation > Network Manager Statistics.
Find the Interface in the list. The application name is listed in the Name field.
IP Information
A PI Trust can specify IP information about the computer running the PI Interface or client
application for which you are defining the Trust. To collect this information, you can run
pidiag -host on the computer where the Interface or client application runs. This returns
the connection credentials as retrieved from the local operating system.
Note: Using pidiag -host is helpful, but it is not a guarantee of getting the right
information, depending on many factors, including the type of interface, the
version of the SDK (if SDK-based), and whether there are firewalls / NAT devices
in between the interface computer and the PI Server computer. If you have
difficulty configuring the Trust, contact OSIsoft Technical Support.
• Network path. The fully-qualified domain name. For PI API, this should match what the
PI Server thinks based on a reverse-name lookup using the interface's IP address. For PI
SDK (1.3.6.x and later), this should match what the client thinks, based on the Windows
configuration (you can use pidiag –host on the client to see this information). For
example, my_laptop.my_company.com
• IP Address.
• Net Mask. If you specify an IP address, you must also explicitly provide a Netmask
value. Failure to do so will generate an error. If you are requiring an exact match on an IP
address, specify the Netmask as 255.255.255.255. If you are specifying a Class C subnet,
specify the Netmask as 255.255.255.0 and the fourth field of the IP Address as 0.
Note: When applications run on machines with multiple network cards, it is unpredictable
which credentials are sent to the PI Server for the trust authorization. OSIsoft thus
recommends that you either avoid such configurations, or create a PI Trust for
every IP address on the machine where the application runs.
Note: Previous versions of the PI Server had a built-in PI User and a built-in PI Group
that were both named piadmin. The name of the PI Group called piadmin has
been changed to piadmins (plural) for consistency. Similarly, previous versions of
the PI Server had a built-in PI User and a built-in PI Group that were both named
piuser.
36
Your Upgrade Options
Many PI Servers use only the piadmin account and the pidemo account for authentication. In
a few simple steps, you can convert this piadmin/pidemo configuration to use Windows
authentication. This greatly improves your PI Server security.
Although these instructions assume you are using the piadmin and pidemo accounts, note
that you can apply the same method to any PI Server that relies on a very small number of PI
Users or PI Groups for security.
Note: These instructions assume you are using Windows Active Directory (AD) because
AD provides the most secure authentication. If you use local Windows groups
instead of AD groups, then you need to do some additional configuration on client
computers. See Use Local Windows Security (page 25) for more information.
You can migrate to the new security model over time. Exactly how and when you do this is
up to you. These instructions are divided into two categories:
• Initial Configuration Steps: Perform these basic steps to set up a PI Server security
configuration that uses Windows authentication. See Initial Configuration Steps (page
38).
• Follow-up Steps: Perform these follow-up steps over time. See Follow-up Steps (page
45).
If your existing configuration relies on very few PI Users or PI Groups, the Quick-Start
Security Migration (page 37) might work better for you.
38
Your Upgrade Options
Note: If you do not need to preserve existing access permissions, then you can
implement a new security configuration instead (Configuring Security on a New PI
Server Installation (page 11)).
When you export the existing data access permissions, each object will have an associated
Access Control List (ACL). This is different from the old owner/group model. For example,
in earlier versions of the PI Server, the access permissions for the sinusoid point might look
like this:
Tag dataaccess datagroup dataowner
sinusoid o:rw g:rw w:r pi_users bob
When you upgrade the PI Server, those access permissions are converted to the new model
and would look like this:
Tag datasecurity
sinusoid pi_users:A(r,w) | bob:A(r,w) | PIWorld:A(r)
See About Access Permissions on the PI Server (page 21) for more information on the ACL.
The following table shows what the same access permissions look like after upgrading to PI
Server version 3.4.380.
point datasecurity
tag1 bob: A(r,w) | pi_ops: A(r) | PIWorld: A(r)
tag2 bob: A(r,w) | pi_ops: A(r) | PIWorld: A(r)
tag3 bob: A(r,w) | pi_ops: A(r) | PIWorld: A(r)
tag4 nancy: A(r,w) | pi_eng: A(r,w) | PIWorld: A(r)
tag5 bob: A(r,w) | pi_ops: A(r) | PIWorld: A(r)
40
Your Upgrade Options
What we want to do is collapse these access permissions into a set of unique access strings. It
does not matter whether we use the owner/group/word notation or the ACL strings. We will
use ACLs for the rest of this example.
In this manner, reduce all your access permissions to a set of unique access strings. The next
step is to determine what PI Groups you need, based on this list.
Points datasecurity
tag4 nancy: A(r,w) | pi_eng: A(r,w) | PIWorld: A(r)
tag1, tag2, tag3, tag5 bob: A(r,w) | pi_ops: A(r) | PIWorld: A(r)
We need to distill our list down into the smallest number of access permission sets and we
need to keep track of who currently has that level of access. Another way to look at our
current access permissions is as follows:
Who? What Access?
42
Your Upgrade Options
We choose to continue using bob for now, but we plan to create a new PI Identity and
retire the PI User bob in the future.
The next step is to create the required Mappings and then disable the PI Group pi_ops and the
PI User nancy.
Each set of access permissions are associated with a PI Identity, PI Group, or PI User on the
Server. The ideal configuration is a one-to-one Mapping between an AD group and a PI
Identity or a PI Group.
The goal is for all of your users to get the same access permissions that they had before the
upgrade. In most cases this should not be difficult. However, if you have a large number of
users with different access permissions, then you are probably going to have some gaps on
your first pass.
During this configuration period, you can rely on the access permissions for piadmin and the
built-in PIWorld Identity. You can create a Mapping between an AD group representing
your administrators and the PI User piadmin. All authenticated users get the access
permissions defined for PIWorld . By default, PIWorld has read-only access to all PI Server
resources.
Note: If your domain administrator is unwilling to reconfigure AD, you can nest existing
AD groups inside local Windows groups. See Use Local Windows Security with
AD (page 28).
44
Your Upgrade Options
Follow-up Steps
After you have an initial PI Server configuration, you can continue to transition to the new
model over time. This section outlines some measures that you should take.
• Check Custom API Applications. A security loophole that was present in earlier
versions of the PI Server allowed world access to API connections, even if the
authentication failed. It was possible to disable that access explicitly but if you did not
disable it, then you might currently have API applications that rely on this loophole. That
access is now permanently disabled and any applications that rely on it will no longer
have access to the PI Server. You will need to configure authentication for these
applications. (This is typically only a problem for custom API applications.) See Check
for Unauthenticated API Connections (page 60).
• Limit Use of piadmin. Explicitly configure administrative permissions for a different PI
Identity; map the appropriate Windows group to that PI Identity. Do not use the piadmin
account for routine administrative tasks (Protect piadmin (page 51)).
• Upgrade the SDK on Client Computers. On computers running client applications,
upgrade PI SDK to version 1.3.6 or later. Earlier versions of the SDK do not support
Windows authentication.
• Configure Application Server Clients. If you are using applications where the client is
accessing the PI Server through an application server, then you might need to take
additional steps to complete your security configuration. See Products that Connect to an
Application Server (page 60) for more information.
• Upgrade Administrative Applications. If you are using older versions of administrative
applications, they might not handle new access permissions properly. See Administrative
Client Applications (page 61) for more information.
• Disable Explicit Logins. Explicit logins are logins in which the user actually types in a
PI User name and passwords (also called PI password authentication). This is the least
secure PI Server authentication method and it is best to disable it entirely or at least
partially. See Disable PI Password Authentication (Explicit Logins) (page 52) for more
information.
Note: Remember that Windows authentication requires SDK 1.3.6 or later. If you are
replacing explicit logins with Windows authentication, then be sure to upgrade
the SDK on all client workstations before you disable explicit logins.
• Replace SDK Trusts. After you upgrade SDK on your client workstations, replace PI
SDK Trusts with PI Mappings. Windows authentication is more secure than
authentication through PI Trusts. In most cases, the existing Trusts will no longer be used
by the PI Server anyway (Retire SDK Trusts (page 54)).
• Retire PI Users and PI Groups. This is a cleanup step. PI Users and PI Groups still
work. However, they imply management of users and groups on the PI Server itself. This
could cause confusion over time. (A handful of built-in PI Users and PI Groups will
remain (piadmin and piadmins for example) but these have well-defined roles on the PI
Server). Additionally, PI Users have associated passwords that are not secure. Ideally,
you should plan replace your PI Users and PI Groups with descriptively-named PI
Identities.
To set up a new security configuration using Windows for authentication, configure security
as you would for a new PI Server installation. See Configuring Security on a New PI Server
Installation (page 11). As soon as possible, review the follow-up steps, which include
upgrading the SDK on client workstations, upgrading administrative applications, and so on.
See Follow-up Steps (page 45). You can choose if and when to complete each step.
You can continue to use your existing PI Server security configuration for as long as you
choose. There are a couple of things you should do immediately:
• Check Custom API Applications. A security loophole that was present in earlier
versions of the PI Server allowed world access to API connections, even if the
authentication failed. That loophole is now closed. If you have API applications that rely
on this loophole, they will no longer get access. This is typically only a problem for
custom API applications. See Check for Unauthenticated API Connections (page 60).
• Protect the piadmin account with a password. The piadmin PI User is the PI Server
super-user account. This powerful account should be protected and should not be used
regularly. If you have not already done this, be sure to at least protect piadmin with a
password. See Protect piadmin (page 51) for more information on protecting piadmin.
• Require passwords for all PI Users. Do not allow blank passwords. Disable logins for
accounts with blank passwords. See Disable Explicit Logins with Blank Passwords (page
53).
Plan to migrate to the new security model. You can do this gradually over time. See Migrate
Over Time (page 38). Even before you begin configuration on the PI Server, you can
gradually perform many of the steps listed in Follow-up Steps (page 45).
46
Chapter 4
The Secondary Server will attempt to reapply the changes from replication; now it will accept
the Mappings and replication will succeed.
This same situation holds true for Mappings against local Windows groups. Suppose the
Primary Server defines a Mapping against a local Windows group. Secondary Servers do not
know about that local group and the Mappings will fail on replication. In order for replication
to succeed, on the Secondary, you would need to set
Base_AllowSIDLookupFailureForMapping to 1 and then restart the Base
Subsystem.
Similarly, you might need to define Mappings against local Windows groups on the
Secondary Server. In this case, on the Primary you would set
Base_AllowSIDLookupFailureForMapping to 1 and then restart the Base
Subsystem.
Once the timeout parameter is set to 1, if you wish to map to a local Windows group from
another machine, you have to use the group's SID instead of its name when you configure the
Mapping. SMT does not allow you to create a Mapping based on a SID, so you must use
piconfig to create the Mapping (Create a Mapping with a SID (page 49)).
You can use SMT to determine the SID however. Use the SMT Mappings and Trusts tool
on the Secondary that needs the Mapping. If you already have a Mapping based on the
desired Windows group, the properties for that Mapping display the SID. If you don't already
have a Mapping, start to create one (you do not have to save it). The New Mapping dialog
will display the SID as soon as you select a Windows user or group. Copy the SID and use it
to create the Mapping on the Primary.
In these scenarios, it is recommended to use the
Base_AllowSIDLookupFailureForMapping setting as a temporary setting while
you are creating the Mappings. Once they are created, you can revert
Base_AllowSIDLookupFailureForMapping back to 0, which will protect against
the accidental creation of invalid Mappings.
48
Create a Mapping with a SID
IdentMap The name of the PI Mapping. This must be unique, but is not case-sensitive.
This field is required to create a new Mapping.
Desc Optional text describing the Mapping. There are no restrictions on the contents
of this field.
Flags Bit flags that specify optional behavior for the mapping. Currently the only option
is:
0x01 = Disabled; the Mapping is inactive and will not be used during
authentication.
(The default value is 0x00 = Mapping is active and will be used during
authentication after initial setup.)
IdentMapID A unique integer corresponding to the identity mapping. The system will
automatically generate the value upon creation and it will not change for the life
of the identity mapping.
PIIdent Name of the PI Identity to which the security principal specified by the Principal
field will be mapped. The contents of this field must match the Ident field of an
existing entry in the PIIdent table. The target identity must not be flagged as
Disabled or MappingDisabled. Multiple IdentMap entries can map to the same
PIIdent entry. This field is required to create a new identity mapping
Attribute Description
Principal The name of the security principal (domain user or group) that is to be mapped
to the identity named in the PIIdent field. This field is required to create a new
identity mapping. For principals defined in an Active Directory domain, the
format of input to this field can be any of the following:
Fully-qualified account name (my_domain\principal_name)
Fully-qualified DNS name (my_domain.com\principal_name)
User Principal Name (UPN) (principal_name@my_domain.com)
SID (S-1-5-21-nnnnnnnnnn-…-nnnn)
For security principals defined as local users or groups, only the fully-qualified
account name (computer_name\principal_name) or SID formats may be used.
Output from piconfig for this field will always be in SID format, regardless of
which input format was used.
PrincipalDisp User-friendly rendering of the principal specified by the Principal field. This is an
output-only field. The principal name will be displayed in the fully-qualified
account name format.
Type This is a reserved field indicating the type of the mapping. In this release, this
attribute is always set to 1.
50
Chapter 5
Tightening Security
This chapter explains how you can improve the security on your PI Server. For a
comprehensive guide to the best possible PI Server security, see the PI Server Security Best
Practices white paper, available on the OSIsoft Technical Support web site.
• Protect piadmin (page 51)
• Disable PI Password Authentication (Explicit Logins) (page 52)
• Secure piconfig Utility (page 54)
• Retire SDK Trusts (page 54)
• Configure PI Firewall (page 56)
• Disable PIWorld (page 57)
Protect piadmin
The piadmin PI User is the PI Server super-user account. Take the following basic measures
to protect this powerful account:
• Disable explicit logins for the piadmin account (Disable Explicit Logins for piadmin
(page 51)). Explicit logins (also called password authentication) on the PI Server are not
nearly as secure as Windows authentication or PI Trusts. Instead, control access to this
account through Windows authentication.
• If you cannot disable explicit logins for the piadmin account, then at least make sure that
the piadmin account does not have a blank password. New PI Server installations require
a password for piadmin. While this is not mandatory for upgrades, it is strongly
recommended.
• Restrict piadmin access to a small group of trusted administrators.
Note: Do not use piadmin for normal administrative tasks. See The piadmin User (page
8) for more information.
When you disable explicit logins for piadmin, this means that users cannot access the PI
Server by typing in the username and password. piadmin can still be used in Mappings and
Trusts.
To disable explicit logins for piadmin:
1. In SMT, open the Identities, Users, and Groups tool (select Security > Identities, Users,
& Groups).
2. If you are using the display option with separate tabs for Users, Group, and Identities,
then click the Users tab.
3. Double-click the piadmin entry.
4. The Properties dialog box appears.
5. On the General tab, click to check the User cannot be used for an explicit login check
box.
6. Click OK.
Note: On new PI Server installations, explicit logins are disabled by default. When you
upgrade the PI Server, you are prompted to disable explicit logins, but you are not
required to do so.
In PI SMT you can use the Security Settings tool to disable all explicit logins:
1. In SMT, select Security > Security Settings. The Security Settings tool appears.
2. Select the Server in the Collectives and Servers pane. You can change settings for only
one PI Server at a time and only for PI Servers running version 3.4.380 or later.
3. Move the slider to the Explicit login disabled option.
52
Disable PI Password Authentication (Explicit Logins)
4. Click Save.
5. Stop and restart the Base subsystem:
a. In SMT, select Operation > PI Services.
b. Right-click on the PI Base Subsystem entry and choose Stop Service from the
resulting pop-up menu.
6. After the Base subsystem stops, right-click on the PI Base Subsystem entry again and
choose Start Service.
In PI SMT you can use the Security Settings tool to disable explicit logins for PI User
accounts that do not have passwords:
1. In SMT, select Security > Security Settings. The Security Settings tool appears.
2. Select the Server in the Collectives and Servers pane. You can change settings for only
one PI Server at a time and only for PI Servers running version 3.4.380 or later.
3. Move the slider to the Blank password not allowed option.
4. Click Save.
5. Stop and restart the Base subsystem:
a. In SMT, select Operation > PI Services.
b. Right-click on the PI Base Subsystem entry and choose Stop Service from the
resulting pop-up menu.
c. After the Base subsystem stops, right-click on the PI Base Subsystem entry again
and choose Start Service.
54
Retire SDK Trusts
• While more secure than explicit logins, PI Trusts are not as secure as Windows
authentication.
• If you create a Trust, application users might still be authenticated through Windows and
not the Trust (When Both a Mapping and a Trust Apply (page 55)). This means that their
access permissions will be dictated through Windows, rather than the Trust.
Once all your SDK Trusts are replaced by Windows authentication, you can further secure
the PI Server by disabling SDK Trusts altogether.
If a Windows user who is running an SDK application has access to the PI Server through
Windows authentication (PI Mappings and PI Identities) then that user will be authenticated
through Windows, rather than through the Trust. This is because newer versions of the SDK
try Windows authentication first.
This means that their access permissions will be dictated through the Mappings, rather than
the Trust. It is best to retire SDK Trusts wherever possible, and rely on the Windows
authentication instead.
Note: You can configure to SDK to attempt the Trust authentication first (Configure SDK
Authentication Protocols (page 55)).
When an SDK application tries to connect to the PI Server, it tries all available authentication
methods until it succeeds. The order in which it tries the authentication methods is
configurable. The possible methods are:
• Windows Security. If a valid PI Mapping exists for the Windows user (or for any group
to which the user belongs) then the user is authenticated as the PI Identity, PI User, or PI
Group defined for that Mapping.
• PI Trust. If the connection request matches an existing PI Trust, then the user is
authenticated as the PI Identity, PI User, or PI Group defined for that Trust.
• Default User. A default PI User account.
The first one that succeeds defines the access permissions that the connecting application is
granted. Once one authentication method succeeds, no other methods are tried. By default the
SDK (1.3.6 and later) tries to authenticate first through Windows.
You can configure which methods the SDK tries first. To do this from SMT:
1. Select File > Connections. The Connection Manager appears.
2. Select Tools > Options. The Connection Option dialog appears.
3. The Specify Authentication area is at the bottom of the dialog. You can choose which
protocols to allow and in which order they should be tried.
Note: You can also access the Connection Manager from the About SDK application.
Select File > Connections.
In PI SMT you can use the Security Settings tool to disable access to the PI Server through
SDK Trusts:
1. In SMT, select Security > Security Settings. The Security Settings tool appears.
2. Select the Server in the Collectives and Servers pane. You can change settings for only
one PI Server at a time and only for PI Servers running version 3.4.380 or later.
3. Move the slider to the SDK trusts are disabled option.
4. Click Save.
5. Stop and restart the Base subsystem:
a. In SMT, select Operation > PI Services.
b. Right-click on the PI Base Subsystem entry and choose Stop Service from the
resulting pop-up menu.
c. After the Base subsystem stops, right-click on the PI Base Subsystem entry again
and choose Start Service.
Configure PI Firewall
For all incoming connections, the PI Server first checks the PI Firewall for partial or
complete IP host names or addresses. If there is no entry in the table that allows the incoming
connection, it is terminated immediately.
By default, the PI Firewall table allows all connections. Edit the Firewall to allow
connections only from the subnets defined for your community of users. You can change
settings for the PI Firewall with the SMT Firewall tool, which you can access by choosing
Security > Firewall. On PI HA collectives, the PI Firewall is not replicated.
56
Disable PIWorld
Note: In order to change settings for the PI Firewall, you need read/write access to the
PITUNING entry in the Database Security tool. To access the Database Security
tool, open SMT, choose Security > Database Security.
Disable PIWorld
You can disable the PIWorld Identity. This improves your control over access to the PI
Server. All users get only the access that is explicitly configured for them and no more. The
decision to disable PIWorld should not be taken lightly.
• For PI Server upgrades, or for new installations that are part of an existing configuration
of PI Interfaces and client applications, disabling PIWorld is a dangerous measure that
could unintentionally lock down areas of access. It is very difficult to determine in
advance which users or applications are relying on PIWorld access. If you need to
disable PIWorld in these situations, consult technical support to help you form a plan.
• If this is a completely new installation, with no pre-existing PI Interface Nodes or client
applications, then you should definitely consider disabling PIWorld.
Note: PI API does not support Windows authentication. API-based applications can
authenticate only through a PI Trust or Explicit Login. Most Interfaces are PI-API-
based.
• read access to PIPOINT in Database Security editor, unless the interface supports point
creation, in which case it needs read/write access
Note: In previous versions of the PI Server, you could not define a PI Trust against a PI
Group. This restriction no longer applies. For PI Server 3.4.380 and later, you can
define a PI Trust against a PI Identity, a PI User, or a PI Group.
If you are implementing a new PI System using PI Server 3.4.380, we recommend that you
follow the instructions in Configure PI Interface Connections (page 30).
Previous versions of the PI Server allowed unauthenticated API applications to connect to the
PI Server with world access. In previous versions of the PI Server, you could explicitly close
this security hole by using the DefaultUserAccess Tuning Parameter. In PI Server 3.4.380,
this security hole is completely closed and the DefaultUserAccess parameter no longer
exists. Applications that do not successfully authenticate cannot be given any access on the PI
Server.
In most cases, the closing of this security hole should not cause you a problem. Since world
access is usually read-only, your PI Interfaces are unlikely to be relying on this access.
However, if you have custom API applications, you might find that they were not connecting
properly and now no longer have access. You must configure valid PI Trusts for those
applications.
To identify API applications that are not connecting properly, check the message log. Look
for the following types of messages:
• Message ID = 7054, which contains text "No trust established for: <identifyingString>.
Explicit login is required for access "
• Message ID = 7140, which contains text "Timeout expired for unauthenticated API
Connection"
These Message IDs are unique and can be filtered in the SMT Message Logs tool.
Note: If you do not reconfigure security and connection settings to use the new security
features, you see no change in your application servers. Upgrading to PI Server
3.4.380 does not require that you use its new security features.
60
Administrative Client Applications
Older versions of administrative tools cannot properly display access permissions unless they
follow the owner/group/world model. To work with new-model permissions, you need to be
running SDK 1.3.6 or later and you need a tool version that supports the new model. Here are
the required versions for common administrative tools:
• PI SMT version 3.3.1.3 or later (includes Point Builder, Module Database Editor, and
Database Security Editor)
• Tag Configurator version 2.1.3 or later
• Module Database Builder version 1.2.1.3 or later
• PI ICU 1.4.7 or later
• PI APS 1.2.5.0 or later
On previous versions of the PI Server you could set permissions only for one owner, one
group, and for world access (everyone else). If you plan to continue using an old-model
security configuration, then you should continue to use the owner/group/world paradigm.
This is to maintain backwards-compatibility with older client tools, which cannot interpret the
new access permissions. For this to work, each PI resource must have assigned permissions
for:
• one (and only one) PI User
• one (and only one) PI Group
• the PIWorld Identity
If any of these conditions is not met, then the PI Server cannot determine an owner and
group. It will use the PIUserIncompatible and PIGroupIncompatible Identities for the
owner and group. Older versions of client tools will try to display an owner and group even
when connected to new-model Servers. If the access permissions are incompatible, then these
tools will display the PIUserIncompatible and PIGroupIncompatible Identity names.
62
Appendix A
64
Administrative Client Applications
Heading Sets: Create / Edit / Delete PIHeadingSets (r3,w) heading set (r,w)
heading set
Heading Sets: Create / Edit / Delete PIHeadingSets (r3,w) heading set (r,w)
heading heading (r,w)
Heading Sets: View heading set PIHeadingSets (r3) heading set (r)
1
module (r) / PIUnit (r) also assumes (r) for all modules along the hierarchy path above it
2
PIDS (r) is implicitly granted by PIPOINT (r)
3
PIHeadingSets (r) is implicitly granted by PIModules (r)
66
Appendix B
AF 2.x Client
Database Security Permission Notes
PIDS r
PIPOINT r,w
68
AF 1.3 Server
AF 1.3 Server
Database Security Permission Notes
PIDS r
PIModules r,w
AF 1.3 Client
Database Security Permission Notes
PIDS r
PIModules r
Module Security* r
70
DataSheet Control
DataSheet Control
Database Security Permission Notes
PIUSER r
PIPoint r
PtSecurity r
DataSecurity r,w w: to edit point data
Some functionality in the DataSheet Control is tied to PI Groups. Specifically, there are
regulatory features that allow the ability to Commit and Confirm manually entered data to be
limited to a user-specified PI Group. One PI Group may be chosen to limit Commit
functionality, and a different PI Group may be chosen to limit Confirm functionality. Users
who do not belong to the specified Regulatory User Groups within the DataSheet Control
receive an error indicating they do not have the required permissions to Commit or Confirm
data. See the DataSheet Control User Guide for more information.
PI Server 3.4.380 continues to support PI Groups for backwards compatibility. See What
About PI Users and PI Groups? (page 5) for more information.
72
PI ACE
PI ACE
Database Security Permission Notes
PIModules r1,w2,3,4
PIPoint r1,w5
PIDS r
PIMSGSS r1,w2
PIDBSec r2,3,4,5
PtSecurity r1,w5
DataSecurity r1,w2
PI BatchView
Database Security Permission Notes
PtSecurity r
DataSecurity r
74
PI BatchView
Caution: The PI Server will automatically edit the security of the underlying tag based on
changes to the security of the PIUnit's module. Thus, the tag's security attributes
should never be modified directly to ensure they do not get out of sync with the
PIUnit's module. Only the security of the PIUnit's module should be edited.
PI DataLink
Database Security Permission Notes
PIModules r
PIPOINT r
PtSecurity r
DataSecurity r,w w: only
necessary for
users that write
data to PI
Module Security* r
76
PI DataLink for Excel Services (PI DLES)
PIBatch r
PIHeadingSets r
PIModules r
PIPOINT r
PtSecurity r
DataSecurity r
Module Security* r
If you are configuring a PI Server to use Windows Active Directory (AD) for authentication,
then you need to perform some additional configuration steps to use PI DataLink for Excel
Services (PI DLES).
Specifically, you need to configure the SharePoint Server for Kerberos delegation. Kerberos
is a secure type of authentication used by AD. If a PI Server is configured for AD
authentication, but Kerberos delegation is not configured on the SharePoint Server, then PI
DLES returns the following error message:
No PI user was recorded for a trusted connection.
For more details, please see the OSIsoft Knowledge Base article on Configuring Kerberos
authentication required as post-installation step for PI DataLink for Excel Services
(http://techsupport.osisoft.com/NR/exeres/2E7F789F-4E41-4CC8-BC91-EB7DD11BD6A7).
78
PI Manual Logger
PI Manual Logger
Database Security Permission Notes
PIUSER r
PtSecurity r
DataSecurity r,w
In PI Manual Logger (PI-ML) version 2.2.x or prior, certain security checks were being
performed within PI-ML itself outside the PI Server. Because of these extra checks, such
older versions of PI-ML should connect to the PI Server solely via a PI Trust to a PI User.
For details, see How to Create a Trust (page 31).
Furthermore, these extra security checks require that all tags accessed by PI-ML 2.2.x remain
backwards-compatible. For more information, see How to Maintain Backwards-Compatible
Access Permissions (page 61).
If access is not configured correctly, you receive the following error when writing data to the
tags included in the tour:
You do not have permission to write the manual data to PI at this
moment.
Cannot write to tag ' <tagName>'
Your PI configuration does not allow you to write manual data to
PI.
In PI-ML 2.3, the security checks within PI-ML itself have been removed, and PI-ML now
relies solely on the PI Server for its security. Thus, PI-ML 2.3 can fully leverage all the new
security features of the 3.4.380 PI Server.
80
PI Notifications
PI Notifications
Database Security Permission Notes
PIDS r1
PIPOINT r1,w2
PIMSGSS r,w2
PtSecurity r1,w2
DataSecurity r1,w2
1
Read permission for PI Notification client (e.g. PI System Explorer) is required to the PIDS
and PIPoint tables as well as to the data source tags and notification history tags.
2
PI Notification schedulers/processors have two types of connection to the PI Server: PI
SDK and PI API.
The PI API connection needs read/write permission for notification history tags so that the
processor can create and edit these tags. Typically, you need a PI Trust for the PI API
connection while the PI SDK connection can be mapped to a Windows user. If the PI
Notification scheduler and processors are running on a PI Server, then they also need
read/write permission to PIMSGSS for error message logging.
PI OLEDB
Database Security Permission Notes
PtSecurity r,w
DataSecurity r,w
82
PI ProcessBook
PI ProcessBook
Database Security Permission Notes
PIBatch r
PICampaign r
PIDBSEC r
PIDS r
PIHeadingSets r
PIModules r
PIUSER r
PtSecurity r
DataSecurity r,w r,w: the
annotation
feature requires
write access to
the point being
annotated
Module Security* r
Note: PI ProcessBook displays that contain custom VBA code might require additional
security configuration depending on what PI SDK calls are invoked.
RtAlerts
Database Security Permission Notes
PIDS r
PIModules r,w
PIPOINT r
PtSecurity r
DataSecurity r
84
RtReports Server (to configuration PI Server)
PIBatch r
PIBatch r
PIModules r
PIPOINT r
DataSecurity r
Module Security* r
86
RtReports Editor (to PI Data Server)
While RtReports allows you to configure permissions access for various user types, it does
not depend on the PI Server, which contains the RtReports data to administer these
permissions.
Rather, all requests from RtReports users to the PI Server containing RtReports data are
channeled through a single PI Trust connection (defined as "RtReports Server" above). For
versions 3.1.1 and earlier, this PI Trust must have read/write access to the Module Database,
as well as read access to the point database on the PI Server. For version 3.2, the Trust must
also have read/write access to the point database to store report properties in tag annotations.
In addition, the RtReports Server accesses the PI Server when generating a report. This
access is read-only to both the point and module databases.
Most PI access via the RtReports Editor is accomplished via web service calls to the
RtReports Server trusted connection described above. However, the Editor also has its own
read-only connection to the PI Server defined when running test reports (defined as
"RtReports Editor" above). This PI Server is the one defined by the currently-tested report
template.
PIBatch r
PIDBSEC r
PIHeadingSets r
PIUSER r
PtSecurity r
DataSecurity r,w w: for the UserID only if
data writes are performed
by RtPM Business
package
88
RtWebParts and RtBaseLine Services
When using RtWebParts (RtWP) and RtBaseline Services (RtBLS) there are two user
accounts that come into play:
• UserID—used when connecting the client machine to the RtBLS/RtWP Web server.
• ProcessID—used in the Web server connection to the PI Server
To identify the UserID and ProcessID used in a given session, select the RtBaseline Services
Version option from the RtBaseline Services Administration page. The User Mapping and the
Process Mapping are displayed in the Server Machine Information section.
To take advantage of Windows Integrated Security:
• Both the UserID and the ProcessID need to be valid Active Directory users with at least
one PI Mapping.
• Kerberos must be configured between the RtBLS/RtWP Web server and PI Server
• The client machine must belong to the same Active Directory forest.
For instructions on setting up the Kerberos environment, see the Knowledge Base article:
How to configure RtWebParts or RtBaseline Services to use Windows authentication relying
on Kerberos delegation (http://techsupport.osisoft.com/Support+Solution/7/KB00100.htm).
Configure both the Database Security tables and the rights per module on the PI Server. It is
recommended that the UserID and the ProcessID be members of distinct security groups,
either in Windows or in PI.
An IISRESET is required on the Web server if membership in an Active Directory group
used in a PI Mapping is modified, or if a relevant PI Mapping itself is modified.
Interfaces
PtSecurity r,w
DataSecurity r,w
1
Interfaces with separate utilities that create points (for example, PI-Perfmon, PI-Ping,
SNMP, etc.) and run from PI SMT only require that you have read access for PIPOINT.
90
Interfaces
PI to PI TCP/IP Interface
PIPOINT r
PtSecurity r
DataSecurity r,w
92
Interfaces
PI APS
94
Interfaces
1
The Synchronization Engine runs as a service and therefore requires some form of automatic
log on (either a PI Trust or new PI Mapping).
² Synchronization Trigger is also a service and therefore requires some form of automatic log
on. Without write permission for the Module Database, Synchronization Trigger is non-
functional. Synchronization Trigger only uses the Module Database (no point access).
³ The PItoPI_APS Connector requires read permission to points on the source PI Server.
Since PI APS Connectors run inside the Synchronization Engine process, which is a service,
some form of automatic log on to the source PI Server is required. That is, the
Synchronization Engine that is running the PItoPI_APS Connector requires automatic log on
to two PI Servers: the target PI Server and the source PI Server. The method of connection
and the access rights granted do not need to be the same for both PI Servers. The
Synchronization Engine only needs read access to the PIPOINT and PIDS tables on the
source PI Server for the PItoPI_APS Connector to function. However, the Synchronization
Engine requires read and write access to the PIPOINT and PIDS tables for automatic point
creation on the target PI Server. For non-automatic modes, only read access is needed (on the
target PI Server).
Note: A copy of PI APS on the PI Server node does not require any security
configuration in the PI Server, however OSIsoft discourages using PI APS on the
PI Server node except to synchronize points for PI COM Connectors.
The PI APS Synchronization Engine and PI APS Synchronization Trigger service are both
Windows services. You need to set up either a PI Trust or a PI Mapping to connect each of
them to the PI Server. The PI APS Configuration Utility is an interactive application, so you
can use either a PI Trust, a PI Mapping, or an explicit login to a PI Server User account. PI
Mappings are the most secure option; explicit logins are the least secure. Use PI Mappings
where possible (PI Mappings require PI Server version 3.4.380 and PI SDK 1.3.6 or later).
96
Interfaces
Synchronization Engine or PI APS Configuration Utility requires write access for individual
points.
The PI APS Synchronization Trigger service does not access the PI Server point database.
PI points have two sets of security attributes: one set controls access to the point attributes
and the other set controls access to the point data. PI APS needs write access for point
attributes of the points that are associated with interface instances registered for
synchronization.
PI APS does not access point data.
PI ICU
PtSecurity r, w
98
Interfaces
Configuring PI ICU
When PI ICU is installed on an Interface node, the PI ICU obtains permissions to access PI
Server objects by logging on with some form of credentials. The PI Server authenticates these
credentials and establishes a security context for each client program. The security context is
specific to the credentials used to log on. Each securable PI Server object has access control
information. Authorization for a client program to access a securable PI Server object is
determined by comparing information in the security context with the access control
information for the object.
Several methods are available for logging on:
• Explicit Login
• PI Trust
• PI Mapping (requires PI Server version 3.4.380 or later and PI SDK 1.3.6 or later)
The PI ICU is an interactive application and all the methods for logging on to the PI Server
can be used.
If the PI Server is version 3.4.380 or later, OSIsoft recommends using Windows security
through PI Mappings. Windows security provides the strongest authentication and full
Windows account traceability in the PI Server log and audit trail records.
100
Appendix C
Backup Tool A new tool that allows you to view backup history and run quick
backups (not for scheduling regular backups)
Security Settings Tool A new tool that allows you to choose a security level for PI Servers
(for Server versions 3.4.380 and later only)
Firewall Tool A new tool that allows you to configure the PI Server Firewall
Tool Changes:
Users and Groups tool The Users and Groups tool becomes the Identities, Users, and
Groups tool. When connected to a new-model PI Server (version
3.4.380 and later) it includes a PI Identities tab. The PI Identities
tab does not appear unless you are connected to at least one new-
model PI Server.
Trusts tool The Trusts tool becomes the Mappings and Trusts tool. When
connected to a new-model PI Server (version 3.4.380 and later), it
includes a PI Mappings tab. The PI Mappings tab does not
appear unless you are connected to at least one new-model PI
Server.
Message Log tool The Message Log viewer has been greatly enhanced with new
filtering and searching options and fields.
Identify PI Groups and PI Users that will be See Step 3. Create a Configuration Plan (page
retained 41)
Create New Identities to Fill Gaps See Step 4. Create PI Identities to Fill Gaps
(page 43)
If using AD, determine which AD groups are (AD only) See Step 5. Review AD Group (page
needed and which Identities to map them to 43)
If using local Windows security, determine (only if using local Windows security)
which local Windows groups are needed and
which Identities to map them to
If using local Windows security, configure (only if using local Windows security)
matching Windows user accounts and
passwords on PI Server and client workstations
Create Mappings See Step 6. Create Mappings (page 44)
Check custom API applications, if any (if any) See Check for Unauthenticated API
Connections (page 60)
Upgrade the SDK to 1.3.6 or later on Client (required for Windows authentication)
Computers
Configure clients that connect through an (if any) See Products that Connect to an
application server (for example, PI DLES and PI Application Server (page 60)
WebParts)
Upgrade Administrative Applications: See Administrative Client Applications (page 61)
PI SMT version 3.3.1.3 or later
Tag Configurator version 2.1.3 or later
Module Database Builder version 1.2.1.3 or
later
PI ICU 1.4.7 or later
Replace SDK Trusts with PI Mappings (Optional) Retire SDK Trusts (page 54)
104
Appendix E
If using local Windows security, (only if using local Windows security) See Configure
determine which local Windows Windows Groups (page 26)
groups are needed and which
Identities to map them to
If using local Windows security, (only if using local Windows security) See Use Local
configure matching Windows user Windows Security (page 21)
accounts and passwords on PI
Server and client workstations
Create the Mappings for AD: Map AD Groups to PI Identities (page 20)
for local Windows security: Create Mappings (page 27)
Configure access permissions Configure Access Permissions (page 21)
Check custom API applications, if (only for installations with existing clients & interfaces)
any See Check for Unauthenticated API Connections (page
60)
Upgrade the SDK on Client (only for installations with existing clients & interfaces;
Computers to 1.3.6 or later required for Windows authentication
Configure clients that connect (if any) See Products that Connect to an Application
through an application server (for Server (page 60)
example, PI DLES and PI
WebParts)
Upgrade Administrative (only for installations with existing clients & interfaces)
Applications: See Administrative Client Applications (page 61)
PI SMT version 3.3.1.3 or later
106
Appendix F
You can contact OSIsoft Technical Support 24 hours a day. Use the numbers in the table
below to find the most appropriate number for your area. Dialing any of these numbers will
route your call into our global support queue to be answered by engineers stationed around
the world.
Office Location Access Number Local Language Options
San Leandro, CA, USA 1 510 297 5828 English
Philadelphia, PA, USA 1 215 606 0705 English
Johnson City, TN, USA 1 423 610 3800 English
Montreal, QC, Canada 1 514 493 0663 English, French
São Paulo, Brazil 55 11 3053 5040 English, Portuguese
Altenstadt, Germany 49 6047 9890 English, German
Manama, Bahrain 973 1758 4429 English, Arabic
Singapore 65 6391 1811 English, Mandarin
86 021 2327 8686 Mandarin
Perth, WA, Australia 61 8 9282 9220 English
Support may be provided in languages other than English in certain centers (listed above)
based on availability of attendants. If you select a local language option, we will make best
efforts to connect you with an available Technical Support Engineer (TSE) with that language
skill. If no local language TSE is available to assist you, you will be routed to the first
available attendant.
If all available TSEs are busy assisting other customers when you call, you will be prompted
to remain on the line to wait for the next available TSE or else leave a voicemail message. If
you choose to leave a message, you will not lose your place in the queue. Your voicemail
will be treated as a regular phone call and will be directed to the first TSE who becomes
available.
If you are calling about an ongoing case, be sure to reference your case number when you call
so we can connect you to the engineer currently assigned to your case. If that engineer is not
available, another engineer will attempt to assist you.
Search Support
From the OSIsoft Technical Support Web site, click Search Support.
Quickly and easily search the OSIsoft Technical Support Web site's Support Solutions,
Documentation, and Support Bulletins using the advanced MS SharePoint search engine.
techsupport@osisoft.com
When contacting OSIsoft Technical Support by email, it is helpful to send the following
information:
• Description of issue: Short description of issue, symptoms, informational or error
messages, history of issue
• Message logs: See documentation for your PI System for information on obtaining
message logs pertinent to the situation.
From the OSIsoft Technical Support Web site, click Contact us > My Support > My Calls.
Using OSIsoft's Online Technical Support, you can:
• Enter a new call directly into OSIsoft's database (monitored 24 hours a day)
• View or edit existing OSIsoft calls that you entered
• View any of the calls entered by your organization or site, if enabled
• See your licensed software and dates of your Service Reliance Program agreements
108
Remote Access
From the OSIsoft Technical Support Web site, click Contact Us > Remote Support
Options.
OSIsoft Support Engineers may remotely access your server in order to provide hands-on
troubleshooting and assistance. See the Remote Access page for details on the various
methods you can use.
On-site service
From the OSIsoft Technical Support Web site, click Contact Us > On-site Field Service
Visit.
OSIsoft provides on-site service for a fee. Visit our On-site Field Service Visit page for more
information.
Knowledge Center
From the OSIsoft Technical Support Web site, click Knowledge Center.
The Knowledge Center provides a searchable library of documentation and technical data, as
well as a special collection of resources for system managers. For these options, click
Knowledge Center on the Technical Support Web site.
• The Search feature allows you to search Support Solutions, Bulletins, Support Pages,
Known Issues, Enhancements, and Documentation (including user manuals, release
notes, and white papers).
• System Manager Resources include tools and instructions that help you manage: Archive
sizing, backup scripts, daily health checks, daylight savings time configuration, PI Server
security, PI System sizing and configuration, PI trusts for Interface Nodes, and more.
Upgrades
From the OSIsoft Technical Support Web site, click Contact Us > Obtaining Upgrades.
You are eligible to download or order any available version of a product for which you have
an active Service Reliance Program (SRP), formerly known as Tech Support Agreement
(TSA). To verify or change your SRP status, contact your Sales Representative or Technical
Support (http://techsupport.osisoft.com/) for assistance.