<前提>
本記事は、Office製品などのユーザー向けアプリではなく、Azure Web Appsでデプロイされたアプリなど、システム側・バックエンド側のアプリが他のサービスやAPIとやり取りする場面を対象にしています。
また、Microsoft製品(Microsoft Entra ID など)を例に説明します。
<回答>
アプリにユーザーのIDとパスワードを直接入力して認証(アクセストークンを取得)する方式は「ROPCフロー」と呼ばれますが、現在はセキュリティリスクが高いため推奨されていません。
主な理由は次のとおりです。
・ユーザーID/パスワードが入力・保管・送信の過程で漏えいすると、第三者による不正アクセスにつながる
・多要素認証(MFA)や条件付きアクセスなどの保護機能と両立しない/制約が多く、脆弱性が高い(Microsoft Entra IDのROPCはMFAをサポートしていません)
推奨される代替策を以下に例示します
1. Client Credentials を使い、ユーザーではなく「アプリ自身の身分証(クライアントシークレットや証明書)」でトークンを取得し、通信先へのアクセス許可を得る
2. マネージドIDを有効化し、Azureがそのアプリ専用の身分証を自動管理する仕組みを使う
なお、上記1と2を比較すると、2(マネージドID)のほうが安全で運用負荷も低くなります。

(←参考になった場合はハートマークを押して評価お願いします)