ユーザーがAzure ADアカウントを介して認証する必要があるアプリを開発しています。ログイン画面を含む、ブランド化されたカスタムUIを顧客が希望している。 Azure AD認証の現在のライブラリはMSAL.jsです。このライブラリを使用する場合の推奨フローは、ユーザーがMicrosoftログインページにリダイレクトされ(FacebookまたはGoogle認証サービスにアクセスするのと同じように)、ユーザーがまだログインしていない場合はそこにパスワードを入力する必要があります。
this によると、可能ですが安全ではないか、カスタムログイン画面でユーザーにパスワードを要求することはお勧めできません。しかし、アプリがパスワードを保存せず、通信を暗号化してトークンを取得することを前提として、アプリに直接入力するのではなく、Microsoftサインインポータル(またはGoogle、FBなど)にパスワードを入力するようにユーザーに依頼する方が安全なのはなぜですか? ?
本当に安全ですか?あんまり。実際、アプリが完璧であるか、ブラウザよりも徹底的にテストおよびレビューされている場合はログインスクリプトの部分であれば、技術的には安全です。アプリは正しく記述されていると思いますが、テストとレビューのポイントはどうですか?
ここで最も重要な点は攻撃面です。ユーザーはブラウザーを介してパスワードを提供する必要があるため、ブラウザーに対する攻撃は、パスワードをキャプチャするための可能な手段です。ただし、パスワードを要求する他のアプリの場合は、別の攻撃の可能性があります。
もう1つのポイントはユーザー教育です。セキュリティの専門家は、パスワードは非常に機密性の高いデータであり、よく知られていて安全に識別されたサービスにのみ与えるべきであることをユーザーに教育するように努めています。ブラウザはよく知られたベクターです。アプリが使用できるかどうかは、その使用方法に依存します。ユーザーが使用する頻度が高いほど、最適な候補です。
ですから、古き良きコスト/ベネフィット比が残ります。アプリにパスワードを管理させるための追加機能またはより優れたUI要素は何ですか?表面的な攻撃の増加とユーザーが別の画面でパスワードを入力するように強調することのバランスをとっていますか?答えが「はい」の場合は、続行してください。そうでなければご遠慮ください。
これによると、カスタムログイン画面でユーザーにパスワードを要求することは可能ですが、安全ではなく、お勧めできません。
眉をひそめられる主な理由は、ユーザーがそれぞれのWebサイト以外の場所でパスワードを入力する習慣を身に付けたくないためです。悪意のあるWebサイトがあなたのGoogleパスワードを要求する可能性があり、常用ユーザーはそれをそれら
アプリがそれを保存せず、通信を暗号化してトークンを取得すると仮定しますか?
確かに、あなたのアプリはそうではないかもしれませんが、ユーザーが元のWebサイトでパスワードを入力することを一日の終わりにして、パスワードを保存していないことを証明する方法はありません。仕様は、フィッシングサイトを抑制する方法ですこれはユーザーにGoogleパスワードを要求し、ユーザーが習慣に入るとインターネットのセキュリティを弱めます
これはPassword Anti-Patternであり、かなり広く使用されていました。
たとえば、LinkedInはTwitterのパスワードを要求し、ツイートをLinkedInに投稿できるようにします。
パスワードのベストプラクティスに反するため、最近ではあまり一般的ではありません。資格情報を任意のアプリケーションだけに共有しないようにしたいと思います(これがフィッシングの方法です)。
アプリのユーザーの観点から、彼らは心配するかもしれません:
パスワードを変更する以外に、サードパーティアプリからのアクセスを取り消す簡単な方法はありません。
サードパーティが資格情報を保護しているかどうかを心配する必要があります。
そのアクセスは特定のアクティビティに限定されていますか、それともあなたの資格情報はサードパーティにあなたのアカウントへのフルアクセスを与えますか
この問題が理由の1つですOAuthが発明され、解決しようとしています。ユーザーの資格情報はサードパーティのアプリと共有されないので、ユーザーにとってはsaferです。これらの資格情報を信頼する場合としない場合があります。また、ユーザーの認証情報を保護する負担から解放されるため、サードパーティアプリにも適しています。
誰にとっても安全です。
まず、それはあなたに追加の機能を提供します...たとえば、fb loginを使用する場合、たとえば、プロファイルの写真を取得できます...次に、サービスセキュリティメソッドに依存しています。で... 3番目に、アプリをよりユーザーフレンドリーにします...このサービスの短所は、ハッキングされ、多くのユーザーの情報が漏洩することです...アプリも侵害されます。あなたがカスタムログインを使用する場合、あなたはそれをより良くも悪くもすることができます...それはあなたのセキュリティ能力に依存します