開発するアプリで FIDO2 キーを使用してパスワードレス認証をサポートする
これらの構成とベスト プラクティスは、アプリケーションのユーザーが FIDO2 パスワードレス認証を利用できない一般的なシナリオを回避するのに役立ちます。
ホーム領域検出をバイパスするには、ドメイン ヒントを使用しないでください。 この機能は、サインインの効率を向上させることを目的としていますが、フェデレーション ID プロバイダーがパスワードレス認証をサポートしていない可能性があります。
SAML を使用している場合は、RequestedAuthnContext 要素を使用してパスワードが必要であることを指定しないでください。
RequestedAuthnContext 要素は省略可能であるため、この問題を解決するために SAML 認証要求から削除できます。 これは一般的なベストプラクティスです。この要素を使用すると、多要素認証などの他の認証オプションが正常に機能しなくなる可能性があります。
ユーザーによって最近使用されたサインイン方法が最初に表示されます。 このため、ユーザーが最初に提示されたオプションを使用しなければならないと考えたときに混乱が生じる可能性があります。 ただし、次に示すように、[その他のサインイン方法] を選択すると、別のオプションを選択できます。
認証を実装するための推奨されるオプションは、順番に次のとおりです。
- Microsoft Authentication Library (MSAL) を使用する .NET デスクトップ アプリケーションでは、Windows Authentication Manager (WAM) を使用する必要があります。 この統合とその利点については、GitHub 上のドキュメントをご覧ください。
- WebView2 を使用して、埋め込みブラウザーで FIDO2 をサポートします。
- システム ブラウザーを使用します。 デスクトップ プラットフォーム用の MSAL ライブラリでは、この方法を既定で使用します。 使用するブラウザーが FIDO2 認証をサポートしていることを確認するには、FIDO2 ブラウザーの互換性に関するページを参照してください。
FIDO2 は、ASWebAuthenticationSession またはブローカー統合で MSAL を使用するネイティブ iOS アプリでサポートされています。 ブローカーは、iOS の Microsoft Authenticator と macOS の Microsoft Intune ポータル サイトで出荷されます。
ネットワーク プロキシが Apple による関連ドメイン検証をブロックしていないことを確認します。 FIDO2 認証では、Apple の関連ドメイン検証が成功する必要があります。これには、特定の Apple ドメインをネットワーク プロキシから除外する必要があります。 詳細については、「エンタープライズ ネットワークでの Apple 製品の使用」を参照してください。
ネイティブ Android アプリの FIDO2 サポートは現在開発中です。
MSAL を使用していない場合でも、認証にはシステム Web ブラウザーを引き続き使用する必要があります。 シングル サインオンや条件付きアクセスなどの機能は、システム Web ブラウザーによって提供される共有 Web サーフェスに依存します。 つまり、Chrome カスタム タブが使用されたり (Android)、Web サービスを使用してユーザーが認証 (Apple 開発者ドキュメント) されたり (iOS) するということです。
Web ブラウザーで実行されるアプリケーションに対して FIDO2 パスワードレス認証を利用できるかどうかは、ブラウザーとプラットフォームの組み合わせによって異なります。 FIDO2 の互換性マトリックスを参照して、ユーザー側で発生する組み合わせがサポートされているかどうかを確認できます。