Skip to main content
Data Management
PI System
Security

Impersonating PI Web API Users: Solutions for Scheduled Jobs in Distributed Systems

Exploring authentication solutions for scheduled jobs on servers using the PI Web API, with a focus on impersonation and security through Kerberos and other methods.

Roshan Soni

4 min read

Impersonating PI Web API Users: Solutions for Scheduled Jobs in Distributed Systems

In the realm of industrial data management, integrating various processing pipelines with historical data is a common challenge. For developers using the PI System, particularly via the PI Web API, achieving seamless integration into processing jobs while maintaining security standards can be both complex and vital. Especially as processes move from individual workstations to dedicated servers, issues of authentication and authorization surface.

One common scenario involves an application that integrates PI System data into larger data processing workflows, developed to operate both locally—in a user’s Windows domain environment—and on dedicated servers. On personal machines, leveraging Windows authentication to manage access via Active Directory is straightforward. However, on a server designed to schedule future jobs, things get more complicated.

The Challenge of Server-Side Scheduled Jobs

The crux of the issue lies in ensuring that jobs scheduled by a regular Active Directory (AD) user continue to enforce that user's specific data access permissions when running on a server. In such setups, a service user—executing these scheduled tasks—needs to effectively impersonate the original AD user for data access via the PI Web API.

This requirement ensures that any data operations respect the limitations and privileges of the initiating user, maintaining compliance with both security policies and operational integrity.

Investigating Server-Side Authentication Approaches

  1. Kerberos Authentication and S4U2proxy

    The Service for User to Proxy (S4U2proxy) extension from Kerberos offers a potential solution by enabling services to impersonate a client to access resources. While theoretically applicable, testing is essential to confirm its compatibility and efficacy within specific PI System implementations.

    Microsoft documentation suggests this extension could function without altering the client's experience from a PI Web API standpoint. However, given the nuanced behavior of network security protocols, such integrations can pose unforeseen challenges.

  2. Basic Authentication: Drawbacks and Alternatives

    Basic Authentication, while simpler, necessitates storing user credentials server-side—a liability many organizations prefer to avoid due to security concerns. Consequently, alternative methods or enhancements—like token-based systems—are often recommended.

  3. Token-Based Authentication

    Implementing a token-based solution, such as OpenID Connect, could mitigate some issues of credential storage. Though attractive, these solutions might complicate system maintainability and scalability, necessitating careful consideration.

  4. Leveraging Windows Task Scheduler

    As a more direct approach, utilizing Windows Task Scheduler allows jobs to run as a specific user account. This method can leverage Windows authentication seamlessly, potentially simplifying Kerberos delegation without additional layers.

Planning Towards Implementation

Due diligence involves experimental setups to evaluate the practical viability of each strategy, especially focusing on infrastructure peculiarities and security mandates. Developers committed to testing with S4U2proxy should share findings, thereby contributing to collective insights for the PI System community.

Conclusion

This exploration highlights the nuanced challenge of integrating secure, authenticated data access for scheduled jobs in distributed systems. By balancing security, efficiency, and maintainability, teams can craft robust solutions that respect data access controls while empowering dynamic process automation.

Continued innovation and experimentation in this space will undoubtedly lead to more streamlined and secure methods, benefiting both the PI System ecosystem and its users.

Tags

#PI Web API
#Authentication
#Kerberos
#S4U2proxy
#Windows Task Scheduler

About Roshan Soni

Expert in PI System implementation, industrial automation, and data management. Passionate about helping organizations maximize the value of their process data through innovative solutions and best practices.

Sign in to comment

Join the conversation by signing in to your account.

Comments (0)

No comments yet

Be the first to share your thoughts on this article.

Related Articles

Enhancing PI ProcessBook Trends with Banding and Zones: User Needs, Workarounds, and the Road Ahead

A look at the user demand for trend banding/zoning in OSIsoft PI ProcessBook, current VBA workarounds, UI challenges, and how future PI Vision releases aim to address these visualization needs.

Roshan Soni

Migrating PIAdvCalcFilVal Uptime Calculations from PI DataLink to PI OLEDB

Learn how to translate PI DataLink's PIAdvCalcFilVal advanced calculations—like counting uptime based on conditions—into efficient PI OLEDB SQL queries. Explore three practical approaches using PIAVG, PIINTERP, and PICOunt tables, and get tips for validation and accuracy.

Roshan Soni

Understanding PI Web API WebID Encoding: Can You Generate WebIDs Client-Side?

Curious about how PI Web API generates WebIDs and whether you can encode them client-side using GUIDs or paths? This article explores the encoding mechanisms, current documentation, and best practices for handling WebIDs in your applications.

Roshan Soni