active directoryと認証・認可

Post on 14-Apr-2017

223 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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と RPADFSで、認証を行う側は 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

top related