- PR -

ASP.NETでクライアントのActive Directoryアカウントを取得したい

1
投稿者投稿内容
mit
会議室デビュー日: 2005/06/19
投稿数: 6
投稿日時: 2008-10-19 18:09
はじめまして、
現在大学の研究室で文書管理サーバを構築しようとしています。

■概要と、現在までにできていること
この文書管理サーバはLANからも外部からもアクセスを想定していて、
外部からのアクセスにはユーザ認証を設けてあります。
もともと研究室内ネットワークがActive Directory環境下にあるので、
System.DirectoryServicesを利用して、外部からのユーザが
このActive Directoryにおけるユーザであるかどうかの認証機能を作りました。

■やりたいこと、考えていること
外部アクセスに対してはセキュリティ上どうしてもユーザ認証が必要で、
さらにユーザ情報は文書データベースへのアクセス管理のためにも使いますので
ローカルからのアクセスであっても各ユーザを識別したいのです。
しかし、LANからはできるだけ各ユーザのアカウントをサーバ側で自動認識することで
このアカウント情報入力ステップを飛ばしたいと考えています。ですがこの方法がわかりません。
最悪スキップできなくても使えなくはないのですが、不便だと言われそうで。。。

■↑が可能だと思っている根拠
あまり詳しくはないのですが、同じく研究室で立てているSharePointサーバアプリケーションは
クライアントのドメインアカウントを正しく識別しています。
# アクセスしたときに、特に認証とかしなくてもユーザ名が自動的に表示されています。
ということは、少なくともASP.NETに上記のような技術が存在するということではないでしょうか?
サーバ側でクライアントの情報を吸い上げることになるので、「お行儀の悪い」システムになりそうですが。

■開発環境
・ Windows Server 2003
・ Visual Studio 2008, .NET Framework3.5

以上、不勉強のため色々とわかりづらいところもあるかもしれませんが、
アドバイスなど宜しくお願いします。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2008-10-20 10:48
http://msdn.microsoft.com/ja-jp/library/330a99hc.aspx
ここからたどれる情報が参考になると思います。

具体的にはIISでWindows認証を行うようにしておいて、ASP.NET側もそのままWindows認証を利用するようにしておくと、クライアント側がドメインにログインしている場合はそのアカウントが利用されるようになるかな。
http://msdn.microsoft.com/ja-jp/library/907hb5w9.aspx

Windowsでのユーザ管理の仕組み、IISの認証の仕組み、ASP.NETの認証/承認の仕組みを理解する必要があります。
特にWindowsのユーザ管理、IISの管理についての情報をきちんと調べてみることをおすすめします。
mit
会議室デビュー日: 2005/06/19
投稿数: 6
投稿日時: 2008-10-20 15:32
> どっとねっとふぁん 様
ありがとうございます。
教えていただいたページをもとに、IISとASP.NETの認証部分を以下の通り設定すると
うまくいきました。
・IIS側:フォルダのプロパティ→ディレクトリセキュリティ→認証とアクセス制御→統合Windows認証をチェック
・ASP.NET側:Web.configで以下の二つを追加
<system.web>
 <authentication mode="Windows"/>
<identity impersonate="true"/>
</system.web>

大変勉強になりました。ありがとうございます!
1

スキルアップ/キャリアアップ(JOB@IT)