TECHNOLOGIES: POWER PAGES

Power Pages Penetration Testing and Table Permission Review

Power Pages puts a subset of your Dataverse tables on the open internet, and what a visitor can reach depends entirely on the web role they hold and the table permission scope attached to it. Get either wrong and an anonymous visitor, or a customer signed in as themselves, can read, submit or download records that were never meant to leave your own tenant. We test the portal signed out, signed in as an ordinary customer, and through the portal Web API directly. CREST-certified testers, fixed price from £3,920 for a 3-day single-site scope, quoted within 24 hours.

  • Unlimited retesting
  • Unlimited pre-retesting
  • No hidden fees
Accredited & recognised
Cyber Essentials certified Cyber Essentials Plus certified IASME certifying body ISO 27001 certified ISO 9001 certified Crown Commercial Service supplier UK Cyber Security Council member
CREST
Approved Provider
10
Power Pages Test Areas
FREE
Retest Until Closed
24h
Scope to Active Test
CLIENT REFERENCE
“I would highly recommend EJN Labs to any organisation seeking reliable, detailed, and well-managed penetration testing services, particularly for government or enterprise-level projects.”
SquareOneImran SaghirProject Lead, SquareOneRead the SquareOne case study →
CLIENT REFERENCE
“There wasn’t another company we could find that could deliver what we needed in the timeframe we needed. The client loved it, and we got instant ROI from the engagement.”
CelloriDan WilcocksonFounder, CelloriRead the Cellori case study →
See all case studies →
WHY IT MATTERS
5

Table permissions apply one of five access types: Global, Contact, Account, Self or Parent, and each hands a different set of records to a different set of visitors.

The portal is only as private as its weakest table permission

A Power Pages site is not a separate application with its own security model. It is a Dataverse environment with a public URL, and what a visitor can reach is decided entirely by the web role they hold and the table permission attached to it. Get either wrong and the fix is a configuration change, not a patch.

The gap to test is scope. A table permission set to Contact or Account access is meant to stop one signed-in customer reading another customer’s records, but the relationship it depends on has to be configured correctly and the portal Web API has to enforce it the same way the page does. Anonymous access adds a second gap: the Anonymous Users role applies to every visitor who is not signed in, so whatever it is granted is granted to the entire internet.

We test the portal from three positions: signed out, signed in as an ordinary customer, and calling the portal Web API directly with a valid session. Between the three we cover what the page interface hides but the API still returns, what a contact can reach through a table relationship it was not meant to follow, and what a document or file column exposes once its download URL is known.

SCOPE

What we pen test on a Power Pages site

PP-01

Anonymous access and the Anonymous Users role

A table permission that grants access to the Anonymous Users role applies to every visitor with no sign-in and, unlike other roles, does not layer with any other rule; we test exactly what an unauthenticated visitor can read, submit or download once that role is in play.

PP-02

Web roles and the Authenticated Users default

The Authenticated Users role, when set to Yes, becomes the default role for every signed-in visitor who holds no other role, and a site can have only one; we test what that default role can reach and whether registration leaves any contact holding more than intended.

PP-03

Table permission scope: Global, Contact and Account

Global access applies a table permission to every record, while Contact and Account access are meant to confine it to records related to the signed-in user or their company; we test whether that relationship-based boundary holds against record ID substitution or a misconfigured table relationship.

PP-04

Self scope and Parent-scope child permissions

Self access is meant to confine a table permission to the signed-in user’s own contact record, and Parent access, configured as a child permission against a related table in the Portal Management app rather than the design studio, is meant to inherit access from that parent record; we test both for gaps between the intended and actual boundary.

PP-05

The portal Web API and its per-table site settings

Each table exposed to the Web API needs its own Webapi/enabled and Webapi/fields site settings, since the wildcard value is deprecated, and the API is documented to follow the same table permissions as the associated web role; we test whether it actually does, table by table.

PP-06

Document and file column access

A file column needs the same table permission read privilege as the record it belongs to, and a site can also be configured to store attachments in Azure Blob Storage and serve them through a time-limited SAS URI, ten minutes by default; we test whether both paths enforce access consistently.

PP-07

Authentication providers and registration settings

We review which identity providers are configured, whether that is local username and password, Azure AD B2C, Microsoft Entra ID, or another OpenID Connect, SAML2 or WS-Federation provider, and test the open or invitation-only registration, password reset and two-factor settings each one depends on.

PP-08

Entity forms, entity lists and hidden columns

Hiding a column from an entity form or list is a display choice: unless column-level security is separately configured, the same column can still be retrieved through the Web API, a different form on the same table, or Liquid; we test every surface a column is exposed through, not just the one your team checked.

PP-09

Multi-level table permissions and API query behaviour

Where a table carries several layers of one-to-many or many-to-many table permissions, Microsoft’s own documentation notes that a standard Web API GET request can error out once Parent, Contact or Account scope adds extra conditions to the query, with FetchXML given as the workaround; we test whether that edge case closes off access correctly or fails in the wrong direction.

PP-10

Site settings and tenant governance controls

Anonymous access and external authentication providers can each be restricted centrally through governance controls in the Power Platform admin centre, separate from anything configured on the site itself; we test what the site allows on its own and whether the tenant-level control is actually switched on.

OUR PROCESS

Microsoft Power Pages Penetration Testing: From Scope to Attestation

01

Portal Mapping and Role Discovery

We map every public and authenticated area of the site, list the web roles configured for it, and work out how a contact is assigned to each one.

02

Table Permission and Scope Testing

Each table permission is tested from every relevant web role against its Global, Contact, Account, Self or Parent scope, including any table permission that grants the Anonymous Users role access.

03

Web API and Document Access Testing

We call the portal Web API and any file or SharePoint-backed document column directly with a valid session, checking whether access matches what the page interface enforces.

04

Reporting and Retest

Executive summary, technical report with CVSS scores and reproduction steps, a walkthrough call, free retest after remediation and an attestation letter.

CREDENTIALS

Verified Accreditations Auditors Accept

Every credential below is independently verifiable. UK procurement teams, FCA supervisors, ISO 27001 / SOC 2 auditors, and cyber insurance underwriters all recognise these standards.

GET YOUR QUOTE

Get a CREST Power Pages pen test quote in 24 hours

A fixed-price quote back in one business day, from a named CREST assessor. No sales pipeline, no chasing.

  • CREST and IASME accredited. Testing your auditors and clients already recognise.
  • Fast-track testing within 24 hours where required. Free retest of every fix included.
  • Live findings via your client portal, not a four-week PDF.
  • Fixed price from £3,500 for a single-role, single-app scope, agreed up front. Most engagements run £5,000 and up. No day-rate surprises.
What clients say
There wasn’t another company we could find that could deliver what we needed in the timeframe we needed. The client loved it, and we got instant ROI from the engagement.
CelloriDan WilcocksonFounder, Cellori

Under NDA Further named references available on a scoping call.

What happens next
  1. We reply within one business day with a fixed-price quote from a named CREST assessor.
  2. You approve the scope and we book a start date, usually within 24 hours.
  3. Live findings land in your client portal as we test, with a free retest of every fix.
Accredited & recognised
CREST member Cyber Essentials certified Cyber Essentials Plus certified IASME certifying body ISO 27001 certified ISO 9001 certified UK Cyber Security Council Crown Commercial Service supplier

Get your fixed pen test quote in 24 hours

⚡24h reply ✓CREST tester ↻Free retests

or book a 20-min scoping call first

We reply within one business day. Your data stays with us. No newsletter signup.

COMPLIANCE READY

Reports Mapped to Every Framework

Findings are written so your team can reference the report against each framework without translation work.

ISO 27001:2022

Annex A.8.8 management of technical vulnerabilities plus A.5.15-5.18 and A.8.2-8.5 access control validation.

SOC 2 Type I & II

CC6 logical access, CC7 system operations, CC8 change management evidence.

PCI DSS

Requirement 11.4 application penetration testing across cardholder data environments, including ecommerce penetration testing for online retail platforms.

FCA SYSC

SYSC 4.1.1R, 6.1.1R, 13 mapped to each finding for FCA-regulated firms.

UK GDPR

Article 32 effectiveness testing, customer-data security controls, ICO-acceptable evidence.

Cyber Essentials Plus

Direct certification through our IASME body status, single-vendor delivery.

PRICING

Transparent Microsoft Power Pages Penetration Testing Pricing

Pricing depends on the number of roles, integrations and environments in scope. See our pricing page for how we quote.

✦ ALWAYS · ON EVERY TIER · NO EXCEPTIONS ✦
✓Free retests, no time limit
✓Free rescheduling
✓No cancellation fees
✓24-hour scope to active testing
✓Live findings to client portal
✓Executive + technical report
✓60-min walkthrough call
✓Letter of attestation
SMALL / SMB
£3,920–£5,760
3 to 4 testing days

Single user role, basic CRUD application, marketing website with auth. Around 5 working days from kickoff to report.

Get a fixed quote
ENTERPRISE
£9,210–£14,030
6 to 8 testing days

Multi-tenant platform, complex authorisation matrix, integration-heavy applications. Around 15 to 20 working days from kickoff to report.

Get a fixed quote

Full UK pen test cost guide

WHY EJN LABS

What You Get From Microsoft Power Pages Penetration Testing

Six concrete differentiators competitors don’t all match.

CREST-Certified Testers, Verifiable

Every test by a CREST-certified pen tester (CRT, CCT APP, CCT INF where applicable). Verify our company status at crest-approved.org.

24-Hour Startup, Where Required

From signed scope to active testing in a single business day for incident response, audit deadlines, or regulator-driven timelines.

Live Findings, Not 4-Week PDFs

Critical issues reported during testing through your client portal. Your team remediates while testing continues.

Audit-Ready Reports

Executive summary plus full technical report with CVSS scores and explicit framework mappings (ISO 27001, SOC 2, PCI DSS, FCA SYSC).

Free Retests, Standard

Verify remediation of every finding before close-out. Letter of attestation for audit submission included. Most competitors charge £1,500-£3,000 per retest.

UK-Based CREST Testers

Every engagement performed by vetted, UK-based CREST-certified testers, matched to your needs, security clearance, and compliance scope.

FAQ

Frequently Asked

What access do you need?

At least one contact login per web role you want tested, ideally including one with no roles beyond Authenticated Users, plus the site URL. Where it is in scope, read access to the Portal Management app lets us check our findings against the actual table permission and web role configuration.

Will you touch our live customer data?

We test read-only against production by default. Where a write, upload or delete needs proving, we agree a sandbox environment or specific records with you first, and anything we create is documented and removed.

Is this hosted on our infrastructure or Microsoft’s?

Power Pages sites and the Dataverse behind them run entirely on Microsoft’s infrastructure, so there is nothing for you to host. The test is scoped to your web roles, table permissions, authentication configuration and any custom code, not to Microsoft’s platform.

Does this cover the Dataverse tables behind the portal, or just the pages?

Both. Web roles, table permissions and the portal Web API sit between the pages and Dataverse, and that boundary is exactly what we test, alongside the pages, forms and lists built on top of it.

What is out of scope?

Other customers’ Power Pages sites, Microsoft’s own infrastructure, denial-of-service testing, and Dataverse security roles used outside the portal, which we cover on our Dynamics 365 page, are all out of scope.

Is penetration testing our own Power Pages site allowed under Microsoft’s rules?

Yes. Microsoft’s penetration testing rules of engagement for its cloud services permit testing your own tenant and the assets you are authorised for, provided you do not access data or systems you do not own and do not disrupt the service for other tenants, and we test inside those rules.

How long does a Power Pages test take?

A single-site engagement with a small number of web roles typically runs to a 3-day scope. More web roles, table permissions or a heavier Web API surface extend it, and we confirm the exact day count once we see the configuration.

Do you need the source of any custom code on the site?

No, though if the site uses custom web templates, page templates or Liquid code, having it available speeds up root-causing anything we find. A code review is a separate service that pairs well with this one.

EXPLORE EVERY SERVICE

20+ CREST-accredited testing services in one place

Web, mobile, API, cloud, AI, infrastructure, red team. Pick the test that fits your environment.

Penetration testing services
READY TO START

Get a fixed price for your Power Pages portal

Power Pages puts a subset of your Dataverse tables on the open internet, and what a visitor can reach depends entirely on the web role they hold and the table permission scope attached to it. Get either wrong and an anonymous visitor, or a customer signed in as themselves, can read, submit or download records that were never meant to leave your own tenant. We test the portal signed out, signed in as an ordinary customer, and through the portal Web API directly. CREST-certified testers, fixed price from £3,920 for a 3-day single-site scope, quoted within 24 hours.