Most engineers think…
Most engineers think PAM is a standalone box — install the vault, onboard the accounts, done. Integrations are a "phase 2" luxury.
Wrong — an unintegrated vault fails its first audit and its first incident. Without SAML + directory groups, leavers keep access. Without ticket validation, approvals are vibes. Without SIEM forwarding, a stolen API key (the exact entry in the Dec-2024 US Treasury incident) walks straight past MFA and stays invisible until someone watches its usage. The four wires in this lesson are what turn a password cupboard into a control plane.
① Identity in — SAML SSO, MFA & directory groups
Think of the Password Safe portal as the bank’s locker ROOM, not the locker. The lockers (vaulted credentials) are strong, but the room entrance is where identity matters: the bank checks your Aadhaar-verified pass at the door (SSO + MFA), and the register at the gate decides which counters you may visit (your groups). In BeyondTrust terms: SAML handles the door, directory groups handle the register.
Why push login out to an IdP like Entra ID or Okta? Two reasons. First, MFA lives at the IdP — Conditional Access, number matching, phishing-resistant FIDO2 — and PAM inherits all of it without its own MFA stack. Second, joiner-mover-leaver becomes one change: HR disables the AD account, the IdP refuses the login, and PAM access dies the same second. No orphan PAM accounts for the auditor to find.
The console path to memorise: Configuration > Authentication Management > SAML Configuration, then Create New SAML Identity Provider +. You paste the IdP’s Identifier (entity ID), Single Sign-on Service URL and signing certificate; BeyondInsight auto-generates the Service Provider side — its own Entity ID and the Assertion Consumer Service URL the IdP must post assertions to. One hard floor worth quoting in interviews: incoming SAML assertions can no longer be signed with SHA1 — weak-signature assertions are rejected outright.
PRA has its own door: /login > Users & Security > Security Providers accepts SAML, LDAP, RADIUS and Kerberos providers, and Group Policies pick users up by the group attribute the IdP sends. Same pattern, different console — one IdP can front BeyondInsight, Password Safe and PRA together, which is exactly what you want: one login story, one MFA story, one off-boarding story.
Now the register at the gate: directory groups drive authorization. A BeyondInsight group can be created from an AD/LDAP or Entra ID query, and everything hangs off that group — Password Safe roles (Requestor, Approver, ISA), Smart Group permissions, and the access policy that says when and how its members may connect. Onboarding the new DBA Aditya = add him to one AD group. Nothing inside PAM changes hands.
Four words that carry this whole section
Tap each card — these four turn up in every SSO troubleshooting call.
The signed XML "this user authenticated" message the IdP posts to the ACS URL. SHA1-signed = rejected. So: trust comes from the signature.
IdP (Entra/Okta) proves identity; SP (BeyondInsight/PRA) consumes the proof. Config = exchange both sides’ URLs + certs. So: two halves, one handshake.
The group list riding inside the assertion. Mapped to a BI group that carries roles + access policy. No mapping = empty portal. So: claims feed authorization.
Conditional Access enforces MFA before the assertion exists. PAM inherits phishing-resistant login without its own MFA stack. So: harden ONE front door.
Symptom: SAML is forced as the only login path, the IdP certificate expires (or the Entra app is deleted), and now NOBODY can administer the PAM that holds every password in the company. Fix: always keep one local break-glass BeyondInsight admin account — vaulted, sealed, alerted on use — and test the standard login path before and after every IdP change.
Rahul at HCL clicks "Use SAML Authentication", Entra ID accepts his password + Authenticator prompt, and BeyondInsight opens — but his Password Safe portal shows zero systems and zero accounts. The IdP certificate is valid. Most likely miss?
Pause & Predict
Predict: Sneha’s company fires an employee at 11:00. AD is disabled at 11:02. The employee had an OPEN Password Safe session from 10:45. Does SSO kill that live session? Type your guess.
② ITSM — ServiceNow ticket-gated access
Every Indian housing society runs this control already: a visitor enters only against a slip the flat owner pre-approved, and the slip number is written into the gate register next to the entry and exit times. Months later, anyone can trace visit → approval → slip. That is exactly what the ServiceNow integration does for privileged access: no ticket, no entry; and the entry is written back against the ticket.
Mechanically there are two layers. The lighter one is built into Password Safe access policies: the ticket number field can be made required, so a release request must carry a reference. The full integration is the certified ServiceNow app: users request checkout from the ticket itself using Incident, Change Request or Problem flows; Password Safe validates the ticket exists and is in an open, valid state before releasing anything; and the session link lands back on the ticket record. Requirements worth memorising: Password Safe 22.2+, managed accounts with API access enabled, and an API registration assigned to a BeyondInsight group containing the requestor accounts.
PRA carries the same gate for remote sessions: a Jump Policy has the literal checkbox "Require a ticket ID before a session starts", pointing at your configured ticket system. So a vendor engineer Jumping to a production switch and a DBA checking out the sa password both answer the same question first: which approved change is this? Remember the PRA constraint from lesson 13 — a Jump Policy cannot enable both a schedule and approval at once, but ticket-ID can ride alongside either.
Priya at Airtel faces this
The new ServiceNow integration works for the Windows team, but every request the network team raises from a Change ticket comes back 403 Forbidden in the app logs — while the same users can check out fine from the Password Safe portal directly.
The API registration backing the ServiceNow app is assigned to a BeyondInsight group that contains the Windows admins only. The network team’s accounts are not in the group tied to the registration, so the API calls made on their behalf are refused — portal access uses their normal roles and is unaffected.
Reproduce one failing request, note the runas user in the app log, then open the API registration and check which user group it is assigned to and whether that group contains the network team. Also confirm their target accounts have API access enabled.
BeyondInsight > Configuration > General > API Registrations · BeyondInsight > Configuration > Role Based Access > User Management > GroupsAdd the network team (or their directory-query group) to the group assigned to the ServiceNow API registration, and tick Enable for API Access on the managed accounts they request. Do NOT widen the registration’s roles — membership, not power, was the gap.
The network engineer re-submits the request from the Change ticket: ticket validates, approval flows, checkout succeeds, and the session link appears on the ticket record within a minute.
Meera at ICICI submits a Password Safe request from ServiceNow referencing CHG0048821. The change was completed and moved to Closed yesterday. What happens to her request?
Pause & Predict
Predict: the auditor asks Priya for evidence on 40 sampled privileged sessions. With the closed loop wired, how many systems does she open to answer? Type your guess.
PCI DSS, SOX and ISO 27001 evidence requests all reduce to one chain: change approved → access requested → access granted → session recorded → link on the change. With the write-back in place, that chain is ONE click instead of a week of correlating spreadsheets. Put the phrase "ticket-gated checkout with ITSM write-back" in your resume — it is a real differentiator at L2 interviews.
③ SIEM & SOC — syslog, Splunk/Sentinel, the events that matter
A jeweller’s CCTV that records to a hard disk nobody watches still loses the gold — it only helps the post-mortem. A PAM that logs only to itself is the same device. The fix is one connector: BeyondInsight ships every privileged event to your SIEM, where a detection wakes a human in minutes instead of an auditor in months.
The console path: Configuration > General > Connectors > Create New Connector, type Syslog Event Forwarder — pick a format your SIEM parses (CEF or LEEF, plus newline/tab-delimited and JSON), point it at the collector, and tick the Event Filters for what to forward. Splunk shops can skip syslog: the Splunk Event Forwarder connector posts straight to the HTTP Event Collector (default port 8088) with a Splunk API key. PRA forwards too: every /login, /appliance and console authentication event can ship via UDP 514 or TLS TCP 6514, and Management > Outbound Events fires webhooks on session start/end for SOAR pipelines.
The five event families that matter
Do not forward everything and drown. Five families cover most PAM risk: password release/check-out (who took which key), rotation failures (the vault’s own health — a burst means the functional account broke), session start/stop (proxy + PRA), policy and Smart Rule changes (attackers widen policies before they steal), and failed logins + API sign-ins (SignAppin failures, OAuth grants, new source IPs). Wire one named detection per family before you build anything fancier.
index=pam sourcetype="beyondtrust:beyondinsight" "Password change failed" | stats count AS failures BY ManagedSystem, FunctionalAccount | where failures > 5 | sort - failures
ManagedSystem FunctionalAccount failures db-prod-1 svc-psafe-fa 14 app-prod-3 svc-psafe-fa 11 -- same FA failing everywhere = fix ONE credential, not 25 servers
Syslog | where SyslogMessage has "SignAppin" | extend SrcIP = extract(@"from ([\d\.]+)", 1, SyslogMessage) | summarize firstSeen = min(TimeGenerated) by SrcIP | where firstSeen > ago(1d)
SrcIP firstSeen 203.0.113.77 2026-06-10T02:14:09Z -- 1 row: a brand-new source IP using the API at 02:14. Page someone.
That second detection is not paranoia — it is history. In December 2024, attackers used a stolen Remote Support SaaS API key to reset local application passwords and reach 17 customers including the US Treasury (CVE-2024-12356 rode alongside as the software flaw). MFA never saw it, because machine keys do not do interactive login. The only controls that catch a stolen key are the ones in this section and the next: anomaly detection on key usage, IP restrictions, scoping and rotation.
Karthik at TCS faces this
The SOC built BeyondTrust dashboards two weeks ago. Zero events have arrived. The Syslog Event Forwarder connector exists, shows Active, and test events from other sources reach the collector fine.
The connector was created with no Event Filters ticked — it is "active" but subscribed to nothing. (The twin cause in other shops: UDP 514 from the appliance/Resource Broker subnet to the collector is blocked, while the test events came from a different VLAN.)
Open the connector and expand Event Filters — if nothing is selected, that is the answer. If filters are fine, capture on the collector while forcing an event (sign in, check out a test credential) and watch for packets from the appliance IP.
BeyondInsight > Configuration > General > Connectors > Syslog Event ForwarderTick the event categories the SOC actually needs (releases, rotation failures, sessions, policy changes, auth), save, and open UDP 514 — or better, switch to TLS TCP 6514 — from the appliance to the collector.
Check out a test credential and watch it land in the SIEM within a minute: index=pam | head 5 shows the release event with Karthik’s username.
At 02:10, Splunk fires: 14 "Password change failed" events across 11 different Windows systems within five minutes. Which story fits best?
Pause & Predict
Predict: of the five event families, which one will your SIEM almost never see — and that absence is itself the alert? Type your guess.
④ The REST APIs — Password Safe, PRA, and the JIT cloud edge
Everything you have clicked in this series is callable. The Password Safe public API lives at /BeyondTrust/api/public/v3 and authenticates with the PS-Auth header: a 128-character key from an API registration, plus runas — a real Password Safe user whose roles decide what the call may touch. Sign in once with POST Auth/SignAppin; the session cookie keeps state until POST Auth/Signout.
# 1. Sign in (session cookie carries state between calls) curl -sk -c /tmp/ps.jar -X POST \ "https://bi.icicilab.in/BeyondTrust/api/public/v3/Auth/SignAppin" \ -H "Authorization: PS-Auth key=c479a66f...9484d; runas=icici\svc-ansible; pwd=[S3cure#21];" # 2. Find the account (must be Enable for API Access) curl -sk -b /tmp/ps.jar \ "https://bi.icicilab.in/BeyondTrust/api/public/v3/ManagedAccounts?systemName=db-prod-1&accountName=sa_dbpatch"
{"UserId":42,"UserName":"icici\\svc-ansible","Name":"Ansible Service"}
{"PlatformID":4,"SystemId":12,"SystemName":"db-prod-1",
"AccountId":47,"AccountName":"sa_dbpatch","DefaultReleaseDuration":120}Then the same request → retrieve → check-in loop a human does in the portal: POST Requests raises the request (put the change number in Reason — the audit trail thanks you), GET Credentials/{requestId} retrieves the secret, PUT Requests/{requestId}/Checkin releases it and triggers rotate-on-release. Two traps from lesson 6 still apply here: GET ManagedAccounts only returns accounts with Enable for API Access set and where the runas user holds Requestor/ISA, and a 2FA-enabled user’s first SignAppin deliberately returns 401 + a WWW-Authenticate-2FA header — the challenge, not an error. ISA users skip approval entirely via POST ISARequests.
# 3. Raise the request (ticket number rides in Reason)
curl -sk -b /tmp/ps.jar -X POST -H "Content-Type: application/json" \
"https://bi.icicilab.in/BeyondTrust/api/public/v3/Requests" \
-d '{"SystemId":12,"AccountId":47,"DurationMinutes":60,"Reason":"CHG0031245 patch window"}'
# 4. Retrieve, use, check in (check-in triggers rotate-on-release)
curl -sk -b /tmp/ps.jar "https://bi.icicilab.in/BeyondTrust/api/public/v3/Credentials/891"
curl -sk -b /tmp/ps.jar -X PUT -H "Content-Type: application/json" \
"https://bi.icicilab.in/BeyondTrust/api/public/v3/Requests/891/Checkin" -d '{}'891 "xR9$mK2#vL8@pQ4w" (HTTP 204 No Content — checked in, rotation queued)
▶ Follow one Ansible job through the Password Safe API
A service account checks out a database credential with zero humans awake — four calls, one closed loop. Press Play for the healthy path, then Break it to see the failure.
Where do keys come from? Configuration > General > API Registrations > Create API Registration. An API Key Policy registration issues the 128-character key (masked in the UI — click Show Key); an API Access Policy registration enables OAuth client-credentials for application users instead. Scoping is the whole game: add authentication rules restricting the source IP, range or CIDR (plus X-Forwarded-For rules behind load balancers), keep the runas users least-privilege, and note the platform direction — client certificates are being retired as an API registration auth method, so build new automation on keys or OAuth.
Symptom: one API key with an ISA-role runas user is shared by every team, pasted in a Confluence page and three Git repos. Nothing "breaks" — until the key leaks, and the leak looks exactly like the Dec-2024 Treasury incident: a single stolen API key, no MFA in its path, days of quiet access across 17 SaaS tenants before usage anomalies flagged it. Fix: one registration per application, IP rules on each, least-privilege runas users, keys stored in Secrets Safe, rotated on a schedule, and the new-IP SIEM alert from section ③.
PRA speaks a different dialect: pure OAuth. Create an API account at /login > Management > API Configuration, then exchange client_id:secret (Base64, Basic header) at POST /oauth2/token for a Bearer token that lives one hour — an account holds at most 30 live tokens, and regenerating the secret kills them all instantly. The Configuration API under /api/config/v1 covers Jump Items, users, policies and Vault accounts (mass-onboarding 500 Shell Jump items = a for-loop, not a week of clicking), the command API drives sessions, and the reporting API exports session logs and recordings — the no-code alternative being the Integration Client pulling .xml logs and .flv recordings to SQL Server or a file share.
# Token: client_id:secret Base64-encoded in a Basic header (1-hour lifetime) curl -s -X POST "https://pra.icicilab.in/oauth2/token" \ -H "Authorization: Basic $(printf 'a3f9c2e1:8d41e7bb' | base64)" \ -d "grant_type=client_credentials" # Spend the Bearer: list Jump Items curl -s "https://pra.icicilab.in/api/config/v1/jump-item" \ -H "Authorization: Bearer eyJhbGciOi..." -H "Accept: application/json"
{"access_token":"eyJhbGciOi...","token_type":"Bearer","expires_in":3600}
[{"id":7,"name":"core-sw-01","jump_type":"shell_jump","hostname":"172.16.40.7"},
{"id":8,"name":"pay-prod-2","jump_type":"remote_rdp","hostname":"10.20.8.11"}]The cloud edge rounds out the ecosystem. Identity Security Insights ingests AD, Entra ID, Okta, AWS, GCP and GitHub to map paths to privilege — the back-lanes (group nesting, role chains) an attacker would walk from a normal account to domain admin. Entitle brings JIT entitlements: like a Tatkal ticket instead of a lifetime rail pass, cloud access is granted for one journey and expires by itself — the standing-privilege killer. Both fold into the Pathfinder platform direction, and both are interview-current: "how would you remove standing access in AWS?" now has a BeyondTrust answer.
Aditya’s PRA inventory script fetches a Bearer token at deploy time and reuses it on every 6-hourly run. The first run works; every later run gets 401. Why?
Pause & Predict
Predict: your ServiceNow integration, your SOC forwarder and your Ansible jobs all authenticate to Password Safe. How many API registrations should that be — one, or three? Type your guess.
🤖 Ask the AI Tutor
Tap any question — instant, scoped to this lesson. No login, no waiting.
Pre-curated from BeyondTrust docs + community Q&A, scoped to this lesson. For a live prod issue, paste your export into chat.techclick.in.
📝 Wrap-up assessment — six more
You've answered 4 inline. Six left. 70% (7 of 10) marks the lesson complete on your profile. Tap Submit all answers at the end.
🧠 In your own words
Type one line: In one line: why does an auditor trust a ServiceNow-gated Password Safe more than a standalone vault? Then compare to the expert version.
🗣 Teach a friend
Best way to lock it in — explain it in one line to a teammate. Tap to generate a paste-ready summary.
📖 Glossary
- SAML assertion
- Signed XML "this user authenticated" message the IdP posts to BeyondInsight/PRA — SHA1 signatures are rejected.
- IdP vs SP
- IdP (Entra ID/Okta) proves identity; the Service Provider (BeyondInsight/PRA) consumes the proof at its ACS URL.
- Group claim
- Group list inside the assertion; mapped to a BeyondInsight group that carries roles + access policy — no map, empty portal.
- API registration
- BeyondInsight object (Configuration > General > API Registrations) issuing the 128-char key plus IP/X-Forwarded-For rules.
- PS-Auth header
- Authorization: PS-Auth key=…; runas=…; pwd=[…]; — the Password Safe API auth format; password sits in square brackets.
- runas user
- The real Password Safe user an API call acts as — its roles (Requestor/ISA) are the ceiling on what the key can do.
- OAuth client credentials
- Machine login: client_id+secret exchanged at /oauth2/token for a 1-hour Bearer — the only way into PRA’s APIs.
- Connector (Event Forwarder)
- Configuration > General > Connectors object shipping BeyondInsight events to syslog (CEF/LEEF/JSON) or Splunk HEC :8088.
- Ticket system integration
- Access-policy/Jump-Policy gate requiring a valid OPEN ITSM ticket before a release or session starts.
- ISA role
- Instant, approval-free retrieval (POST ISARequests). Treat ISA-capable API keys like master keys — scope and alert.
- Identity Security Insights
- BeyondTrust cloud ITDR — True Privilege Graph maps paths-to-privilege across AD, Entra ID, Okta, AWS, GCP, GitHub.
- Entitle (JIT entitlements)
- 2024 acquisition — just-in-time cloud access that expires by itself; the standing-privilege killer in the Pathfinder platform.
📚 Sources
- BeyondTrust Docs — Configure SAML in BeyondInsight (Authentication Management > SAML Configuration; Entra ID + Okta walkthroughs; SHA1 assertions rejected). docs.beyondtrust.com/bips/docs/bi-authentication-security-provider · docs.beyondtrust.com/bips/docs/saml-entra-id
- BeyondTrust Docs — Password Safe + ServiceNow integration (ticket validation, Incident/Change/Problem flows, PS 22.2+, API-enabled accounts, requestor group). docs.beyondtrust.com/bips/docs/ps-snow
- BeyondTrust Docs — SNMP Trap & Syslog Event Forwarding + Splunk HTTP Event Collector connector (Configuration > General > Connectors; CEF/LEEF/JSON; HEC :8088). docs.beyondtrust.com/bips/docs/bi-snmp-trap-and-syslog-integration · docs.beyondtrust.com/bips/docs/bi-splunk-integration
- BeyondTrust Docs — BeyondInsight & Password Safe API usage + API registration (PS-Auth header, SignAppin 2FA challenge, key policies, IP / X-Forwarded-For rules). docs.beyondtrust.com/bips/reference/beyondinsight-and-password-safe-api-usage · docs.beyondtrust.com/bips/docs/ps-configure-api-registration
- BeyondTrust Docs — Privileged Remote Access API guide + Configuration API (OAuth client credentials at /login > Management > API Configuration; 1-hour tokens; 30-token cap; /api/config/v1). docs.beyondtrust.com/pra/reference/api-guide · docs.beyondtrust.com/pra/reference/pra-configuration-api
- NVD CVE-2024-12356 + The Hacker News — the Dec-2024 US Treasury incident via a stolen Remote Support SaaS API key (the API-hygiene case study). nvd.nist.gov/vuln/detail/cve-2024-12356 · thehackernews.com/2024/12/chinese-apt-exploits-beyondtrust-api.html
- BeyondTrust press — Entitle acquisition (JIT entitlements, 2024-04-16, 150+ integrations) + Pathfinder platform & Identity Security Insights True Privilege Graph. beyondtrust.com/press/beyondtrust-acquires-entitle · beyondtrust.com/press/pathfinder
- Wipro careers — BeyondTrust PAM architect JD (integration experience with 3+ platforms: AD, clouds, databases, network devices — the India job-market angle). careers.wipro.com/job/BeyondTrust-PAM-architect/72912-en_US/
What's next?
Integrations make the vault useful; availability keeps it alive. Next: U-Series HA pairs, Atlas clusters, cold-standby DR — and what actually happens when the appliance holding every password dies at 2 AM.