Blog Post

Microsoft Entra Blog
4 MIN READ

Public preview: Microsoft Entra ID FIDO2 provisioning APIs

Alex Weinert's avatar
Alex Weinert
Icon for Microsoft rankMicrosoft
Aug 07, 2024

Today I'm excited to announce a great new way to onboard employees with admin provisioning of FIDO2 security keys (passkeys) on behalf of users.

 

Our customers love passkeys as a phishing-resistant method for their users, but some were concerned that registration was limited to users registering their own security keys. Today we’re announcing the new Microsoft Entra ID FIDO2 provisioning APIs that empowers organizations to handle this provisioning for their users, providing secure and seamless authentication from day one.

 

While customers can still deploy security keys in their default configuration to their users, or allow users to bring their own security keys which requires self-service registration by a user, the APIs allow keys to be pre-provisioned for users, so users have an easier experience on first use.

 

Adopting phishing-resistant authentication is critical - attackers have increased their use of Adversary-in-the-Middle (AitM) phishing and social engineering attacks to target MFA-enabled users. Phishing-resistant authentication methods, including passkeys, certificate-based authentication (CBA), and Windows Hello for Business, are the best ways to protect from these attacks.

 

Phishing-resistant authentication is also a key requirement of Executive Order 14028 which requires phishing-resistant authentication for all agency staff, contractors, and partners.  While most federal customers use preexisting smartcard systems to achieve compliance, passkeys provide a secure alternative for their users looking for improved ways to securely sign in. With today’s release of admin provisioning, they also have a simplified onboarding process for users.

 

With the Microsoft Entra ID FIDO2 provisioning APIs organizations can build their own admin provisioning clients, or partner with one of the many leading credential management system (CMS) providers who have integrated our APIs in their offerings.

 

Tim Larson, Senior Product Manager on Microsoft Entra, will now walk you through this new capability that will help in your transition towards phishing-resistant multifactor authentication (MFA).    

 

Thanks, and please let us know your thoughts!

 

Alex Weinert

 

--

 

Hello everyone,

 

Tim here from the Microsoft Entra product management team. I’m excited to share with you our new passkey (FIDO2) provisioning capabilities in Entra ID!

 

Back in May we shared how we’re expanding passkey support in Microsoft Entra ID with the addition of device-bound passkey support in Microsoft Authenticator. As part of our commitment to provide more passkey capabilities we’ve enhanced our passkey (FIDO2) credential APIs to make onboarding security keys for users more convenient.

 

How does it work?

 

With the enhancements made to our passkey (FIDO2) credential APIs you can now request WebAuthn creation options from Entra ID and use the returned data to create and register passkey credential on behalf of a user.

 

To simplify this process, three (3) main steps are required to register a security key on behalf of a user.

 

 

 

  1. Request creationOptions for a user: Entra ID will return the necessary data for your client to provision a passkey (FIDO2) credential. This includes information like user information, relying party, credential policy requirements, algorithms, and more.
  2. Provision the passkey (FIDO2) credential with the creationOptions: Using the creationOptions utilize a client or script which supports the Client to Authenticator Protocol (CTAP), to provision the credential. During this step you’ll need to insert a security key and set a PIN.
  3. Register the provisioned credential with Entra ID: Utilizing the output from the provisioning process, provide Entra ID with the necessary data to register the passkey (FIDO2) credential for the targeted user.

 

Build your own app or use a CMS vendor offering

 

In addition to providing the tools above, Microsoft has also collaborated with 10 leading vendors in the CMS space to integrate the new FIDO2 provisioning APIs. These vendors have rigorously tested and are fully knowledgeable in the new APIs, and are available to help you in your provisioning journey if creating your own integration isn’t something you want to do.

 

This partnership underscores our commitment to delivering a secure and interoperable ecosystem for our customers. These vendors represent a diverse range of CMS solutions, each bringing unique insights and expertise to the table. Their involvement has been instrumental in ensuring that the APIs are robust, versatile, and ready for real-world challenges.

 

As we roll out the public preview, we are proud to announce that these vendors have pledged their support, integrating the APIs into their platforms. This collaboration not only enhances the security landscape but also paves the way for seamless adoption across various industries.

 

 

 

What’s next?

 

This public preview is the next step in our passkey journey and we’re gearing up for even more passkey (FIDO2) provisioning features. We’re looking forward to building provisioning capabilities into the Entra admin center which will empower help desk and other admins the ability to directly provision FIDO2 security keys for users.

 

To learn more about everything discussed here, check out how to enable passkeys (FIDO2) for your organization and review our Microsoft Graph API documentation. Reach out to your preferred CMS provider to learn more about their integrations with the Microsoft Entra ID FIDO2 Provisioning APIs.

 

Thanks,

Tim Larson

 

 

Read more on this topic 

 

Learn more about Microsoft Entra  

Prevent identity attacks, ensure least privilege access, unify access controls, and improve the experience for users with comprehensive identity and network access solutions across on-premises and clouds. 

 

Updated Aug 01, 2024
Version 1.0
  • Chris_Clark_NetrixYou are right. The CTAP 2.1 protocol actually supports an extension called forceChangePin. As the specification is relatively new, only the latest hardware revisions of security keys on the market actually support this capability. AFAIK, neither Windows API nor browsers support this extension yet, which means that vendor-provided tooling needs to be used to force PIN change on next key use.

  • MikeCrowley's avatar
    MikeCrowley
    Iron Contributor

    Laurie_Aldam, from the article:

     

    We’re looking forward to building provisioning capabilities into the Entra admin center which will empower help desk and other admins the ability to directly provision FIDO2 security keys for users.




  • Fantastic!  Would best practice be to have the admins set the PIN on the FIDO2 key and then have the end user change it after first login or shortly after? 

  • hapskiA single key can indeed contain multiple passkeys, from the same or different Entra ID tenants. The exact capacity depends on the specific model, but the limit is usually 128 or 256 passkeys. Physical access to the FIDO2 key is required during the registration process, as information about the passkey, including the username and domain (relying party), is written to it.

  • Laurie_Aldam's avatar
    Laurie_Aldam
    Copper Contributor

    Are there any plans to make similar functionality available through the Entra Admin Center?

  • aseigler's avatar
    aseigler
    Brass Contributor

    Any particular reason why RS256 is a supported pubKeyCredParams option but Ed25519 is not? Especially since authenticatorSelection.authenticatorAttachment is cross-platform?

  • RRAJH's avatar
    RRAJH
    Copper Contributor

    Good feature. 

     

    "Provision the passkey (FIDO2) credential with the creationOptions"

     

    As I understand "create and register passkey credential on behalf of a user" implies possessing the security keys of all the users  if the authenticator is an eternal security key . Correct ? Can you register multiple credentials for an user using this approach ?

     

    How about admin deprovisioining FIDO2 Security keys in bulk ?

     

    Thanks

     

  • RRAJHAdmin deprovisioning (deletion from Entra ID) of keys can already be done using the generally available Graph API.

    And yes, a user can have multiple Passkeys (primary YubiKey, backup YubiKey, iPhone,...), which is common especially with Global Admins. But some orgs prefer when each regular user only has a single Passkey, so that if they loose it, they need to contact IT.

  • hapski's avatar
    hapski
    Copper Contributor

    Is it in any way possible to register one specific known fido2 key to multiple users, without physical access to that key?