ディレクトリサービスを使用するWindowsオペレーティングシステムで、自分のアプリケーションのユーザー名とパスワードを認証したいと考えています。たとえば、Microsoft Active Directory、Novell eDirecotry、またはSunOneなどです。私はすでにC#でMicrosoft Active Direcotryのためにネイティブにこのコードを実行する方法を知っています。 (私は完全にADSIを使用して低レベルのCOMコンポーネントを作成しました).NETでLDAPを認証する方法
ノベルのeDirecotoryで認証しようとする方法は、私はMonoプロジェクトをインストールしています。モノプロジェクトの中でNovell.Directory.ldap.dllを提供しています。コードはMicrosoft Active Directoryの場合と同じです(http://www.novell.com/coolsolutions/feature/11204.html)
SunOneの場合、私はアクティブディレクトリと同じコードを使用するよう指示されています。しかし、LDAPのconnecton文字列は少し異なっている(http://forums.asp.net/t/354314.aspx) (http://technet.microsoft.com/en-us/library/cc720649.aspx)
私のプロジェクトを複雑にするには、ほとんどの顧客は、「サービスアカウント:」を使用。私ができる前に、私は管理者のユーザー名とパスワードでバインドする必要があることを意味通常のユーザー名とパスワードを認証します。私の質問は2つの部分に分かれています。
1)私が上で説明したことから、これは、個々のディレクトリサービスに対して認証するべき正しい方向ですか?
2)私はこのコードを一切行う必要はないと感じています。私はまた、サービスアカウントを使用するという規定はまったく重要ではないと感じています。私が心配しているのは、Windowsマシン上でユーザー名とパスワードを認証することだけですが、なぜLDAPを使用する必要があるのでしょうか?私はそれについて考えるのです。午前中にマシンにログインすると、ログインするだけでサービスアカウントを提供する必要はありません。私は簡単にrunas機能を使用してDOSプロンプトでユーザー名とパスワードを認証することができます。私は拒否され、テキストファイルを解析することができます。確かに私はあなたのユーザー名とパスワードがWindows上で動作しているドメインに対して有効であるかどうかを教えてくれるWindowsオペレーティングシステムにユーザー名とパスワードを渡すことができます。私は正しい?もしそうなら、どんな提案方法がありますか?
マイケルEvanchik www.MikeEvanchik.com
上記の前提は、Microsoft ADのみであり、LDAPを使用しています。コードをありがとう。私の質問は普遍的な方法であり、おそらくLDAPを使用しない場合があります。これは、LDAPサーバーの中にはサービスアカウントのユーザー名とパスワードが必要なためバインドするだけなので、正規ユーザーの認証を試みることさえできます。 –
これは私が提案しているのですが、ログインしたユーザーの資格情報(ユーザー名とパスワードを要求していると仮定して)をサービスアカウントとして使用します。少なくとも、自分のアカウントを照会して見ることができるはずです。それが動作すれば、認証が機能することがわかります。それは、パスワードが正しいかどうかを確認するためのかなり普遍的な方法のようです。 – Hugoware