Windows では、ユーザー名とパスワードを入力する通常のログインを行わずに、NTLM プロトコルを使用して Windows からの資格情報を直接使用して、Web ブラウザーから Web サーバーにログインできると聞きました。
これはどのように達成されますか?Web サーバーは追加の認証をサポートする必要がありますか?
更新: IIS だけでなく、一般的な Web サーバーを求めています。たとえば、Apacheでそれを行う方法は?
Windows では、ユーザー名とパスワードを入力する通常のログインを行わずに、NTLM プロトコルを使用して Windows からの資格情報を直接使用して、Web ブラウザーから Web サーバーにログインできると聞きました。
これはどのように達成されますか?Web サーバーは追加の認証をサポートする必要がありますか?
更新: IIS だけでなく、一般的な Web サーバーを求めています。たとえば、Apacheでそれを行う方法は?
Web サーバーは、Windows 認証をサポートするように構成する必要があります (クライアントとサーバーの両方が W2K 以降の場合は、NTLM またはより良い - Kerberos)。IIS または Apache を構成して、それを行うことができると思います。
ブラウザもこれをサポートする必要があります-少なくともIEはサポートしています(他のブラウザについては不明ですが、可能かもしれません)。編集:Firefoxもこれをサポートしているようで、MacOSのサファリは
編集: apache の詳細については、NTLM 認証用の Google モジュールを参照してください。Kerberos モジュールも存在します。他の回答によると、これは実際にはイントラネットでのみ機能します-ブラウザーがイントラネットゾーンにある必要があるため (IE にのみ適用される) だけでなく、介在するファイアウォールが通常この機能を停止し、必要なドメイン間の信頼がおそらく存在しません。また、Apache サーバーが UNIX 上にある場合、特に UNIX 上に Kerberos サーバーが混在している場合、動作させるのは少しトリッキーですが、それでも可能です。
特定の状況でのみシームレスになります。つまり、Web サーバーは NTLM (IIS など) をサポートする必要があり、クライアントが信頼するように構成されているゾーン (エンド ユーザーが設定を微調整しない限り、IE 用語では「イントラネット ゾーン」) にある必要があります。
Web サーバーとクライアント PC が Active Directory などで保護されたネットワーク上にある場合、すべての IE クライアント (許可されている) に自動的にログインする Web サーバーの Web サーバーの IIS で「Windows 統合セキュリティ」を設定できます。
前述のように、NTLMは通常、バックエンドがWindowsマネージド(MS Active Directory)の場合に使用されます。ただし、これに関連するApacheで使用可能なモジュールもあります:mod_ntlm。
これは独自のプロトコルであるため、ブラウザがこのプロトコルを理解し、認証の課題に応答できる必要があります。どのブラウザがこれをすぐにサポートするかはわかりませんが、ほとんどのブラウザがサポートしていると思います。
私の経験から、ケルベロスはより好ましい方法ですが、私はそれをあまり使用していません。そのため、残念ながら、それに関する限り、あまりアドバイスはありません。
ちなみに、JREには、認証されたユーザーのID情報を取得するために、Webサーバー上のNTLMに接続する方法もあることをどこかで読んだことを思い出します。前述のように、.NETはこれもサポートしています。
また、FirefoxはデフォルトでNTLMをサポートしていませんが、次のtutを使用して構成できます。http://www.crossedconnections.org/w/?p=89
はい、これは可能です。これは、ユーザーがいるイントラネットアプリケーションでよく使用されます。Windowsは、NTLMまたはKerberosを使用して、中央サービス(通常はWindowsプラットフォーム上のActive Directory )に対してユーザーを承認します。.NETプラットフォームでは、 System.Threading.Thread.CurrentPrincipal.Identityインスタンスを介して現在のユーザー情報にアクセスできます。
Kerberos に関する詳細情報を探していました (NTLM は v2 でさえ AD 2008 で廃止されるため)、Apache で動作させる方法を説明するこの記事を見つけました (あなたが言及したように)。 http://blog.scottlowe.org/2006/08/10/kerberos-based-sso-with-apache/
この質問はおそらく時代遅れです(または少なくとも解決されています)が、誰かを助けることができれば...
認証を要求するように IIS 設定を設定した場合、ユーザーはページにアクセスするためにログインする必要があります。次に、通常の方法で (コンソールから) ログインした場合と同じように、そのサーバー上のあらゆるものに対して (インターフェースではないにしても) あらゆる権利を持ちます。
これ以外は、あなたが何を指しているのかわかりません。
Jespa も調べてみてください。Kerberos よりも少し単純に見えますが、優れた ntlm sso 機能を提供します。