現在、バックエンドを開発していますREST APIは少数のMVCアプリケーションで使用されます。この場合、サーバー間通信のみについて話しているため、ユーザーが直接APIを使用することはありません。環境は純粋にWindows Server上にあり、現時点ではActive Directoryを使用する計画はありません。
すべてがhttpsを介して行われることを考慮して、現時点では(基本/ベアラを介した)クライアント証明書またはトークンベースの認証のいずれかを考慮します。
これらのアプローチの両方で、多くの長所と短所が浮かび上がります。私は本当にあなたの助けを確認し、修正し、場合によってはそれらを補完してほしいと思います。
私はいくつかの重要なものを忘れてしまったと確信しています。どんな種類の入力にも感謝します。
さらに、どのアプローチより上のスコープを選択した場合、どのアプローチを選択しますか?
私のアドバイスは、フロントエンドサーバーとバックエンドサーバーの間の認証について心配するのではなく、それらの間に安全なチャネルをセットアップすることです。アーキテクチャの観点から見ると、これはそれらすべてのサーバーを同じセキュリティゾーンに設定し、バックエンドへの外部アクセスを防ぐことを意味します。その後、1つのフロントエンドサーバーがバックエンドにリクエストを送信すると、ユーザーIDが渡されるだけで、バックエンドはそれを信頼します。これは、リクエストが信頼できるサーバーからしか送信できないためです。
これは中規模から大規模の計算センターでは一般的です。ユーザー認証はMVCサーバーによって行われるか、リバースプロキシによるX509証明書認証の場合に行われます。他のサーバーは、最初のサーバーがリクエストに入力した内容を信頼します認証。