Active Directory
と認証・認可
アジェンダ
1. あなた誰?
2. 改めて。Active Directoryとは?
3. Active Directoryにおける認証・認可
4. ADFSって何ですか?
5. 実際にActive Directoryのアカウントで認証認
可してみるデモ
6. クレームルールを見てみよう
7. まとめ
2
1.あなた誰?
3
あなた誰?
• 鎌田裕樹(かまたひろき)
₋ facebook.com/kamatahiroki
₋ 日本酒好き
• サーバーワークス所属のAWSエンジニア
• 主な経歴
₋ Linuxのミドルウェア構築のインフラエンジニア
₋ 6万台規模のシンクライアント構築案件でPL/技術担当
₋ プログラム開発(Webサイト制作、業務システム開発)
• 得意分野
₋ シンクライアント
₋ Active Directoryを中心とした認証/認可システム
₋ Linuxを使ったミドルウェア構築 4
5
2. 改めて。
Active Directoryとは?
7
8
Active Directoryとは
• Windows Server 2000より提供されている、ディレクト
リサービスの名称
• ユーザーとコンピューターを管理するコンポーネント群
• ドメインと呼ばれるユーザーとコンピューターを管理する
単位がある
• ユーザーやコンピューターを登録し、ドメイン管理のユー
ザーであるか、ドメイン管理のコンピューターであるか、
識別するために主に利用
9
Active Directoryの基本機能
1-ドメインコントローラー
• ユーザーやコンピューターを登録し、ドメイン管理のユー
ザーであるか、ドメイン管理のコンピューターであるか、
識別する機能
• ドメイン参加したコンピューターにActive DirectoryのID
でログインすると、他のドメイン参加したコンピューター
の共有フォルダにアクセスしたい、という場合でもログイ
ンした時のアカウント情報を使うので、アカウント情報を
2度入れる必要がない
10
Active Directoryの基本機能
2-ユーザー情報を管理するデータベース
• ディレクトリサービスの本領発揮な機能
• ユーザーに関する情報を登録する項目があらかじめ決まっ
ていて、そこに情報を入れていく
• ここに登録した情報で、アクセス制御をすることも可能
11
Active Directoryの基本機能
3-グループポリシー
• ドメイン管理下のユーザーのOSの動作をカスタマイズする
機能
• ここの部署だけカスタマイズ、みたいなことも当然できる
• 会社支給のパソコンで「もうすぐパスワードが切れます」
の通知が来てたら、この機能で行われている
3. Active Directoryにおける
認証・認可
12
13
認証とは
「認証」とは、本人確認の機能を指します。
一般的には、ユーザー名とパスワードを入力して、本人かどうかの
確認をしますが、これが「認証」です。
認証を行うシステムとして、Active Directoryが使われています。
認証に成功すると、TGT(Ticket Granting Ticket)というチケットをActive
Directoryに発行してもらえます。
14
認可とは
「認可」とは、ユーザーがリソースにアクセス可能
か確認する機能を指します。
承認(認可)では、承認(認可)されるとST(Service Ticket)というチ
ケットがActive Directoryによって発行され、
STの有無によって、
アクセス可能かどうかを
判定しています。
15
しかし・・・
残念ながら、Active Directoryで
発行してもらった情報は、
Windowsの世界でしか使えません!
16
しかし・・・
残念ながら、Active Directoryで
発行してもらった情報は、
Windowsの世界でしか使えません!
マジすか
17
そこで
Active Directory Federation Service(ADFS)
サーバーが登場します。
ADFSサーバーが、外部との認可に必要な情報を生
成し、やり取りしてくれます。
4. ADFSって何ですか?
18
19
ADFSとは
•Active Directory Federation Service(ADFS)が
正式名称
•外部サービス(SaaSなど)との認可に必要な情報を生
成し、シングルサインオン(SSO)を提供する
•ADの情報では外部サービスは理解してくれないので、
別に決められた方式で情報を生成する必要がある
ADFSを掘り下げます。
20
21
トークンとクレーム
ADFSを使った認可では、認可されると「トークン」と呼
ばれる情報を生成し、やり取りが行われます。
トークンの中身の1つ1つの情報を「クレーム」と呼びま
す。
このクレームに入れることが出来る情報のソースとして、
Active Directoryの情報を使うことが出来ます。
22
トークンの流れ
23
クレームベースセキュリティ
ADFSサーバーを使った方式では、外部サービス側ではID情報
を作りません。
(例えばAWSではIAMロールを作成するのみで、IAMアカウントは作成しません。)
この連携方式を、「クレームベースセキュリティ」と呼びま
す。
24
ID連携
一方、外部サービス側にもアカウントを作成する方式は、
「ID連携」と呼ばれます。
ID連携の際に、外部サービス側にIDを登録するプロセスが
「プロビジョニング」という名前で呼ばれています。
25
CPとRP
ADFSで、認証を行う側はClaim Provider(CP)、認可を行
う側はRelying Party(RP)と呼びます。
CP側はActive Directory、RP側はSaaSサービス、と考え
ると分かりやすいでしょう。
良く分からないと
思うので、
デモを見て
頂きましょう。
26
5.実際にActive Directoryのアカ
ウントで認証認可してみるデモ
27
6.クレームルールを見てみよう
28
29
クレームルールとは
• ADFSで、外部サービスに渡す情報を加工することができ
ますが、そのルールを書く時に使うのが「クレームルー
ル」です
• 日本語では要求規則などと訳されています
• MicroSoftが独自に定めた方式で書きます
30
クレームルールの例
c:[Type == "http://temp/variable", Value =~ "(?i)^AWS-"] =>
issue(Type = "https://aws.amazon.com/SAML/Attributes/Role", Value
= RegExReplace(c.Value, "AWS-", "arn:aws:iam::123456789012:saml-
provider/ADFS,arn:aws:iam::123456789012:role/AWS-"));
31
クレームルールの例
c:[Type == "http://temp/variable", Value =~ "(?i)^AWS-"] =>
issue(Type = "https://aws.amazon.com/SAML/Attributes/Role", Value
= RegExReplace(c.Value, "AWS-", "arn:aws:iam::123456789012:saml-
provider/ADFS,arn:aws:iam::123456789012:role/AWS-"));
ざっくり訳;
ADアカウントのユーザーがAWS-で始まるグループに所属してい
たら、指定したAWSアカウントのIAMロールAWS-で始まり、AD
のグループ名と後ろが同じのロールになるようにしなさい。
7.まとめ
32
33
まとめ
•認証・認可でActive Directoryは有用
•ADFSまで使いこなせば、SSO環境も簡単(?)
に作れる
ご静聴ありがとう
ございました
34

Active directoryと認証・認可