Evaluate the AutomationView desktop suite free for 30 days. No credit card required. Claim trial key →
arrow_back Back to Articles
HMI

Inside Enterprise HMI SSO: Architecting OAuth 2.0 and OIDC for SCADA Security

calendar_month
person Carvalho Raphael

Inside Enterprise HMI SSO: Architecting OAuth 2.0 and OIDC for SCADA Security

HMI
%%{init: {'theme':'dark', 'themeVariables': { 'background': '#001c38' }}}%%
flowchart LR
    A[Operator] -->|Auth Request| B(OIDC Provider)
    B -->|ID Token + Access Token| C{SCADA HMI}
    C -->|API Calls| D[Historian / PLC]
    style A fill:#003c71,stroke:#fff,stroke-width:2px,color:#fff
    style B fill:#0055a4,stroke:#fff,stroke-width:2px,color:#fff
    style C fill:#0072ce,stroke:#fff,stroke-width:2px,color:#fff
    style D fill:#4a90e2,stroke:#fff,stroke-width:2px,color:#fff
AutomationView Icon AutomationView

Historically, securing industrial control systems meant relying on isolated networks and shared generic credentials like “Operator1” or “Admin”. However, as IT/OT convergence accelerates, this perimeter-based security model is no longer sufficient. To achieve true Zero Trust architecture in modern industrial environments, engineers must move toward centralized identity management.

Implementing SCADA HMI SSO OAuth 2.0 and OpenID Connect (OIDC) is the most robust way to secure your plant floor interfaces. By decoupling authentication from the HMI software, you gain centralized revocation, enhanced auditability, and a significantly reduced attack surface.

The Technical Foundation: OAuth 2.0 vs. OIDC

Before integrating Single Sign-On (SSO) into an enterprise SCADA architecture, it is critical to distinguish between authorization and authentication.

  • OAuth 2.0 (Authorization): This is a framework that allows a third-party application (your HMI client) to obtain limited access to an HTTP service (your SCADA API or historian) on behalf of a resource owner. It issues Access Tokens, but it does not verify the user’s identity.
  • OpenID Connect (OIDC) (Authentication): Built on top of OAuth 2.0, OIDC adds an identity layer. It issues an ID Token (typically a JSON Web Token, or JWT) that contains claims about the authenticated user (e.g., name, email, department).

Architecting the SSO Flow in OT Environments

When an operator opens a web-based HMI on the plant floor, the authentication flow must be seamless but secure against interception.

sequenceDiagram
    participant Operator
    participant HMI Client
    participant OIDC Provider (Keycloak/ADFS)
    participant SCADA Server

    Operator->>HMI Client: Access Dashboard
    HMI Client->>OIDC Provider: Redirect to Login (with PKCE Challenge)
    OIDC Provider->>Operator: Prompt Credentials
    Operator->>OIDC Provider: Enter Credentials
    OIDC Provider->>HMI Client: Authorization Code
    HMI Client->>OIDC Provider: Exchange Code + PKCE Verifier
    OIDC Provider->>HMI Client: Return ID Token & Access Token
    HMI Client->>SCADA Server: Request Data (Bearer Token)
    SCADA Server->>HMI Client: Return Real-time Data

Securing the Client with PKCE

In modern Single Page Applications (SPAs) or mobile HMI clients, hardcoding a client_secret is highly insecure. Instead, the Authorization Code Flow with Proof Key for Code Exchange (PKCE) must be used. PKCE dynamically generates a cryptographic secret for every authorization request, preventing malicious actors from intercepting the authorization code and exchanging it for a token.

Bridging Legacy Systems: The Identity Proxy

A common paradox on the plant floor is the presence of legacy SCADA systems that only support LDAP, Active Directory, or NTLM. Upgrading the entire infrastructure to native OIDC is often impossible.

To bridge this gap, engineers deploy an Identity Aware Proxy (IAP). The proxy sits in front of the legacy HMI, intercepts the incoming traffic, enforces OIDC authentication against a modern Identity Provider (IdP), and then injects legacy headers (like HTTP Basic Auth) to the backend system.

Comparison of SSO Integration Methods

Integration Method Complexity Security Posture Best For
Native OIDC (Modern HMI) Low High (Supports PKCE, JWTs) New deployments, Web-based SCADA
Identity Proxy (IAP) Medium Medium-High Legacy web interfaces, HTTP/S traffic
SAML 2.0 Gateway High High Enterprise platforms with legacy SSO support

OT Availability and IdP Resilience

The most critical constraint in Operational Technology (OT) is availability. If the centralized Identity Provider (such as a cloud-based Azure AD) goes offline, operators may be completely locked out of the HMI during a critical process upset.

To mitigate this risk, enterprise architectures should utilize a hybrid or highly available on-premises IdP (like Keycloak or Ping Identity) synchronized with the enterprise directory. Additionally, the SCADA system must support graceful degradation—allowing local “break-glass” emergency accounts to bypass SSO in the event of an IdP outage.

Conclusion

Implementing SCADA HMI SSO OAuth 2.0 is not just an IT initiative; it is a fundamental shift in how industrial networks handle trust and access control. By leveraging OIDC and PKCE, automation engineers can align their control systems with Zero Trust principles without sacrificing operational efficiency.

FAQ

Can OAuth 2.0 be used without OIDC for HMI logins?

No. OAuth 2.0 is designed for authorization, not authentication. Using it alone for logins is a security anti-pattern. Always layer OIDC on top for verifying identity.

What happens if the OIDC provider goes offline?

If your IdP is unreachable, new login attempts will fail. It is crucial to maintain local emergency admin accounts on the SCADA server to ensure continuous operability during outages.

How does Role-Based Access Control (RBAC) integrate with OIDC?

The IdP can inject custom claims (such as group memberships or roles) into the JWT. The HMI client or SCADA server then parses these claims to enforce RBAC permissions dynamically.

Looking to standardize your PLC logic across multiple HMI deployments? Explore our robust templates and sequence frameworks at the AutomationView Store.

Share this article

Stay Updated with HMI

Get the latest articles and news delivered directly to your inbox.

Log in to Subscribe

You must be registered and logged in to manage subscriptions.

Recommended for you

Inside Role-Based Access Control: Securing Modern Web-Based HMI Systems

HMI
%%{init: {'theme':'dark', 'themeVariables': { 'background': '#001c38' }}}%%
flowchart LR
    classDef blue fill:#2563eb,color:#ffffff,stroke-width:0px
    classDef green fill:#16a34a,color:#ffffff,stroke-width:0px
    classDef red fill:#dc2626,color:#ffffff,stroke-width:0px

    User["Operator / Engineer"]:::blue --> Auth["Authentication Gateway"]:::green
    Auth --> RBAC["Role-Based Access Control HMI"]:::red
    RBAC -->|Read| Dash["HMI Dashboards"]:::blue
    RBAC -->|Write| Ctrl["Control Actions"]:::blue
AutomationView Icon AutomationView
calendar_month

Inside Role-Based Access Control: Securing Modern Web-Based HMI Systems

Implementing a robust Role-Based Access Control HMI architecture is no longer just a best practice—it is a strict necessity for securing modern industrial control systems. With the shift toward web-based SCADA and remote monitoring, exposing control interfaces without granular permission models creates unacceptable vulnerabilities. This deep dive explores how to architect RBAC for industrial web […]

Read Article arrow_forward

Why GraphQL and WebSockets are Replacing Polling in Modern HMI

HMI
%%{init: {'theme':'dark', 'themeVariables': { 'background': '#001c38' }}}%%
flowchart LR
    A["PLC / Edge Gateway"] -->|GraphQL| B["Unified Data Layer"]
    B -->|WebSockets| C["Browser-Based HMI"]
    C -->|WebSockets| B
    style A fill:#2563eb,stroke:#60a5fa,stroke-width:2px,color:#ffffff
    style B fill:#16a34a,stroke:#4ade80,stroke-width:2px,color:#ffffff
    style C fill:#dc2626,stroke:#f87171,stroke-width:2px,color:#ffffff
AutomationView Icon AutomationView
calendar_month

Why GraphQL and WebSockets are Replacing Polling in Modern HMI

For decades, industrial control systems relied heavily on simple request-response polling mechanisms to update screens. If an operator needed to know a tank’s level, the HMI asked the PLC, waited for the response, and then asked again a second later. In 2026, this approach is fundamentally broken. As manufacturing floors integrate deeper with IIoT, Edge […]

Read Article arrow_forward

Deep Dive: Integrating HTML5 Web Components into Modern SCADA Systems

HMI
%%{init: {'theme':'dark', 'themeVariables': { 'background': '#001c38' }}}%%
flowchart LR
    A["Legacy HMI"] -.-> B["Proprietary Plugin"]
    B -.-> C["Vendor Lock-In"]
    D["Modern SCADA"] -->|HTML5 + SVG| E["Web Server"]
    E -->|WebSockets| F["Any Browser/Device"]
    
    style A fill:#e74c3c,stroke:#c0392b,color:#fff
    style B fill:#e74c3c,stroke:#c0392b,color:#fff
    style C fill:#c0392b,stroke:#a1281a,color:#fff
    style D fill:#2ecc71,stroke:#27ae60,color:#fff
    style E fill:#3498db,stroke:#2980b9,color:#fff
    style F fill:#9b59b6,stroke:#8e44ad,color:#fff
AutomationView Icon AutomationView
calendar_month

Deep Dive: Integrating HTML5 Web Components into Modern SCADA Systems

The industrial landscape is aggressively pivoting away from proprietary HMI plugins like ActiveX or Java applets. By transitioning to standard web technologies, automation engineers unlock responsive, hardware-agnostic control panels accessible from any authorized device. This guide unpacks the technical framework required for seamless HTML5 SCADA integration. The Middleware Layer: Bridging OPC UA to WebSockets Traditional […]

Read Article arrow_forward