Skip to content
InvardiaInvardia
Why InvardiaProductsFeaturesPricingCommunity
Docs
All documentation
Product documentationPIM ManagerSecurityInsight
SettingsPIM Manager settingsSecurityInsight settingsEntra Policy Suite settings
ScriptsPIM Manager scriptsSecurityInsight scriptsEntra Policy Suite scriptsInvardia scripts
Error codesPIM Manager error codesSecurityInsight error codes
API and MCPPIM Manager APIPIM Manager MCP toolsSecurityInsight APISecurityInsight MCP tools
SecurityPIM Manager security packSecurityInsight security packEntra Policy Suite security pack
Network and designPIM Manager network guidesPIM Manager command wizardNetwork egressDesign your installationCalculate your cost
SupportSetup scriptsRemote support access
Search the docs
SupportAboutContactBook a demoCustomer portalDesign your installationFree Pro trial

PIM Manager scripts

Deploy-PimRfaBroker

Deploy the access-request (RFA) broker

Part of the PIM Manager release - not a standalone download; it runs via the product's own install command or the updater.

Purpose

Deploys the public access-request (RFA) broker of PIM Manager Pro: its storage account and tables, its network, its Container Apps environment and app, the storage rights and Easy Auth; with the inputs given it also registers the API audience, the broker's mail sender and PIM's RFA settings. Plan only unless -Apply.

When to run it

After the main installation, when the access-request portal (Pro add-on) is wanted. The broker is always public by design (an internal environment is refused); -ApiAllowedIps restricts it to known systems. Placement Shared puts it in its own subnet of the PIM VNet; Island in its own subscription. It is part of the PIM Manager release package, not a separate download: run it from the package folder that Install-Invardia (or the guided install) downloaded and verified (.\tools\setup\Deploy-PimRfaBroker.ps1). When the store's SQL server is private, run it from inside the network so the settings step can reach it.

Who may run it

KindRoleScopeWhy
azureRbacOwner (or Contributor + User Access Administrator)the PIM resource group (Shared) or the RFA subscription (Island)Creates the storage account, tables, NSG, subnet, Container Apps environment, Log Analytics workspace and app, and assigns Storage Table Data Contributor on the storage account.
azureRbacNetwork Contributorthe PIM VNet (Shared placement)Adds the broker's subnet (delegated to Microsoft.App/environments) and its NSG.
entraRoleApplication Administratorthe tenant (only with -TenantId: the API audience follow-up)Set-PimRfaBrokerApiAuth.ps1 registers the 'PIM access request API' app so Entra application tokens are accepted.
otherAdmin application with Exchange.ManageAsApp (-AdminAppId + -AdminCertThumbprint), only for the mail follow-upExchange Online (the sender mailbox only)Initialize-PimMailSender.ps1 scopes the broker identity's send right to the sender mailbox; Exchange RBAC needs an application identity. Without it the step is printed as NEXT.
otherMember of the environment's SQL admin group (grp-pim-sql-admins) via -UseSignedInAccount, or the admin applicationthe environment's SQL database (only with -SqlServerFqdn: the settings follow-up)Writes pim.Settings RfaSettings and switches the rfa.portal and api.broker feature gates on.

What it changes

WhereActionWhatPermission / roleScopeWhyUndo
Azure (PIM resource group or RFA subscription)createstorage account (Tables; shared-key access disabled, TLS 1.2, no public blob) and the RFA tablesthe broker's resource groupThe broker's only data store: requests, reviews, PINs, API keys.Delete the storage account.
Azure networkcreateNSG nsg-<app> (deny to the PIM subnets) and the broker subnet delegated to Microsoft.App/environments (Shared), or its own VNet (Island)the PIM VNet or the RFA subscriptionThe broker is isolated from PIM's own subnets.Delete the subnet and the NSG (Island: the VNet).
Azure Container Appscreatethe public Container Apps environment (with a Log Analytics workspace beside it) and the container app ca-pim-rfa with a system-assigned identitythe broker's resource groupRuns the broker (the PIM image, scale to zero by default).Delete the container app, the environment and the workspace.
Azure RBACgrantthe broker app's identity and each engine identity (-EngineIdentityPrincipalIds)Storage Table Data Contributorthe broker's storage account onlyThe broker writes requests; the engine pulls them. It is the broker's ONLY Azure right.Remove the role assignments.
Container appupdateEasy Auth (Entra provider, unauthenticated = allow) and, with -ApiAllowedIps, the ingress allow-listthe broker appThe portal is PIN-based; /api/v1 needs a validated token or an API key. The allow-list makes the whole broker non-public.Disable Easy Auth / remove the ingress rules.
Microsoft Entra ID (only with -TenantId)createthe 'PIM access request API' app registration (Set-PimRfaBrokerApiAuth.ps1)the tenantSo Entra application tokens are accepted on the API.Delete the app registration.
Exchange Online (only with the admin application)grantthe broker identitysend as the sender mailbox only (Exchange-scoped application RBAC, Initialize-PimMailSender.ps1)the sender mailboxThe broker mails PINs and decisions.Remove the management role assignment and scope (see Initialize-PimMailSender).
Environment SQL database (only with -SqlServerFqdn)updatepim.Settings RfaSettings (store + portal URL, existing API app ids kept) and FeatureGates (rfa.portal + api.broker ON)this environmentTells PIM where the broker is; read back.Manager > Settings > RFA broker & API: clear the store, and switch the two gates off.

What it only reads

  • the storage account, VNet, NSG, subnet, Container Apps environment and app (each step creates only what is missing)
  • the existing role assignments on the storage account
  • pim.Settings RfaSettings and FeatureGates (settings follow-up, before writing)

Parameters

ParameterRequiredDefaultWhat it does
-SubscriptionIdyesThe PIM subscription (GUID).
-ResourceGroupyesThe PIM resource group.
-PlacementnoSharedShared (own subnet in the PIM VNet) or Island (own subscription, own VNet, not peered).
-RfaSubscriptionIdnoIsland: the broker's own subscription (must differ from PIM's).
-RfaResourceGroupnorg-pim-rfaIsland: the broker's resource group.
-LocationnowesteuropeThe Azure region.
-VnetNamenoShared: the PIM VNet (the broker gets its own subnet there). Island: its own VNet (default vnet-pim-rfa).
-SubnetNamenosnet-pim-rfaThe broker subnet's name.
-SubnetPrefixnoThe broker subnet, an IPv4 CIDR of /27 or larger.
-PimSubnetPrefixesnononeShared: the PIM subnet prefixes the broker subnet's NSG denies traffic to.
-StorageAccountNameyesThe broker's storage account (3-24 lower-case letters / digits).
-EnvironmentNamenocae-pim-rfaThe broker's Container Apps environment.
-AppNamenoca-pim-rfaThe broker's container app.
-ImageyesThe PIM Manager image (same as the jobs), e.g. <registry>.azurecr.io/pim-manager@sha256:<digest>.
-AcrNamenoThe registry name, pulled with the app's system identity.
-SenderMailboxyesThe PIM mail sender the broker sends as.
-TenantNamenoThe tenant name shown on the portal.
-EngineIdentityPrincipalIdsyesThe engine (tick job) managed identity object id(s): they pull the requests from the store.
-ApiAllowedIpsnononeAllow ingress only from these IPv4 addresses / CIDRs (the API-only shape: the portal is then not public).
-MinReplicasno00 (scale to zero) .. 2; 1 keeps one warm.
-ExistingEnvironmentNamenoShared only: join an existing PUBLIC Container Apps environment instead of building one.
-TenantIdnoPins the sign-in to the PIM tenant; also runs the API audience follow-up.
-ApiAppDisplayNamenoPIM access request APIThe API app registration's name.
-AzureConfigDirnoIgnored (the script no longer uses the Azure CLI); kept so older command lines still run.
-AdminAppIdnoAdmin application (client) id for the mail and settings follow-ups (with -AdminCertThumbprint).
-AdminCertThumbprintnoThumbprint of the admin application's certificate in the local machine store.
-UseSignedInAccountnofalseThe settings follow-up writes the store as the signed-in person (a member of the SQL admin group).
-SqlServerFqdnnoThe store's SQL server: runs the settings follow-up.
-SqlDatabasenoPimPlatformThe database.
-ApplynofalseRun the steps. Without it the plan is printed only.

Preview with -WhatIf

Validates the inputs and prints 'What if: Performing the operation "deploy <n> step(s)" on target "<placement> RFA broker in <resource group>"' and the numbered plan ('RFA broker deploy -- placement <p> -- PLAN ONLY'). -WhatIf wins over -Apply; no step runs and nothing is signed in to.

Undo

Delete the broker's container app, Container Apps environment, Log Analytics workspace, storage account, subnet and NSG (Island: the resource group), the 'PIM access request API' app registration and the broker's Exchange send scope; clear RfaSettings and switch rfa.portal / api.broker off in the Manager.

Network

It connects to: login.microsoftonline.com (sign-in), management.azure.com, graph.microsoft.com (API audience follow-up), outlook.office365.com (mail follow-up, Exchange admin API), <server>.database.windows.net:1433 (settings follow-up)

How it runs

Part of the PIM Manager release - not a standalone download; it runs via the product's own install command or the updater.

Release 3.0.70

Every script, identity and permission for your security review: PIM Manager

InvardiaInvardia

See the risk. Control the access.

Products

PIM ManagerSecurityInsightEntra Policy SuiteAll featuresPricingFree 60-day Pro trialBook a demoWhy Invardia

Docs

DocumentationSearch the docsPIM Manager settingsSecurityInsight settingsPIM network guidesCommand wizardNetwork egressPIM Manager design configuratorSecurityInsight design configuratorDesign your installationCalculate your cost

Company

AboutContactCustomer portalSupportHow support worksHow updates reach youSupport in numbersSetup scriptsRemote support accessContact: info@invardia.com

Legal

Terms of saleLicence termsData processingPrivacyCookiesCompany information
© 2026 Invardia – a brand of 2LINKIT, founded and owned by Morten Knudsen · Strandvejen 21A, 6000 Kolding, Denmark · VAT DK39208032 · Contact: info@invardia.com