現在、以下の状況です。
まず、Web アプリケーションがあり、ユーザーが Web アプリケーションにログインする必要がある場合、ユーザーは自分のアカウントのユーザー名とパスワードを提供します。
ユーザー名とパスワードは、次のコードを使用して AD で認証されます。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.DirectoryServices;
using System.DirectoryServices.AccountManagement;
namespace Access
{
public partial class Login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, txtboxDomain.Text))
{
bool isValid = pc.ValidateCredentials(txtboxUsername.Text, txtboxPassword.Text);
if (isValid == true)
{
lblLogin.Text = "VALID";
Session["Person"] = txtboxUsername.Text;
Session.Timeout = 1;
}
else
{
lblLogin.Text = "INVALID";
}
}
}
}
}
しかし、同僚 'A' は、上記の方法はまったく安全ではないと述べています。
彼女が提供する理由は次のとおりです。
- IIS には SSL セットアップはありません。
- IIS に SSL セットアップがない場合でも、少なくとも IT 部門のセキュリティ DLL ファイルを使用して認証方法を提供してください。
しかし、別の同僚 'B' は彼女の答えを疑っており、コードは Active Directory (AD) に対して認証されるため、確実に安全であり、Web アプリケーションが存在する IIS で SSL をセットアップする必要はない、と述べています。がホストされています。
また、彼は、IT 部門のセキュリティ DLL ファイルは追加の安全性を提供しない可能性があると彼女に話しました。これは、第一に、これはクローズド ボックスであり、第二に、認証方法のコーディングの必要性を減らすだけだと考えているためです。
では、同僚 A がどの程度正しいか、同僚 B がどの程度正しいかを知ることができますか?