A cloud-based identity and access management service for securing user authentication and resource access
Unfortunately, AFAIK, there is no native Entra ID method that guarantees a worker can sign in to a Power Apps session using only a card tap, without a PIN, biometric gesture, or other required authentication step. Entra certificate-based authentication and FIDO2 security keys support different authentication configurations, so it is too broad to say that both always require a PIN. The credential type, security configuration, and device determine what interaction is required. A FIDO2 security key may offer a fast authentication experience, but there is no guaranteed sign-in time, and the complete authentication flow can exceed your 1–2-second target. The only reliable way to establish whether an individual sign-in meets that target is to test the actual devices, credentials, browser or Power Apps player, and Conditional Access configuration in your environment.
For your shop-floor scenario, a shared station session with rapid card-based worker identification is the more practical architecture. Keep the station signed in under a dedicated account and use the card reader to identify the worker inside the app. This avoids repeatedly authenticating each worker to Entra ID and is better suited to a high-throughput workflow.
This approach can comply with Power Platform licensing, provided every worker who uses the app is properly licensed for the app and its Dataverse usage. Microsoft’s multiplexing rules prevent shared accounts or intermediary systems from reducing licensing requirements. Individual worker licenses can satisfy those requirements, but the exact position should be confirmed against your licenses and deployment model. A shared session does not make each worker an authenticated Entra ID user, and Dataverse's native Created By and Modified By fields will identify the shared account for operations performed through that account.
One potential implementation is to use a USB RFID or proximity-card reader in keyboard-emulation mode. When a worker taps their card, the reader enters the badge ID into a focused text input and sends Enter. The canvas app looks up that ID in a Dataverse Workers table, sets a CurrentWorker variable, resets the input, and returns focus to it. For example, the input's OnChange property could contain:
Set(
CurrentWorker,
LookUp(
WorkersTable,
CardID = TextInput_CardReader.Text
)
);
Reset(TextInput_CardReader);
SetFocus(TextInput_CardReader);
The input shoudl be available to receive the reader's keystrokes - a hidden or unfocusable control will not likely work reliably. Test the reader's Enter behavior and focus handling on the actual station device. A Dataverse lookup may be fast, but a sub-0.5-second response is not guaranteed, so measure the complete tap-to-ready time under realistic network and workload conditions.
When a worker completes a step, store a Dataverse lookup to the worker record, the completed step, and a timestamp generated using a consistent server-side approach where audit accuracy matters. Do not use User().Email to identify the worker, because that function returns the shared station account's identity. Also note that recording a badge ID establishes application-level attribution, not strong authentication: a borrowed or copied card could be used by someone else. If that risk is acceptable for your workflow, the shared-session design offers the most direct route to meeting the 1–2-second target without requiring individual sign-ins for every worker.
If the above response helps answer your question, remember to "Accept Answer" so that others in the community facing similar issues can easily find the solution. Your contribution is highly appreciated.
hth
Marcin