|
| 1 | +--- |
| 2 | +title: Support passwordless authentication with FIDO2 keys in apps you develop | Azure |
| 3 | +titleSuffix: Microsoft identity platform |
| 4 | +description: This deployment guide explains how to support passwordless authentication with FIDO2 security keys in the applications you develop |
| 5 | +services: active-directory |
| 6 | +author: knicholasa |
| 7 | + |
| 8 | +ms.service: active-directory |
| 9 | +ms.subservice: develop |
| 10 | +ms.topic: reference |
| 11 | +ms.workload: identity |
| 12 | +ms.date: 1/29/2021 |
| 13 | +ms.author: nichola |
| 14 | +# ms.reviewer: |
| 15 | +ms.custom: aaddev |
| 16 | +# Customer intent: As a developer, I want to know how to support FIDO2 authentication in my apps |
| 17 | +--- |
| 18 | + |
| 19 | +# Support passwordless authentication with FIDO2 keys in apps you develop |
| 20 | + |
| 21 | +To ensure that the [FIDO2 passwordless authentication](../../active-directory/authentication/concept-authentication-passwordless.md) is available to users of your applications, use these app and platform configurations. |
| 22 | + |
| 23 | +## General app configuration |
| 24 | + |
| 25 | +**Home-realm discovery and domain hints** |
| 26 | + |
| 27 | +Don't use a domain hint to bypass [home-realm discovery](../../active-directory/manage-apps/configure-authentication-for-federated-users-portal.md). This feature is meant to make sign-ins more streamlined, but the federated identity provider may not support passwordless authentication. |
| 28 | + |
| 29 | +**Requiring specific kinds of credentials** |
| 30 | + |
| 31 | +If you are using SAML, do not specify that a password is required [using the RequestedAuthnContext element](single-sign-on-saml-protocol.md#requestauthncontext). |
| 32 | + |
| 33 | +The RequestedAuthnContext element is optional, so to resolve this you can remove it from your SAML authentication requests. This is a general best practice, as using this element can also prevent other authentication options like multi-factor authentication from working correctly. |
| 34 | + |
| 35 | +**Changing from the most recently used authentication method** |
| 36 | + |
| 37 | +The sign in method that was most recently used by a user will be presented to them first. This may cause confusion when users believe they must use the first option presented. However, they can choose another option by selecting "Other ways to sign in" as shown below. |
| 38 | + |
| 39 | + |
| 40 | + |
| 41 | +## Platform specific guidance |
| 42 | + |
| 43 | +**Desktop best practices** |
| 44 | + |
| 45 | +The recommended options for implementing authentication are, in order: |
| 46 | + |
| 47 | +- .NET desktop applications that are using the Microsoft Authentication Library (MSAL) should use the Windows Authentication Manager (WAM). This integration and its benefits are [documented on GitHub](https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/wiki/wam). |
| 48 | +- Use [WebView2](https://docs.microsoft.com/microsoft-edge/webview2/) to support FIDO2 in an embedded browser. |
| 49 | +- Use the system browser. The MSAL libraries for desktop platforms use this method by default. You can consult our page on FIDO2 browser compatibility to ensure the browser you use supports FIDO2 authentication. |
| 50 | + |
| 51 | +**Mobile best practices** |
| 52 | + |
| 53 | +As of February 2020, FIDO2 is not currently supported for native iOS or Android apps, but it is in development. |
| 54 | + |
| 55 | +To prepare applications for its availability, and as a general best practice, iOS and Android applications should use MSAL with its default configuration of using the system web browser. |
| 56 | + |
| 57 | +If you are not using MSAL, you should still use the system web browser for authentication. Features such as single sign-on and conditional access rely on a shared web surface provided by the system web browser. This means using [Chrome Custom Tabs](https://developer.chrome.com/docs/multidevice/android/customtabs/) (Android) or [Authenticating a User Through a Web Service | Apple Developer Documentation](https://developer.apple.com/documentation/authenticationservices/authenticating_a_user_through_a_web_service) (iOS). |
| 58 | + |
| 59 | +**Web App and SPA best practices** |
| 60 | + |
| 61 | +The availability of FIDO2 passwordless authentication for applications that run in a web browser will depending on the combination of browser and platform. You can consult or FIDO2 compatibility matrix to check if the combination your users will encounter is supported. |
| 62 | + |
| 63 | +## Next steps |
| 64 | + |
| 65 | +[Passwordless authentication options for Azure Active Directory](../../active-directory/authentication/concept-authentication-passwordless.md) |
0 commit comments