SlideShare a Scribd company logo
.NET とディレクトリサービス
ショッカーとホリエモンに学
ぶ、
M&A 時代の組織管理手法
(w
中村良幸 ( a.k.a. なかよし)
今日の概要
• 私の自己紹介
• ディレクトリサービスについて
• LDAP, Active Directory, ADSI について
• .NET と System.DirectoryServices について
• 実際のプログラムの説明
• メタディレクトリと組織管理の諸問題
• これからの展望、その他
私は何者か?
• …私は 「ただのサラリーマン」です。
(w
• 昔はずっと Unix (or Linux) を使ってました
。
• …以前、やっていたことを紹介すると
– 津波シミュレーション等の数値計算
– 津波アニメーション等の三次元グラフィック
ス
– お役所向けの大量の報告書作成
• …今は 「 IT 何でも屋」です。
Windows の思い出
• …昔の話で恐縮ですが
– 4GL の統合 CASE ツール開発プロジェクトで
、 IL( 中間言語 ) のデバッガーを作っていまし
た。
– カバレージ機能部分を担当していたのですが
…
– Windows95 は、一日に 10 回以上落ちました
。
– NT は安定していると聞いて、 WindowsNT4.0
(SP1?) にしましたが、それでも良く落ちまし
た。
私が .NET に興味を持ったのは
…
• arton さんの本 (Ruby を 256 倍楽しむ本邪
道編 ) で、初めて .NET というものを知り
ました。
• アンダース・ヘルスバーグ (Anders
Hejlsberg) 氏がチーフアーキテクトである
と知りました。
– Turbo Pascal, Delphi (Borland 時代 )
– Visual J++, WFC (= Windows Foundation Class)
(Microsoft に移籍後 )
• Java を研究し尽くした Microsoft が出して
きた仮想マシンに、非常に興味を持ちま
ディレクトリサービスとは?
• ネットワーク上の資源とその属性とを記
憶し、検索できるようにしたシステムの
こと
– ユーザやネットワーク資源の管理を一括化し
、管理者の負担を軽減することが可能です。
• 資源の例としては
– ネットワークを利用するユーザ
– 組織に関する情報
– 利用可能なサーバと提供しているサービス
– プリンタなどの利用可能な機器、等々
LDAP とは?
• Lightweight Directory Access Protocol の略
で、ディレクトリサービスにアクセスす
るための標準的なプロトコルです。
– 元々は X.500 と呼ばれるディレクトリ標準の
アクセスプロトコルでした が、 X.500 が複雑
であるため実装が難しく、あまり普及しませ
んでした。
– それを基本として文字通り軽量化し TCP/IP で
動作するようにしたものが LDAP で、現在で
は広く受け入れられています。
Active Directory とは?
• Windows 2000 Server 以降に搭載されている
Microsoft 社純正のディレクトリサービスです。
– サービスネットワーク上に存在するサーバ、クライ
アント、プリンタなどのハードウェア資源や、それ
らを使用するユーザの属性、アクセス権などの情報
を一元管理することができます。
– Windows NT は、資源の管理を「ドメイン」と呼ばれ
る単位で行なってきましたが、様々な理由から、大
規模なネットワークの管理には向きませんでした。
– Active Directory を利用すれば、ドメインや資源に階
層構造を設けて管理することができるため、ネット
ワークの規模が大きくなっても容易に管理すること
が可能です。
Active Directory の歴史と特徴
• Active Directory の歴史
– 2000 年 2 月 Microsoft Windows 2000 Server 発売開始
• “Active Directory” という新たなテクノロジーが登場しました
– 2003 年 6 月 Microsoft Windows Server 2003 発売開始
• Active Directory の機能も非常に強化されました
• Active Directory 導入による管理上の利点
– 複数に散在するドメインの集約が可能です。
– Kerberos による強力な認証機能が提供されます。
• セキュアなシングルサインオンの実現 (Windows 統合認証 )
– グループポリシー機能の活用で
• ユーザやコンピュータの一元管理による運用管理の簡素化
• セキュリティポリシーを一元管理し、セキュリティ強化を実現
– 「上手に使えば」、管理者が楽をできる仕組みなのです。
ADSI とは何か?
• ADSI は、 Active Directory Service Interface の略
です
– 名前が示す通り、 Active Directory へアクセスするた
めの Microsoft 社製の標準ライブラリです。
– Active Directory は標準のネットワークプロトコルと
して LDAP を使用していますので、 LDAP はもちろ
ん、 Windows NT 4.0 以前の NT ネットワーク(ドメ
イン)、 NDS などにも対応しています。
– 言語として C / C++ 、 VB 、または ADO ( ActiveX
Data Object )にも対応していますので、 VBScript や
そのほかのスクリプト言語からも呼び出すことがで
きます。
– ただし、もちろん Windows 環境でしか使えません。
.NET とディレクトリサービスとの
関係
• .NET でディレクトリを操作する方法は複数あり
ます
– LDAP を使用する方法( API 直接呼出し)
– ADSI を使用する方法( COM 呼び出し)
– System.DirectoryService …を使う お勧めです!
• System.DirectoryService …とは ?
– System.DirectoryServices 名前空間は、マネージ コー
ドから Active Directory への簡単なアクセスを提供し
ます。
– 簡単に言うと、 ADSI を .NET Framework 上で効果的
に使うためのラッパークラスを集めたものです。
System.DirectoryServices の概要
• System.DirectoryServices のコンポーネント
– DirectoryEntry
• Active Directory 階層のノードまたはオブジェクト
をカプセル化します。
• ユーザ、組織 (OU) 、グループ、コンピュータ等を
あらわすオブジェクトになります。
– DirectorySearcher
• Active Directory に対してクエリを実行します。
• 検索フィルターを使えば、様々な検索が可能です
。
System.DirectoryServices の基本
• 先頭では、次の一行を宣言しておきます。
using System.DirectoryServices; // C# の場合
• 基本となるメソッドの一覧
目的 クラス メソッド
子エントリの追加 DirectoryEntries Add
子エントリの削除 DirectoryEntries Remove
サブツリー全体の削除 DirectoryEntry DeleteTree
オブジェクトの名称変更 DirectoryEntry Rename
オブジェクトの移動 DirectoryEntry MoveTo
ADSI メソッド呼び出し DirectoryEntry Invoke
詳細1.ユーザの追加
static void CreateUser() {
try {
DirectoryEntry entry = new DirectoryEntry(
"LDAP://MICHAEL/OU= ショッカー ,OU=Test,DC=example,DC=local);
DirectoryEntry user = entry.Children.Add("cn= ゾル大佐 ", "user");
user.Properties["sAMAccountName"].Add("zoru");
user.Properties["userPrincipalName"].Add("zoru@example.local");
user.CommitChanges();
// 0x200 : ADS_UF_NORMAL_ACCOUNT
user.Properties["userAccountControl"].Value = 0x200;
user.Invoke("SetPassword", new object[] {"p&ssw0rd"});
user.CommitChanges();
}
catch (Exception ex) {
Console.WriteLine(ex.Message);
}
}
詳細2.ユーザ情報の変更
static void ModifyUser() {
try {
DirectoryEntry user = new DirectoryEntry(
"LDAP://MICHAEL/CN= ゾル大佐 ,OU= ショッカー ,OU=Test,DC=example,DC=local);
user.Properties["Company"].Value = " ショッカー ";
user.Properties["Department"].Value = " 極東支部 ";
user.Properties["Description"].Value = " 元ナチの軍人 ";
user.Properties["PhysicalDeliveryOfficeName"].Value = " 東京地下秘密基地 ";
user.Properties["Title"].Value = " 大幹部 ";
user.Properties["TelephoneNumber"].Value = "(666) 372-4649";
user.CommitChanges();
}
catch(Exception ex) {
Console.WriteLine("Generic Exception Handler: {0}", ex.ToString());
}
}
詳細3.ユーザの削除
static void DeleteUser() {
try {
DirectoryEntry entry = new DirectoryEntry(
"LDAP://MICHAEL/OU= ショッカー ,OU=Test,DC=example,DC=local);
DirectoryEntry user = entry.Children.Find("CN= ゾル大佐 ", "user");
entry.Children.Remove(user);
Console.WriteLine("Container= " + entry.Path.ToString());
Console.WriteLine(" から、アカウントは正常に削除されました ");
Console.WriteLine(" 実際には、怪人に変身して戦って死にました ");
}
catch (Exception ex) {
Console.WriteLine(ex.Message);
}
}
詳細4.ユーザの検索
static void SearchTest() {
try {
DirectoryEntry entry = new DirectoryEntry(
"LDAP://MICHAEL/DC=example,DC=local);
DirectorySearcher searcher = new DirectorySearcher(entry);
searcher.Filter = ("(&(objectClass=user)(cn=" ゾル大佐 "))");
foreach(SearchResult result in searcher.FindAll()) {
Console.WriteLine( result.GetDirectoryEntry().Path );
}
}
catch (Exception ex){
Console.WriteLine(ex.Message);
}
}
OU とは何か?
• OU とは、 Organization Unit の略で、組織
単位のことです。
– ドメイン内に、階層化した組織構造を作りま
す。
– グループポリシーを割り当てる単位となりま
す。
– 実際の組織の構造と合わせるやり方もあれば
、管理上、管理しやすいように作る場合もあ
ります。
– お勧めは、管理者が資源(ユーザ、コンピュ
ータ)を管理しやすいように作成する方法で
OU の追加・削除・変更の概要
• OU の追加・削除・変更も、基本的にはユーザの
追加・削除・変更と同じです。
• OU の操作についての補足説明
– OU の移動: MoveTo
– OU のコピー: CopyTo
– OU 以下丸ごと削除: DeleteTree
• OU の名前( CN )を変更する場合
– Rename メソッドを使用します
– OU のみならず、ユーザの名前 (CN) を変更するよう
な場合でも同様に Rename メソッドを使用します。
恐怖のアカウント管理地獄
• ディレクトリサービスは、 Active Directory だけではあり
ません。
– Sun Java Directory Server (以前は iPlanet/Sun ONE Directory
Server )
– Novell eDirectory (昔からある有名なディレクトリ製品 NDS の
末裔)
– OpenLDAP (オープンソースの LDAP サーバ)
– 他に、 IBM や ORACLE 等の LDAP サーバもあります
• 個別のアプリケーションに存在するアカウントの管理
– 昔ながらの汎用機や、日本独自のオフコン
– ERP(SAP) 、 CRM(SIEBEL) 等のソフトウェアパッケージ
– 独自開発の業務向けアプリケーション(クライアント・サー
バ)
– 最近(なぜか)大流行の、 Web アプリケーション
• それらのユーザアカウントを全て統一できれば
M&A 時代のディレクトリサー
ビス
• M&A 時代の組織に迫る深刻な問題
– 現在の社会においては、強引な M&A によっ
て、いつ何時自分の会社組織が吸収合併の対
象になるか、全く予測ができません。(w
– 大規模な会社同士の吸収や合併時には、大量
の資源(人、モノ)の管理手法を新たに考え
る必要が出てきます。
• そこでメタディレクトリが必要になって
きます
メタディレクトリとは?
• メタディレクトリとは何か?
– 複数の異なるディレクトリサービス、あるいはディ
レクトリサービス以外のシステムのアカウントを自
動的に統合し、全体を一括管理するためのソリュー
ションです。
• 製品紹介
– Microsoft Identity Integration Server 2003 (MIIS2003)
– IBM Tivoli Directory Integrator
– Sun Java System Identity Manager
– Novell Nsure Identity Manager
– Oracle Identity Management
例: ショッカーの組織変遷
• 一番最初のシーズンで、仮面ライダー一
号(本郷 猛)と仮面ライダー二号(一文
字 隼人)が戦ったのは「ショッカー」で
した。
• 両ライダーの活躍によって、壊滅的な打
撃を受けたショッカーは、「ゲルダム」
と合併して、「ゲル・ショッカー」とな
りました。
• 一度は完全に消滅したはずのショッカー
は、スカイライダーで「ネオ・ショッカ
ー」として復活しました。
…例: もしもホリエモンが
• もしもホリエモンが、ニッポン放送のみ
ならず、フジ TV …の買収に成功した場合
– ライブドアとフジ TV (ニッポン放送)の両
方の組織の社員何千人分ものアカウントをど
うやって統合するか?は、重要な問題です。
– シングル・フォレスト、シングル・ドメイン
が理想ではありますが、合併後しばらくは、
二つのフォレストに分けて別々のディレクト
リ単位で管理した方が良いかもしれません。
• …しかしながら、その実現可能性は (w
【実習】実際にプログラムしてみ
よう!
• ではこれから、実際に Active Directory を
操作するプログラムを作ってみましょう
。
• 開発環境について
– Windows XP Professional SP1
– Visual Studio .NET 2003
– 言語はもちろん、 C# (w
• テスト用の Active Directory 環境について
– Windows 2000 Server
– Windows Server 2003 Standard Edition
Windows Server 2003 におけ
る、 Active Directory の機能強化点
• 組織構造の変更にもすばやく対応
– ドメイン名とドメインコントローラ名の変更が可能
– ドメイン構造の変更が可能
• 複数フォレスト間での信頼関係
– 部門単位からのフォレストの展開が容易に
– フォレスト間でのリソース共有が可能に
• ドメインコントローラのパフォーマンス強化
– LDAP: 検索および追加処理のスループット向上によ
って、約 4 倍の処理速度向上
• 独自アプリケーションの認証基盤として利用可
能に
– ADAM という新機能
ADAM とは?
• ADAM について
– Windows Server 2003 における強化ポイントの一つに
、「 Active Directory in Application Mode 」、通称
「 ADAM 」があります。
– Windows のログイン認証や、ドメインの管理とは関
係なく、全く普通の LDAP サーバとして、一般のア
プリケーションから自由に使用することが可能です
。
– 特定業務アプリケーションのために、本来の Active
Directory に影響を及ぼすことなく、必要に応じてス
キーマ拡張(属性の追加・変更・削除)をすること
が可能です。
こんなソフトを作りませんか?
• ADAM …の可能性を探ると
– ADAM を利用することで、本来の AD とは独立した
ディレクトリ空間を持つことができます。
– リストラ時の大規模な組織改変や、「想定外
の」 M&A が発生した場合に、 ADAM 上で組織や人
、その他のリソースの統合後のシミュレーションを
行うことも可能でしょう。
• そこで、こんなソフトを作ってみませんか?
– 「 Emulator of Virtual Environment 」 通称「 EVE 」
– 二つ合わせると、「アダムとイブ」 (w
– CLR/H 発のオリジナル・ソフトウェアとしてみては
?
ディレクトリサービスの今後
• 今後は一つの組織(社内)だけでなく、パート
ナー間でのアカウント管理のためのディレクト
リ連携等も必要になってくるでしょう。
• ネット上にある様々な Web アプリケーションを
使う上で、散乱するアカウントとパスワードの
管理は、個人的にも大問題です。
• これからは、全世界規模でのシングル・サイン
オンがやはりどうしても必要になってくるでし
ょう。
– .NET Passport …は、その先駆的存在でしたが
– これからは、 Federation( 連盟 ) で管理が主流に?
まとめ
• 今日学んだこと
– ディレクトリサービスとは何か
– LDAP, Active Directory, ADSI 等の用語
– .NET 上の System.DirectoryServices 名前空間
– VS .NET と C# を使った実際のプログラム
– 現代社会におけるアカウント管理の問題
– メタディレクトリとは何か
– アダムとイブについて(w
– ディレクトリサービスの今後
参考情報 URL の紹介
• Microsoft の Active Directory 紹介ページ
– http://www.microsoft.com/japan/windowsserver2003/activedirec
• MSDN の System.DirectoryServices
– http://www.microsoft.com/japan/msdn/library/default.asp?url=/
japan/msdn/library/ja/cpref/html/frlrfSystemDirectoryServices.a
• Active Directory にアクセスするもっとも簡単な
方法
– http://www.itmedia.co.jp/enterprise/0212/04/n25.html
• なかよし研究所 (私の BLOG サイトです)
– http://www.tech-ezo.jp/blogs/nakayoshi/default.aspx
今日の感想
• GUI でできることを全てプログラムでや
る必要はないですが、ユーザの数が一万
人を超えるような組織の場合には、今日
紹介したようなソリューションがないと
厳しいでしょう。
• C# と .NET Framework によるプログラム
は、最初は大変なことも多いですが、慣
れてくるとどんどん面白くなってきます
。
• みなさんも、自分の得意な分野での経験
を活かして、どんどん勉強会で発表しま
最後に
• こうした勉強会での講師役は初めてで、
準備に想定外の時間がかかり、当初予定
していたことまで全然できませんでした
。
• 「もっと楽しめる .NET Framework 」に期
待された方には、申し訳ありませんでし
た。
• 最後までお聞きいただき、
「本当にどうもありがとうございまし
た」

More Related Content

Viewers also liked

Actividad 4
Actividad 4Actividad 4
Actividad 4
Dora Tadeo
 
Economic Relations between Two Countries
Economic Relations between Two CountriesEconomic Relations between Two Countries
Economic Relations between Two Countries
iosrjce
 
Pythonのすすめ
PythonのすすめPythonのすすめ
Pythonのすすめ
Masashi Shibata
 
3Dプリント×Python ~コードからアプローチする3Dプリンティング~
3Dプリント×Python ~コードからアプローチする3Dプリンティング~3Dプリント×Python ~コードからアプローチする3Dプリンティング~
3Dプリント×Python ~コードからアプローチする3Dプリンティング~
Takuro Wada
 
Publicaciones Periódicas
Publicaciones PeriódicasPublicaciones Periódicas
Publicaciones Periódicas
alexabs
 
ERP in the Cloud_ck_v2
ERP in the Cloud_ck_v2ERP in the Cloud_ck_v2
ERP in the Cloud_ck_v2
Chris Kenny
 

Viewers also liked (6)

Actividad 4
Actividad 4Actividad 4
Actividad 4
 
Economic Relations between Two Countries
Economic Relations between Two CountriesEconomic Relations between Two Countries
Economic Relations between Two Countries
 
Pythonのすすめ
PythonのすすめPythonのすすめ
Pythonのすすめ
 
3Dプリント×Python ~コードからアプローチする3Dプリンティング~
3Dプリント×Python ~コードからアプローチする3Dプリンティング~3Dプリント×Python ~コードからアプローチする3Dプリンティング~
3Dプリント×Python ~コードからアプローチする3Dプリンティング~
 
Publicaciones Periódicas
Publicaciones PeriódicasPublicaciones Periódicas
Publicaciones Periódicas
 
ERP in the Cloud_ck_v2
ERP in the Cloud_ck_v2ERP in the Cloud_ck_v2
ERP in the Cloud_ck_v2
 

Similar to CLR/H No.2 .NET & Directory Service

20110305_Code4Lib2011参加報告会:田辺浩介参加報告
20110305_Code4Lib2011参加報告会:田辺浩介参加報告20110305_Code4Lib2011参加報告会:田辺浩介参加報告
20110305_Code4Lib2011参加報告会:田辺浩介参加報告Code4Lib JAPAN
 
MySQL最新動向と便利ツールMySQL Workbench
MySQL最新動向と便利ツールMySQL WorkbenchMySQL最新動向と便利ツールMySQL Workbench
MySQL最新動向と便利ツールMySQL Workbench
yoyamasaki
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
osamut
 
1_各Atlassian製品の紹介
1_各Atlassian製品の紹介1_各Atlassian製品の紹介
1_各Atlassian製品の紹介
Ricksoft
 
JAWS-UG Santo 2014-07-05 Drupal on PaaS Cloud
JAWS-UG Santo 2014-07-05 Drupal on PaaS CloudJAWS-UG Santo 2014-07-05 Drupal on PaaS Cloud
JAWS-UG Santo 2014-07-05 Drupal on PaaS Cloud
ANNAI_LLC
 
Code4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェストCode4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェストMasao Takaku
 
JAWS DAYS 2015
JAWS DAYS 2015JAWS DAYS 2015
JAWS DAYS 2015
陽平 山口
 
MySQLで学ぶ機械学習ことはじめ.pdf
MySQLで学ぶ機械学習ことはじめ.pdfMySQLで学ぶ機械学習ことはじめ.pdf
MySQLで学ぶ機械学習ことはじめ.pdf
Machiko Ikoma
 
流体解析入門者向け超初級講習会
流体解析入門者向け超初級講習会流体解析入門者向け超初級講習会
流体解析入門者向け超初級講習会
mmer547
 
実はとても面白い...Documentation library
実はとても面白い...Documentation library実はとても面白い...Documentation library
実はとても面白い...Documentation library
Kouta Shiobara
 
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15
MapR Technologies Japan
 
クラウド運用のためのストリームマイニング
クラウド運用のためのストリームマイニングクラウド運用のためのストリームマイニング
クラウド運用のためのストリームマイニングShin Matsumoto
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料Recruit Technologies
 
OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化
Nobuyori Takahashi
 
Spark Summit 2014 の報告と最近の取り組みについて
Spark Summit 2014 の報告と最近の取り組みについてSpark Summit 2014 の報告と最近の取り組みについて
Spark Summit 2014 の報告と最近の取り組みについて
Recruit Technologies
 
Tableauのつまづきポイント
TableauのつまづきポイントTableauのつまづきポイント
Tableauのつまづきポイント
Shinji Tamura
 
Wsfc basic 130720
Wsfc basic 130720Wsfc basic 130720
Wsfc basic 130720
wintechq
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムRecruit Technologies
 
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
Ryoma Nagata
 

Similar to CLR/H No.2 .NET & Directory Service (20)

20110305_Code4Lib2011参加報告会:田辺浩介参加報告
20110305_Code4Lib2011参加報告会:田辺浩介参加報告20110305_Code4Lib2011参加報告会:田辺浩介参加報告
20110305_Code4Lib2011参加報告会:田辺浩介参加報告
 
MySQL最新動向と便利ツールMySQL Workbench
MySQL最新動向と便利ツールMySQL WorkbenchMySQL最新動向と便利ツールMySQL Workbench
MySQL最新動向と便利ツールMySQL Workbench
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
1_各Atlassian製品の紹介
1_各Atlassian製品の紹介1_各Atlassian製品の紹介
1_各Atlassian製品の紹介
 
JAWS-UG Santo 2014-07-05 Drupal on PaaS Cloud
JAWS-UG Santo 2014-07-05 Drupal on PaaS CloudJAWS-UG Santo 2014-07-05 Drupal on PaaS Cloud
JAWS-UG Santo 2014-07-05 Drupal on PaaS Cloud
 
BPStudy20121221
BPStudy20121221BPStudy20121221
BPStudy20121221
 
Code4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェストCode4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェスト
 
JAWS DAYS 2015
JAWS DAYS 2015JAWS DAYS 2015
JAWS DAYS 2015
 
MySQLで学ぶ機械学習ことはじめ.pdf
MySQLで学ぶ機械学習ことはじめ.pdfMySQLで学ぶ機械学習ことはじめ.pdf
MySQLで学ぶ機械学習ことはじめ.pdf
 
流体解析入門者向け超初級講習会
流体解析入門者向け超初級講習会流体解析入門者向け超初級講習会
流体解析入門者向け超初級講習会
 
実はとても面白い...Documentation library
実はとても面白い...Documentation library実はとても面白い...Documentation library
実はとても面白い...Documentation library
 
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15
 
クラウド運用のためのストリームマイニング
クラウド運用のためのストリームマイニングクラウド運用のためのストリームマイニング
クラウド運用のためのストリームマイニング
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
 
OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化
 
Spark Summit 2014 の報告と最近の取り組みについて
Spark Summit 2014 の報告と最近の取り組みについてSpark Summit 2014 の報告と最近の取り組みについて
Spark Summit 2014 の報告と最近の取り組みについて
 
Tableauのつまづきポイント
TableauのつまづきポイントTableauのつまづきポイント
Tableauのつまづきポイント
 
Wsfc basic 130720
Wsfc basic 130720Wsfc basic 130720
Wsfc basic 130720
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
 
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
 

More from Yoshiyuki Nakamura

2006-04-22 CLR/H #14 .NET and open source
2006-04-22 CLR/H #14 .NET and open source2006-04-22 CLR/H #14 .NET and open source
2006-04-22 CLR/H #14 .NET and open source
Yoshiyuki Nakamura
 
2014-07-26 Exploration into HDInsight Tuning Maniax 2014 Hadoopコース参戦記
2014-07-26 Exploration into HDInsight Tuning Maniax 2014 Hadoopコース参戦記2014-07-26 Exploration into HDInsight Tuning Maniax 2014 Hadoopコース参戦記
2014-07-26 Exploration into HDInsight Tuning Maniax 2014 Hadoopコース参戦記
Yoshiyuki Nakamura
 
DL on Azure ML with Python where type DL = Deep Learning | Deep LOVE
DL on Azure ML with Python where type DL = Deep Learning | Deep LOVEDL on Azure ML with Python where type DL = Deep Learning | Deep LOVE
DL on Azure ML with Python where type DL = Deep Learning | Deep LOVE
Yoshiyuki Nakamura
 
2012-07-07 Sapporo.r #1 LT発表資料 「仕事で使うR」
2012-07-07 Sapporo.r #1 LT発表資料 「仕事で使うR」2012-07-07 Sapporo.r #1 LT発表資料 「仕事で使うR」
2012-07-07 Sapporo.r #1 LT発表資料 「仕事で使うR」
Yoshiyuki Nakamura
 
クラウド温泉への誘い 2015-08-01 「第48回データマイニング+WEB@東京」版
クラウド温泉への誘い 2015-08-01 「第48回データマイニング+WEB@東京」版クラウド温泉への誘い 2015-08-01 「第48回データマイニング+WEB@東京」版
クラウド温泉への誘い 2015-08-01 「第48回データマイニング+WEB@東京」版
Yoshiyuki Nakamura
 
Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記
Yoshiyuki Nakamura
 

More from Yoshiyuki Nakamura (6)

2006-04-22 CLR/H #14 .NET and open source
2006-04-22 CLR/H #14 .NET and open source2006-04-22 CLR/H #14 .NET and open source
2006-04-22 CLR/H #14 .NET and open source
 
2014-07-26 Exploration into HDInsight Tuning Maniax 2014 Hadoopコース参戦記
2014-07-26 Exploration into HDInsight Tuning Maniax 2014 Hadoopコース参戦記2014-07-26 Exploration into HDInsight Tuning Maniax 2014 Hadoopコース参戦記
2014-07-26 Exploration into HDInsight Tuning Maniax 2014 Hadoopコース参戦記
 
DL on Azure ML with Python where type DL = Deep Learning | Deep LOVE
DL on Azure ML with Python where type DL = Deep Learning | Deep LOVEDL on Azure ML with Python where type DL = Deep Learning | Deep LOVE
DL on Azure ML with Python where type DL = Deep Learning | Deep LOVE
 
2012-07-07 Sapporo.r #1 LT発表資料 「仕事で使うR」
2012-07-07 Sapporo.r #1 LT発表資料 「仕事で使うR」2012-07-07 Sapporo.r #1 LT発表資料 「仕事で使うR」
2012-07-07 Sapporo.r #1 LT発表資料 「仕事で使うR」
 
クラウド温泉への誘い 2015-08-01 「第48回データマイニング+WEB@東京」版
クラウド温泉への誘い 2015-08-01 「第48回データマイニング+WEB@東京」版クラウド温泉への誘い 2015-08-01 「第48回データマイニング+WEB@東京」版
クラウド温泉への誘い 2015-08-01 「第48回データマイニング+WEB@東京」版
 
Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記
 

Recently uploaded

キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
Takayuki Nakayama
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 

Recently uploaded (12)

キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 

CLR/H No.2 .NET & Directory Service

  • 2. 今日の概要 • 私の自己紹介 • ディレクトリサービスについて • LDAP, Active Directory, ADSI について • .NET と System.DirectoryServices について • 実際のプログラムの説明 • メタディレクトリと組織管理の諸問題 • これからの展望、その他
  • 3. 私は何者か? • …私は 「ただのサラリーマン」です。 (w • 昔はずっと Unix (or Linux) を使ってました 。 • …以前、やっていたことを紹介すると – 津波シミュレーション等の数値計算 – 津波アニメーション等の三次元グラフィック ス – お役所向けの大量の報告書作成 • …今は 「 IT 何でも屋」です。
  • 4. Windows の思い出 • …昔の話で恐縮ですが – 4GL の統合 CASE ツール開発プロジェクトで 、 IL( 中間言語 ) のデバッガーを作っていまし た。 – カバレージ機能部分を担当していたのですが … – Windows95 は、一日に 10 回以上落ちました 。 – NT は安定していると聞いて、 WindowsNT4.0 (SP1?) にしましたが、それでも良く落ちまし た。
  • 5. 私が .NET に興味を持ったのは … • arton さんの本 (Ruby を 256 倍楽しむ本邪 道編 ) で、初めて .NET というものを知り ました。 • アンダース・ヘルスバーグ (Anders Hejlsberg) 氏がチーフアーキテクトである と知りました。 – Turbo Pascal, Delphi (Borland 時代 ) – Visual J++, WFC (= Windows Foundation Class) (Microsoft に移籍後 ) • Java を研究し尽くした Microsoft が出して きた仮想マシンに、非常に興味を持ちま
  • 6. ディレクトリサービスとは? • ネットワーク上の資源とその属性とを記 憶し、検索できるようにしたシステムの こと – ユーザやネットワーク資源の管理を一括化し 、管理者の負担を軽減することが可能です。 • 資源の例としては – ネットワークを利用するユーザ – 組織に関する情報 – 利用可能なサーバと提供しているサービス – プリンタなどの利用可能な機器、等々
  • 7. LDAP とは? • Lightweight Directory Access Protocol の略 で、ディレクトリサービスにアクセスす るための標準的なプロトコルです。 – 元々は X.500 と呼ばれるディレクトリ標準の アクセスプロトコルでした が、 X.500 が複雑 であるため実装が難しく、あまり普及しませ んでした。 – それを基本として文字通り軽量化し TCP/IP で 動作するようにしたものが LDAP で、現在で は広く受け入れられています。
  • 8. Active Directory とは? • Windows 2000 Server 以降に搭載されている Microsoft 社純正のディレクトリサービスです。 – サービスネットワーク上に存在するサーバ、クライ アント、プリンタなどのハードウェア資源や、それ らを使用するユーザの属性、アクセス権などの情報 を一元管理することができます。 – Windows NT は、資源の管理を「ドメイン」と呼ばれ る単位で行なってきましたが、様々な理由から、大 規模なネットワークの管理には向きませんでした。 – Active Directory を利用すれば、ドメインや資源に階 層構造を設けて管理することができるため、ネット ワークの規模が大きくなっても容易に管理すること が可能です。
  • 9. Active Directory の歴史と特徴 • Active Directory の歴史 – 2000 年 2 月 Microsoft Windows 2000 Server 発売開始 • “Active Directory” という新たなテクノロジーが登場しました – 2003 年 6 月 Microsoft Windows Server 2003 発売開始 • Active Directory の機能も非常に強化されました • Active Directory 導入による管理上の利点 – 複数に散在するドメインの集約が可能です。 – Kerberos による強力な認証機能が提供されます。 • セキュアなシングルサインオンの実現 (Windows 統合認証 ) – グループポリシー機能の活用で • ユーザやコンピュータの一元管理による運用管理の簡素化 • セキュリティポリシーを一元管理し、セキュリティ強化を実現 – 「上手に使えば」、管理者が楽をできる仕組みなのです。
  • 10. ADSI とは何か? • ADSI は、 Active Directory Service Interface の略 です – 名前が示す通り、 Active Directory へアクセスするた めの Microsoft 社製の標準ライブラリです。 – Active Directory は標準のネットワークプロトコルと して LDAP を使用していますので、 LDAP はもちろ ん、 Windows NT 4.0 以前の NT ネットワーク(ドメ イン)、 NDS などにも対応しています。 – 言語として C / C++ 、 VB 、または ADO ( ActiveX Data Object )にも対応していますので、 VBScript や そのほかのスクリプト言語からも呼び出すことがで きます。 – ただし、もちろん Windows 環境でしか使えません。
  • 11. .NET とディレクトリサービスとの 関係 • .NET でディレクトリを操作する方法は複数あり ます – LDAP を使用する方法( API 直接呼出し) – ADSI を使用する方法( COM 呼び出し) – System.DirectoryService …を使う お勧めです! • System.DirectoryService …とは ? – System.DirectoryServices 名前空間は、マネージ コー ドから Active Directory への簡単なアクセスを提供し ます。 – 簡単に言うと、 ADSI を .NET Framework 上で効果的 に使うためのラッパークラスを集めたものです。
  • 12. System.DirectoryServices の概要 • System.DirectoryServices のコンポーネント – DirectoryEntry • Active Directory 階層のノードまたはオブジェクト をカプセル化します。 • ユーザ、組織 (OU) 、グループ、コンピュータ等を あらわすオブジェクトになります。 – DirectorySearcher • Active Directory に対してクエリを実行します。 • 検索フィルターを使えば、様々な検索が可能です 。
  • 13. System.DirectoryServices の基本 • 先頭では、次の一行を宣言しておきます。 using System.DirectoryServices; // C# の場合 • 基本となるメソッドの一覧 目的 クラス メソッド 子エントリの追加 DirectoryEntries Add 子エントリの削除 DirectoryEntries Remove サブツリー全体の削除 DirectoryEntry DeleteTree オブジェクトの名称変更 DirectoryEntry Rename オブジェクトの移動 DirectoryEntry MoveTo ADSI メソッド呼び出し DirectoryEntry Invoke
  • 14. 詳細1.ユーザの追加 static void CreateUser() { try { DirectoryEntry entry = new DirectoryEntry( "LDAP://MICHAEL/OU= ショッカー ,OU=Test,DC=example,DC=local); DirectoryEntry user = entry.Children.Add("cn= ゾル大佐 ", "user"); user.Properties["sAMAccountName"].Add("zoru"); user.Properties["userPrincipalName"].Add("zoru@example.local"); user.CommitChanges(); // 0x200 : ADS_UF_NORMAL_ACCOUNT user.Properties["userAccountControl"].Value = 0x200; user.Invoke("SetPassword", new object[] {"p&ssw0rd"}); user.CommitChanges(); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
  • 15. 詳細2.ユーザ情報の変更 static void ModifyUser() { try { DirectoryEntry user = new DirectoryEntry( "LDAP://MICHAEL/CN= ゾル大佐 ,OU= ショッカー ,OU=Test,DC=example,DC=local); user.Properties["Company"].Value = " ショッカー "; user.Properties["Department"].Value = " 極東支部 "; user.Properties["Description"].Value = " 元ナチの軍人 "; user.Properties["PhysicalDeliveryOfficeName"].Value = " 東京地下秘密基地 "; user.Properties["Title"].Value = " 大幹部 "; user.Properties["TelephoneNumber"].Value = "(666) 372-4649"; user.CommitChanges(); } catch(Exception ex) { Console.WriteLine("Generic Exception Handler: {0}", ex.ToString()); } }
  • 16. 詳細3.ユーザの削除 static void DeleteUser() { try { DirectoryEntry entry = new DirectoryEntry( "LDAP://MICHAEL/OU= ショッカー ,OU=Test,DC=example,DC=local); DirectoryEntry user = entry.Children.Find("CN= ゾル大佐 ", "user"); entry.Children.Remove(user); Console.WriteLine("Container= " + entry.Path.ToString()); Console.WriteLine(" から、アカウントは正常に削除されました "); Console.WriteLine(" 実際には、怪人に変身して戦って死にました "); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
  • 17. 詳細4.ユーザの検索 static void SearchTest() { try { DirectoryEntry entry = new DirectoryEntry( "LDAP://MICHAEL/DC=example,DC=local); DirectorySearcher searcher = new DirectorySearcher(entry); searcher.Filter = ("(&(objectClass=user)(cn=" ゾル大佐 "))"); foreach(SearchResult result in searcher.FindAll()) { Console.WriteLine( result.GetDirectoryEntry().Path ); } } catch (Exception ex){ Console.WriteLine(ex.Message); } }
  • 18. OU とは何か? • OU とは、 Organization Unit の略で、組織 単位のことです。 – ドメイン内に、階層化した組織構造を作りま す。 – グループポリシーを割り当てる単位となりま す。 – 実際の組織の構造と合わせるやり方もあれば 、管理上、管理しやすいように作る場合もあ ります。 – お勧めは、管理者が資源(ユーザ、コンピュ ータ)を管理しやすいように作成する方法で
  • 19. OU の追加・削除・変更の概要 • OU の追加・削除・変更も、基本的にはユーザの 追加・削除・変更と同じです。 • OU の操作についての補足説明 – OU の移動: MoveTo – OU のコピー: CopyTo – OU 以下丸ごと削除: DeleteTree • OU の名前( CN )を変更する場合 – Rename メソッドを使用します – OU のみならず、ユーザの名前 (CN) を変更するよう な場合でも同様に Rename メソッドを使用します。
  • 20. 恐怖のアカウント管理地獄 • ディレクトリサービスは、 Active Directory だけではあり ません。 – Sun Java Directory Server (以前は iPlanet/Sun ONE Directory Server ) – Novell eDirectory (昔からある有名なディレクトリ製品 NDS の 末裔) – OpenLDAP (オープンソースの LDAP サーバ) – 他に、 IBM や ORACLE 等の LDAP サーバもあります • 個別のアプリケーションに存在するアカウントの管理 – 昔ながらの汎用機や、日本独自のオフコン – ERP(SAP) 、 CRM(SIEBEL) 等のソフトウェアパッケージ – 独自開発の業務向けアプリケーション(クライアント・サー バ) – 最近(なぜか)大流行の、 Web アプリケーション • それらのユーザアカウントを全て統一できれば
  • 21. M&A 時代のディレクトリサー ビス • M&A 時代の組織に迫る深刻な問題 – 現在の社会においては、強引な M&A によっ て、いつ何時自分の会社組織が吸収合併の対 象になるか、全く予測ができません。(w – 大規模な会社同士の吸収や合併時には、大量 の資源(人、モノ)の管理手法を新たに考え る必要が出てきます。 • そこでメタディレクトリが必要になって きます
  • 22. メタディレクトリとは? • メタディレクトリとは何か? – 複数の異なるディレクトリサービス、あるいはディ レクトリサービス以外のシステムのアカウントを自 動的に統合し、全体を一括管理するためのソリュー ションです。 • 製品紹介 – Microsoft Identity Integration Server 2003 (MIIS2003) – IBM Tivoli Directory Integrator – Sun Java System Identity Manager – Novell Nsure Identity Manager – Oracle Identity Management
  • 23. 例: ショッカーの組織変遷 • 一番最初のシーズンで、仮面ライダー一 号(本郷 猛)と仮面ライダー二号(一文 字 隼人)が戦ったのは「ショッカー」で した。 • 両ライダーの活躍によって、壊滅的な打 撃を受けたショッカーは、「ゲルダム」 と合併して、「ゲル・ショッカー」とな りました。 • 一度は完全に消滅したはずのショッカー は、スカイライダーで「ネオ・ショッカ ー」として復活しました。
  • 24. …例: もしもホリエモンが • もしもホリエモンが、ニッポン放送のみ ならず、フジ TV …の買収に成功した場合 – ライブドアとフジ TV (ニッポン放送)の両 方の組織の社員何千人分ものアカウントをど うやって統合するか?は、重要な問題です。 – シングル・フォレスト、シングル・ドメイン が理想ではありますが、合併後しばらくは、 二つのフォレストに分けて別々のディレクト リ単位で管理した方が良いかもしれません。 • …しかしながら、その実現可能性は (w
  • 25. 【実習】実際にプログラムしてみ よう! • ではこれから、実際に Active Directory を 操作するプログラムを作ってみましょう 。 • 開発環境について – Windows XP Professional SP1 – Visual Studio .NET 2003 – 言語はもちろん、 C# (w • テスト用の Active Directory 環境について – Windows 2000 Server – Windows Server 2003 Standard Edition
  • 26. Windows Server 2003 におけ る、 Active Directory の機能強化点 • 組織構造の変更にもすばやく対応 – ドメイン名とドメインコントローラ名の変更が可能 – ドメイン構造の変更が可能 • 複数フォレスト間での信頼関係 – 部門単位からのフォレストの展開が容易に – フォレスト間でのリソース共有が可能に • ドメインコントローラのパフォーマンス強化 – LDAP: 検索および追加処理のスループット向上によ って、約 4 倍の処理速度向上 • 独自アプリケーションの認証基盤として利用可 能に – ADAM という新機能
  • 27. ADAM とは? • ADAM について – Windows Server 2003 における強化ポイントの一つに 、「 Active Directory in Application Mode 」、通称 「 ADAM 」があります。 – Windows のログイン認証や、ドメインの管理とは関 係なく、全く普通の LDAP サーバとして、一般のア プリケーションから自由に使用することが可能です 。 – 特定業務アプリケーションのために、本来の Active Directory に影響を及ぼすことなく、必要に応じてス キーマ拡張(属性の追加・変更・削除)をすること が可能です。
  • 28. こんなソフトを作りませんか? • ADAM …の可能性を探ると – ADAM を利用することで、本来の AD とは独立した ディレクトリ空間を持つことができます。 – リストラ時の大規模な組織改変や、「想定外 の」 M&A が発生した場合に、 ADAM 上で組織や人 、その他のリソースの統合後のシミュレーションを 行うことも可能でしょう。 • そこで、こんなソフトを作ってみませんか? – 「 Emulator of Virtual Environment 」 通称「 EVE 」 – 二つ合わせると、「アダムとイブ」 (w – CLR/H 発のオリジナル・ソフトウェアとしてみては ?
  • 29. ディレクトリサービスの今後 • 今後は一つの組織(社内)だけでなく、パート ナー間でのアカウント管理のためのディレクト リ連携等も必要になってくるでしょう。 • ネット上にある様々な Web アプリケーションを 使う上で、散乱するアカウントとパスワードの 管理は、個人的にも大問題です。 • これからは、全世界規模でのシングル・サイン オンがやはりどうしても必要になってくるでし ょう。 – .NET Passport …は、その先駆的存在でしたが – これからは、 Federation( 連盟 ) で管理が主流に?
  • 30. まとめ • 今日学んだこと – ディレクトリサービスとは何か – LDAP, Active Directory, ADSI 等の用語 – .NET 上の System.DirectoryServices 名前空間 – VS .NET と C# を使った実際のプログラム – 現代社会におけるアカウント管理の問題 – メタディレクトリとは何か – アダムとイブについて(w – ディレクトリサービスの今後
  • 31. 参考情報 URL の紹介 • Microsoft の Active Directory 紹介ページ – http://www.microsoft.com/japan/windowsserver2003/activedirec • MSDN の System.DirectoryServices – http://www.microsoft.com/japan/msdn/library/default.asp?url=/ japan/msdn/library/ja/cpref/html/frlrfSystemDirectoryServices.a • Active Directory にアクセスするもっとも簡単な 方法 – http://www.itmedia.co.jp/enterprise/0212/04/n25.html • なかよし研究所 (私の BLOG サイトです) – http://www.tech-ezo.jp/blogs/nakayoshi/default.aspx
  • 32. 今日の感想 • GUI でできることを全てプログラムでや る必要はないですが、ユーザの数が一万 人を超えるような組織の場合には、今日 紹介したようなソリューションがないと 厳しいでしょう。 • C# と .NET Framework によるプログラム は、最初は大変なことも多いですが、慣 れてくるとどんどん面白くなってきます 。 • みなさんも、自分の得意な分野での経験 を活かして、どんどん勉強会で発表しま
  • 33. 最後に • こうした勉強会での講師役は初めてで、 準備に想定外の時間がかかり、当初予定 していたことまで全然できませんでした 。 • 「もっと楽しめる .NET Framework 」に期 待された方には、申し訳ありませんでし た。 • 最後までお聞きいただき、 「本当にどうもありがとうございまし た」

Editor's Notes

  1. ドメイン名とドメインコントローラ名の変更が可能 部門単位のフォレストを全社的に統合する際に名前付け規則を統一 企業間の合併に伴う社名変更にも対応 ドメイン構造の変更が可能 部門の統合や分割時にも柔軟に対応