Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Active Directory #TechLunch
Search
Livesense Inc.
PRO
September 03, 2014
Technology
2
120
Active Directory #TechLunch
Active Directory
2014/9/3 (水) @ Livesense TechLunch
発表者:吉田 航
Livesense Inc.
PRO
September 03, 2014
Tweet
Share
More Decks by Livesense Inc.
See All by Livesense Inc.
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
PRO
0
1.2k
データ基盤の負債解消のためのリプレイス
livesense
PRO
0
340
26新卒_総合職採用_会社説明資料
livesense
PRO
0
7.2k
株式会社リブセンス会社紹介資料 / Invent the next common.
livesense
PRO
1
21k
26新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
1
11k
中途セールス職_会社説明資料
livesense
PRO
0
230
EM候補者向け転職会議説明資料
livesense
PRO
0
110
コロナで失われたノベルティ作成ノウハウを復活させた話
livesense
PRO
0
240
転職会議でGPT-3を活用した企業口コミ要約機能をリリースした話
livesense
PRO
0
1.3k
Other Decks in Technology
See All in Technology
人間性を捧げる生成AI時代の技術選定
yo4raw
1
890
木を見て森も見る-モジュールが織りなすプロダクトの森
kworkdev
PRO
0
260
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
3
720
Tailwind CSS の小話「コンテナークエリーって便利」
yamaday
0
150
SaaS公式MCPサーバーをリリースして得た学び
kawamataryo
5
1.4k
Terraform にコントリビュートしていたら Azure のコストをやらかした話 / How I Messed Up Azure Costs While Contributing to Terraform
nnstt1
1
570
Google Cloud Next 2025 Recap アプリケーション開発を加速する機能アップデート / Application development-related features of Google Cloud
ryokotmng
0
330
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
59
15k
MCP でモノが動くとおもしろい/It is interesting when things move with MCP
bitkey
3
610
AOAI で AI アプリを開発する時にまず考えたいこと
mappie_kochi
1
770
Sleep-time Compute: LLM推論コスト削減のための事前推論
sergicalsix
1
150
Developer 以外にこそ使って欲しい Amazon Q Developer
mita
0
180
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
35
2.7k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.2k
4 Signs Your Business is Dying
shpigford
183
22k
Code Review Best Practice
trishagee
68
18k
Raft: Consensus for Rubyists
vanstee
137
6.9k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
19k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.8k
The Cost Of JavaScript in 2023
addyosmani
49
7.8k
Typedesign – Prime Four
hannesfritz
41
2.6k
We Have a Design System, Now What?
morganepeng
52
7.6k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
BBQ
matthewcrist
88
9.6k
Transcript
Active Directory TechLunch at 2014/9/3 by Wataru Yoshida
今更ながらの自己紹介 • 吉田 航 • 2013年1月入社 • いわゆる社内SE的なお仕事 • 職歴
• 某大手SIerに8年在籍 インフラエンジニア 3年:NW機器とかサーバとか触ってました アプリケーションSE 3年:C#とかMSSQLとか触ってました 情報システム部門 2年 :いろいろ触ってました 2
やってきたお仕事 3 2013年2月 電話システム リプレース 2013年4月 Active Directory導入 2013年5月 社内システム用サーバー移設
2013年7月 無線LANリプレース、SSL-VPN導入 2013年9月 オフィス増床(久米ビル) 2013年11月 confluenceリプレース 2014年2月 消費税増税対応 2014年3月 JIRA導入 2014年4月 Google Apps導入、Gmail移行 2014年6月 オフィス増床(IKビル) 他にも組織変更対応、アカウント管理、内部統制対応、中間DBの改修など
本日のテーマ 4 Active Directory
5 1.Active Directory概要 2.Active Directory応用その1 3.Active Directory応用その2
Active Directoryとは • LDAPをベースとした、Microsoft製のディレクトリ サービス • Windows 2000 Server ではじめて搭載された
• 前身はWindows NTドメイン • 略してAD 6
LDAPとは • LDAP(Lightweight Directory Access Protocol) • ディレクトリサービスにアクセスするためのプロトコル • ディレクトリサービス
• ユーザーアカウントやコンピュータアカウント等の 情報を集約し、照会する機能を提供するサービス • 製品例 • OpenLDAP • Active Directory 7
LDAPのイメージ 8 ・ローカルにユーザーを持たず、LDAPでユーザーを一元管理 ※ホームディレクトリはローカルに保持し、認証のみをLDAPに任せる
Why Active Direcory ? • Windows製品との親和性 • グループポリシー(後述)が非常に強力 • デファクトスタンダード
• 連携できる製品が非常に多い • 管理が容易、ドキュメントも豊富 • MS製品にしてはよく出来てる • 高可用性&高安定性 • Windows Serverの標準機能(=無料!) 9
Active Directory導入のメリット • アカウント管理の負荷低減 • 入社、退社の際のアカウントメンテ • 管理者によるアカウントの無効化、パスワードリセット • Active
Directoryを認証基盤として活用 • 統制の強化 • パスワードポリシーの強制 • グループポリシーによる設定の統一 10
Active Directory導入前のリブセンス • 全PCのローカルユーザーのパスワードをExcel管理 • Pマークの運用で年1回のパスワード変更が必要 • 江原さんが全PCのパスワードを変えて回っていた(らしい) • 入社時のアカウント発行が苦行
• 当時のNASやブラウザチェック環境は、それぞれに同じID/PWの ローカルユーザーを登録していた • 「PCのパスワードが分からなくなった」 • 「ご愁傷様です」 11
12 これは早めにActiveDirectoryを 導入しないと死ぬ
Active Directory導入 • 速攻ActiveDirectoryを導入 • Windowsだけでなく、MacもADに登録 • ついでに無線LANの認証もAD連携させる • SSL-VPNの認証もADに任せちゃう
13
構成図 14
Active Directoryの画面(サーバ) 15
Active Directoryの画面(クライアント) 16
Active Directoryの画面(クライアント) 17
18 1.Active Directory概要 2.Active Directory応用その1 3.Active Directory応用その2
Active Directoryによる認証 • ADではアカウントをグループで束ねて管理することが可能 • グループはネスト可能 • NTFSアクセス権をADのグループで設定 • 組織変更が発生した際も、ADのグループをメンテするだけでOK
• 無線LANやSSL-VPNの認証もADのグループを利用 19
Active Directoryによる認証 20 NTFSアクセス権
Active Directoryによる認証 21
Active Directoryによる認証 無線LAN、SSL-VPN 22
グループポリシー • WindowsやOffice等の設定を強制配布する機能 • グループポリシーで配布された設定は、ローカルの設定 で上書きすることができない • 実際に配布している設定 • Windows
Updateの設定 • 無線LANの設定+証明書配布 • Officeの各種設定 • ログイン、ログオフスクリプト など • Windows以外のOSには適用不可 23
グループポリシーの設定画面 24 アルバイトPCから 外部媒体への書き込みを禁止
25 1.Active Directory概要 2.Active Directory応用その1 3.Active Directory応用その2
LDAPクエリ • ADが管理者にとって便利ということは分かった • 利用者側で何かに活用できないの? • ADの情報を他のシステムから参照したい • LDAPクエリによる問い合わせが可能 26
LDAPクエリ • LDAPクエリ • LDAPに問い合わせを行うためのクエリ • LDAPクエリの構文や基本的なアトリビュートは製品に 関わらず共通(RFCで定義されている) • 主要な言語であればLDAP用のライブラリが用意されて
いる 27
LDAPクエリ • RubyからActiveDirectoryにアクセスしてみる • ActiveRecordっぽくLDAPオブジェクトを 扱える”ActiveLdap”を使ってみる • 必要なgemのインストール 28 $
gem install net-ldap $ gem install activeldap
LDAPクエリ 29 HOST_IP_V4 = '192.168.20.221' BIND_BASE = 'ou=RootOU,dc=ad,dc=livesense,dc=co,dc=jp' BIND_USER =
'cn=200071,ou=Common,ou=User,ou=RootOU,dc=ad,dc=livesense,dc=co,dc=jp' BIND_USER_PASSWORD = 'hogehoge' BIND_PORT = 389 BIND_METHOD = 'plain' ActiveLdap::Base.setup_connection( :host => HOST_IP_V4, :port => BIND_PORT, :method => BIND_METHOD, :base => BIND_BASE, :bind_dn => BIND_USER, :password => BIND_USER_PASSWORD) ※ReadOnlyでよければ、自分の社員番号のユーザーで問題なし Active Directoryへのconnectionを張る
LDAPクエリ 30 class User < ActiveLdap::Base ldap_mapping dn_attribute: "cn", prefix:
'' end user = User.find('200071') #所属するグループの一覧を表示 user.memberOf.each do |member| p.member.rdns[0][‘CN’] end "G_触媒部_総務グループ“ "G_正社員“ "DL_SSLVPN_Permit“ … <出力> Active Directoryのユーザーオブジェクトを取得
LDAPクエリ • Railsに組み込んで、従業員マスタを作成してみる 31
LDAPクエリ • LDAPクエリを書く為には、LDAP識別名(dn)の記法と、 対象ドメインのOUのツリー構造を理解しておく必要があり ます。 • dn :LDAPオブジェクトを指定する識別名 • OU:オブジェクトを格納するコンテナ
32
LDAPクエリ 33 dn = 'cn=200071,ou=Common,ou=User,ou=RootOU,dc=ad,dc=livesense,dc=co,dc=jp' dn:カンマ区切りで識別子を並べた文字列 ドメイン OU オブジェクト名
LDAPクエリまとめ • LDAPクエリを活用すれば、ADのリソースに 他システムからアクセスできる • システム毎にアカウントの2重管理はせず、 ADにアカウントを集約することが可能 • LDAP認証を実装すれば、AD認証やSSOも実現可能 •
実際にAD認証機能を備えたパッケージも多い • Redmine、MS SQL Server、Google Apps、etc… 34
まとめ • Active Directoryにより管理者の運用負荷は大きく 低減される • Active Directoryを外部システムの認証基盤や 従業員マスタとして活用することが可能 35
36 ご静聴ありがとうございました