SlideShare a Scribd company logo
1 of 73
AD FS 2.0 Deep Dive
~ 要求規則を極める ~
      2012.01.21
                        マイクロソフト株式会社
                           エバンジェリスト
            安納 順一(あんのう じゅんいち)
               http://blogs.technet.com/junichia/
                                twitter @junichia
                                                1
本日の内容
• AD FS がどのようにセキュリティトークンを発
  行するのかを理解しましょう
  (要求規則とクレームパイプライン)
• 複雑なクレームを含んだセキュリティトークン
  の発行方法を理解しましょう




                             2
目次

1.   AD FS の基礎知識
2.   クレームパイプラインとクレームルール(要求規則)
3.   クレームルールを定義するには
4.   クレームルールの定義 例
5.   クレームルールの処理プロセス
6.   カスタムルール
7.   カスラムルールの定義 例




                                3
AD FS 2.0 Deep Dive

AD FS の基礎知識
   さくっと理解しましょう~




                      4
よくあるシステムモデル
 • WEB アプリにアクセスするには AD 認証が必要
 • WEB アプリが独自にユーザーの情報を管理している

             Active Directory ドメイン
                                       ユーザーの
                                       役割や属性
             統合認証
                                        役割ごとの
                                        アクセス権
    AD DS                  WEB        DB
    AD LDS                アプリ        サーバー




             ブラウザー
                                                5
AD FS を使ったシステムモデル
 •   WEB アプリにアクセスするにはセキュリティトークンが必要
 •   DB サーバーで管理する個人情報を最小限にできる
 •   クライアントやWEBはドメイン参加の必要が無い(SSOしなければ)
 •   WEBとADの通信は発生しない(トークンはブラウザ経由で渡される)
ユーザーの
役割や属性


                                  役割ごとの
                                  アクセス権
     AD DS    AD FS      WEB    DB
     AD LDS             アプリ    サーバー




                ブラウザー
                                          6
AD FS を使ったシステムモデル
 •   WEB アプリにアクセスするにはセキュリティトークンが必要
 •   DB サーバーで管理する個人情報を最小限にできる
 •   クライアントやWEBはドメイン参加の必要が無い(SSOしなければ)
 •   WEBとADの通信は発生しない(トークンはブラウザ経由で渡される)
ユーザーの                   アプリはクラウドでもOK
役割や属性


                                   役割ごとの
                                   アクセス権
     AD DS    AD FS       WEB    DB
     AD LDS              アプリ    サーバー




                ブラウザー
                                           7
セキュリティ トークン/アサーション
• パッケージ化されたクレーム
• 発行者(オーソリティ)の署名によって信頼性を担保
• 発行者とは事前に信頼関係を結んでおく

            セキュリティトークン/
              アサーション




                             8
クレーム とは
 • クレームストア(AD DS/LDS/SQL)から収集したユーザー
   の属性
 • アプリケーションの要求に応じて AD FS 側で生成ルール
   を定義
 • アクセス承認に使用される




                                      9
AD FS の役割
• AD DS/AD LDS で認証されたユーザーに対して、セキュリティ
  トークンを発行する(SAML 1.1, SAML 2.0)

• セキュリティトークンの発行ルールを集中管理する

• セキュリティトークンのソースとなるストアは以下の通り
   • AD DS
   • AD LDS
   • SQL Server
   ※クラスライブラリを作成して独自のストアを定義可能
     AD DS/LDS
                  AD FS

                          Token
     SQL Server




                                   10
AD FS 2.0 Deep Dive
クレームパイプラインと要求規則(クレームルール)




                       11
用語について
基本的に、日本語 UI に沿った用語を使用します。
が…ちょっとアレなところもあるので、以下の対応票を参考にしてください。


  日本語         対応する英語
  要求          Claim, クレーム
  規則          Rule, ルール
  要求の種類       Claim Type, クレームタイプ
  要求記述        Claim Description, クレームディスクリプション
  要求 プロバイダー   Claims Provider, クレーム プロバイダー
  証明書利用者      Relying Party, リライング パーティ
  発行承認規則      Issuance Authorization Rules
  受付変換規則      Acceptance Transform Rules
  発行変換規則      Issuance Transform Rules



                                                 12
要求規則 (Claim Rule)
 • 入力された情報を処理するためのルール (規則)
 • 要求規則の種類は大きく分けて3つ
   – パススルー
   – 変換
   – フィルター

                         要求規則
  他のプロバイ
      ダー                 スルー

      AD DS
     AD LDS
                    入力    変換     出力
       LDAP

  SQL Server             フィルター
      その他

                                      13
セキュリティトークンの発行処理

   AD DS/LDS
                     AD FS

                                   Token
   SQL Server
                     拡大すると



  クレームプロバイダー側                リライングパーティー側
         ① 受付ける              ② 承認する    ③ 発行する
                受け
                              発行           発行
                付け
                              承認           変換
                変換
                              規則           規則
                規則


                クレームパイプライン                      14
なぜ分かれているのか?
      • CP と RP が別組織である場合に対応するため

                        企業A     企業B
AD DS/LDS
                AD FS                  AD FS

                        Token                  Token
SQL Server
                                               アプリ用にトークン
                                別組織からのトー
                                               を整形/変換して送出
                                クンを検証する        する


            クレームプロバイダー側         リライングパーティー側
               ① 受付ける            ② 承認する    ③ 発行する
                受け
                                  発行           発行
                付け
                                  承認           変換
                変換
                                  規則           規則
                規則

                                                        15
クレーム パイプラインの詳細                                   証明書利用者
                                                     (RP)
 CP側のクレームストア                       RP側のクレームストア




    ① 受付ける                     ② 承認する            ③ 発行する
                                   評価
           受け
                                   発行                    発行
                 output




                                                              output
                                        output
                           input
   input




           付け




                                                 input
                                   承認                    変換   トークン
           変換
                                   規則                    規則
           規則



 クレームプロバイダー側                        リライングパーティー側
           要求規則 (Claim Rule)                                           16
要求規則セット (Claim Rule Set) のタイプ
                                   覚えなくていいです!

 • 受け付け変換規則 - Acceptance Transform Rule Set
   要求プロバイダー ー (AD DS, SQL Server, LDAP) から
   クレームを収集しセキュリティトークンを生成
 • 発行承認規則 - Issuance Authorization Rule Set
   証明書利用者 (RP) にアクセス可能なユーザーを評価にするための
   ルール。ここでは評価するためのルールを定義する。出力されるのは
   トークン発行OK/NG のみで、ここで定義したクレームは発行されない。
 • 発行変換規則 - Issuance Transform Rule Set
   「受け付け要求規則」から発行されたクレーム セットを入力とし、
   証明書利用者 (RP) に発行するクレームを生成する
 • 委任承認規則 - Delegation Authorization Rule Set
   他のユーザーの代理として証明書利用者 (RP) にアクセスできるかどう
   かを判断するためのルール
 • 偽装承認規則 - Impersonate Authorization Rule Set
   ユーザーが他のユーザーを偽装してアクセスできるかどうかを
   判断するためのルール。Windows PowerShell で実装する。

                                                 17
クレームルール(要求規則)を定義するには




                       18
AD FS 2.0 管理コンソールの基礎

             この AD FS 2.0(STS)で扱うことができるクレーム
             が定義されている。逆に言えばここに定義されてい
             ないクレームを使うことはできない。先方から要求
             されているクレームは個々に定義する。

             「要求プロバイダー」とは「IdP/CP」のこと。自分
             が RP/SP 側の STS である場合には、ここに IdP/CP
             となるサーバーを定義する。既定では自身が所属し
             ている Active Directory ドメインが定義されてい
             る(「要求プロバイダーであること」が規定値と
             なっている)。

             「証明書利用者」とは「RP/SP」のこと。自分が
             IdP/CP 側の STS である場合には、ここに RP/SP を
             定義することで信頼関係を構築できる。既定では何
             も定義されていない。

             クレームのもととなる属性情報の格納庫を定義する。
             既定では、所属している Active Directory が定義
             されている。

                                                 19
① 受付ける   受け付け変換規則
• 「要求プロバイダー信頼」で設定する
• 「証明書利用者信頼」に渡すためのクレームをセットする




大原則
ここで定義されたクレームのみが、
パイプラインに沿って「証明書利
用信頼」に渡される




                               20
注意!既定のクレームセットを消さないこと!




 もし消してしまったら以下を参照して復旧してください。
 http://blogs.technet.com/b/junichia/archive/2012/01/19/3476217.aspx


                                                                       21
② 承認する   発行承認規則
• 「証明書利用者信頼」で設定する
• 「発行変換規則」を実行するかどうかを判断
• セキュリティトークンは発行しない




         この設定では「受け付け変換規則」
         を通過したユーザー全てに、「発行
         変換規則」への進行を許可




                            22
③ 発行する   発行変換規則
• 「証明書利用者信頼」で設定する
• ユーザーに発行するセキュリティトークンのルールを定義する




                  規定では空(何も発行しない)
                  ただし、「認証メソッド」と「認
                  証日時」だけは送信される




                                    23
2種類の定義方法
• 要求規則テンプレートを使用
  • 規定で用意されているルールを使用する場合
    •   [LDAP 属性を要求として送信]
    •   [グループ メンバーシップを要求として送信]
    •   [入力方向の要求を変換]
    •   [入力方向の要求をパススルーまたはフィルター処理]
    •   [カスタム規則を使用して要求を送信]
    •   [入力方向の要求に基づいてユーザーを許可または拒否]
    •   [すべてのユーザーを許可]

• カスタムルールを定義
  • 用意されていないルール(ロジック)を使用する場合
  • 用意されていない ldap 属性を使用する場合
  • AD DS/ldap 以外のクレームストアを使用する場合
     • SQL Server
     • その他(テキストファイル など)

  [要求記述]に記載されていないクレームタイプは使用できないので、
  事前に定義しておく必要がある
                                     24
要求記述について
  • システム間で送受信するクレームタイプが定義されている
  • ここに定義されていないクレームは、要求規則テンプレートで使用するこ
    とができない

あくまでもADFS内の「名   ワールドワイドで一意なクレームの名前     このクレームを外部から受信可
前」。このSTS内部でだけ     (だから URI で書かれている)。   能か否か、外部に送信可能か否
通用する。            これを使ってクレームが識別される。     かを定義




                                                    25
クレームタイプは世界で一意
   • クレームタイプとは世界共通のクレームの識別名
      • プロパティ名のようなもの
      • URI 形式で示す
   • どのようなクレームタイプを使用するかは両者で事前にネゴが必要
      • 通常はRP側が定義し、メタデータとして提示する
   • “適当な命名規約”や”クレームタイプの流用”は後々混乱の元!

                       企業A              企業B
AD DS/LDS
               AD FS                                 AD FS

                          Token                              Token
SQL Server
                       同じクレームタイプを使用しない
                       と評価のしようがない!
             http://schemas.tf.com/claims/companyname = マイクロソフ
             ト
             http://schemas.tf.com/claims/age = 43

             http://schemas.tf.com/claims/kanaName = あんのう
                                                                     26
(参考)既定のクレーム タイプの表示名
  英語表記                       日本語表記
  E-Mail Address             電子メール アドレス
  Given Name                 指定名
  Name                       名前
  UPN                        UPN
  Common Name                共通名
  AD FS 1.x E-Mail Address   AD FS 1.x 電子メール アドレス
  Group                      グループ
  AD FS 1.x UPN              AD FS 1.x UPN
  Role                       役割
  Surname                    姓
  PPID                       PPID
  Name Identifier            名前 ID
  Authentication Method      認証方法


                                                    27
英語表記                          日本語表記
Deny Only Group SID           拒否のみグループ SID
Deny only primary SID         拒否のみプライマリ SID
Deny only primary group SID   拒否のみプライマリ グループ SID
Group SID                     グループ SID
Primary Group SID             プライマリ グループ SID
Primary SID                   プライマリ SID
Windows account name          Windows カウント名
Authentication Instant        認証タイム スタンプ




                                                   28
(参考)既定の LDAP 属性
これ以外の ldap 属性を使用する場合には「カスタム規則」を使用
LDAP 属性の名前(lDAPdisplayName)        LDAP 属性の名前(lDAPdisplayName)
Company (company)                  State-Or-Province-Name (st)
Department (department)            Street-Address (street)
Display-Name (displayName)         Surname (sn)
E-Mail-Address (mail)              Telephone-Number (telephoneNumber)
Employee-ID (employeeID)           Title (title)
Employee-Number (employeeNumber)   Token-Groups (SID) (tokenGroups)
Employee-Type (employeeType)       Token-Groups - ドメイン名を含む
                                   (tokenGroups)
Given-Name (givenName)
                                   Token-Groups - 完全修飾ドメイン名を含
Is-Member-Of-DL (memberOf)         む(tokenGroups)
Organizational-Unit-Name (ou)      Token-Groups - 名前の指定なし
Organization-Name (o)              (tokenGroups)
                                   User-Principal-Name
Proxy-Addresses (proxyAddress)
                                   (userPrincipalName)
                                   SAM-Account-Name(sAMAccountName)
                                                                        29
要求規則(クレームルール)の定義 例
1.   要求記述の定義
2.   発行承認規則の定義
3.   発行変換規則の定義
4.   クレームルールの定義にありがちなミス

                          30
要求規則(クレームルール)の定義 例

シナリオ

 • 役割がエバンジェリストであるユーザーにのみ
   セキュリティトークンを発行する

 • セキュリティトークンには「氏名」「役職」「部
   署」「メール」を含める
         ldap 属性       クレームタイプ

   氏名    displayname   名前

   メール   email         電子メール アドレス

   部署    department    部署    規定で用意されない
   役職    title         役割    ため「要求記述」に
                             定義する必要がある



                                                    31
要求規則(クレームルール)の定義 例

作業概要


① 要求記述に「部署」を追加
② 「受け付け変換規則」に4つのクレームタイプを定義
③ 「発行承認規則」で「エバンジェリスト」以外を抑止
④ 「発行変換規則」で4つのクレームを定義する
        ldap 属性       クレームタイプ

  氏名    displayname   名前

  メール   email         電子メール アドレス

  部署    department    部署

  役職    title         役割




                                                   32
① 要求記述に「部署」を追加


                 クレームタイプ を URI で設定する。
                 世界で唯一にするため、自社ドメイ
                 ン名を入れるとよい。




                                    33
② 「受け付け変換規則」に4つのクレームを定義
        ldap 属性       クレームタイプ

  氏名    displayname   名前

  メール   email         電子メール アドレス

  部署    department    部署

  役職    title         役割




                                   34
これは消さな
  い!




         Active Directory から属性を
         拾ってクレームに格納する




                                  35
4つのクレームを追加




             36
③「発行承認規則」で「エバンジェリスト」以外を抑止
        「すべてのユーザーにアク
        セスを許可」を削除




                        37
要求規則(クレームルール)の定義 例




                  CP から受け取ったクレームタイプを判
                  定する




クレームタイプ「部署」に「エバ
ンジェリスト」が入っていれば



トークン発行を許可する




                                        38
④「発行変換規則」で4つのクレームを定義
       ldap 属性       クレームタイプ

 氏名    displayname   名前

 メール   email         電子メール アドレス

 部署    department    部署
                               「証明書利用者信頼」に登録
 役職    title         役割          されているRP一覧




                                               39
同様に「メール」
「部署」「役割」
についても記述す
   る。




           40
41
実行結果例

                OK




                     NG


役割が「エバンジェリスト」
でなければアクセス拒否




                          42
ちなみに Windows Phone から




                        43
クレームルールの定義 ありがちなミス ①

現象例
• 「発行承認規則」で[入力方向の要求に基づいてユーザーを許可または拒否]
  ルールを使用し、クレーム名[役職] に「部長」と書かれているユーザーのみに
  許可したいが、全てのアクセスが拒否されてしまう

原因
• [役職] クレームの中身がからっぽ。
  「受け付け変換規則」で [役職] クレームが定義されていない場合、「発行承
  認規則」でいきなり[役職]クレームによる条件判定を行おうとしても、クレー
  ムの中身が空のため判定は「NG」となる。事前に、[役職]クレームに値を入力
  するルールが定義されている必要がある。
       ここでクレームを評価する以前に、クレーム
       が発行されていない場合、「空」の値が入っ
       ているものとして評価されてしまう
                受け
                                      発行                          発行
                     output




                                                                       output
                                           output
                              input
        input




                                                          input
                付け
                                      承認                          変換
                変換
                                      規則            OK/           規則
                規則                                  NG



                                                                                44
クレームルールの定義 ありがちなミス ②

現象
• ルールを変えても送信されるクレームが変わらない

原因
• デスクトップ上に別のブラウザやタブが起動しており、既にクレーム
  を取得している

                こいつを閉
                じないと…. 同じクレー
                       ムが表示さ
                         れる




                                    45
クレームルールの定義 ありがちなミス③

現象
• 「入力方向の要求をパススルーまたはフィルター処理」ルールを使用して、
  「特定の電子メール サフィックスの値と一致する要求値だけをパス スルーす
  る」を定義しているが、サフィックスが一致しないユーザーに対してもクレー
  ムが発行されてしまう。

原因
• クレームルールに複数のルールを定
  義しており、当該ルール以前に電子
  メールアドレスクレームを発行して
  いる場合、それを取り消すことはで                上で発行し
  きない。                            てしまうと…
                           あとからフィル
対処                         ターすることは
• 当該ルール以前のルールから電子            できない
  メールアドレスの発行ルールを削除
  する



                                         46
クレームルールの処理プロセス



                 47
原則 ① 要求規則は上から処理される
上の規則の出力結果が下規則の入力となる




                  要求規則




                         48
原則 ② 前の規則の出力結果が次の規則の入力となる

                    クレーム
                           要求規則セット

                            要求規則1




                                            Output Claim Set
  Input Claim Set



                           条件   発行


                           要求規則2



                           要求規則 n


                                     トークン

                                                               49
原則 ③ Output Claim Set に蓄積されたデータがセキュリティ
トークンとなる                             超重要

                  一度 Output Claim Set に出力されたクレームは削除できない
                  ※発行ステートメント(issue/add)によって調整する

                                          要求規則セット




                                                                                       Output Claim Set
                                               要求規則1
Input Claim Set




                                                                             title =
                               => issue (type = “title”, value = “部長");      “部長”




                                               要求規則2
                  title =                                                    role=“M
                                    [type == “title”, Value == “部長”]         anager”
                  “部長”
                              => issue (type = "Role", value = “Manager");




                            カスタムルールを覚えましょう!                                  title
                                                                             role             50
カスタムルール
ここを習得できれば怖いものなし!
難易度高し!




                   51
カスタムルールとは?
「要求規則言語」を直接記載することで、規定のルールテンプレート
では提供されていない複雑な発行処理を行うことができる


 (例)
 • 規定で用意されていない ldap 属性を取得したい
 • 計算結果から判定したい
 • 正規表現を使用して文字列を判定したい
 • 出力したくないクレームがある




                                  52
カスタムルールの定義

カスタムルールのサンプルを見るには




                            53
カスタムルールの定義




 条件部




発行部




               54
カスタムルールの構造

         条件部                      発行部
          条件文 1          True

          条件文 2
                    =>
   &&                             発行文
   &&                False



条件部 入力方向のクレーム/属性をチェックし、
オプション すべての条件が True の場合に「発行部」が実行される。

      条件部が無い場合には無条件で True とみなされる。
発行部 発行するトークンタイプと、
 必須 そこに格納する属性/値を指定する。

        「クレームが発行されない」           ≠ アクセスできない
         ※クレームを持っていないユーザーにアクセスを許可するかどうかは
          アプリケーションの判断
                                             55
書式の基本 ①
• 無条件でクレーム「A」に「値」を入れて発行する

=> issue ( Type = “A”, Value = “<値>” );


• クレーム「A」が”存在する”場合、クレーム「B」に「値」を入れて発行する

 [Type == “A"]
  => issue (Type = “B”, Value = “値");

• クレーム「A」が”存在しない”場合、クレーム「A」に「値」を入れて発行す
  る
NOT Exists([Type == “A"])
 => issue (Type = “A”, Value = “値");

• クレーム「A」が「値1」ならば、クレーム「B」に「値2」を入れて発行する

 [Type == “A” , Value ==“値1”]
  => issue (Type = “B”, Value = “値2”);

                                          56
書式の基本 ②
 • クレーム「A」が「値1」ならば、クレーム「A」を発行する。それ以外の場合
   にはクレーム「A」は発行されない
 c:[Type == “A” , Value ==“値1”]
  => issue (claim = c );

• クレーム「A」が「値1」ならば、クレーム「B」にも「A」と同じ値を入れて発
  行する

 c:[Type == “A” , Value ==“値1”]
  => issue (Type = “B”, Value = c.Value);

• クレーム「A」が「値1」でクレーム「B」が「値2」ならば、クレーム「C」に
  は 値1と値2を結合した値を入力して発行する

 c1:[Type == “A” , Value ==“値1”] &&
 c2:[Type == “B” , Value ==“値2”]
  => issue (Type = “C”, Value = c1.Value + c2.Value);

  && はいくつでもつなげることができる
  ※ ||(or)に相当する演算子は用意されていない
                                                        57
書式の基本 ③ ~ Active Directory からの属性取得
  • Active Directory で認証されたユーザーならば、logonCount 属性を取得して
    クレーム「A」を発行する

    c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/
    claims/windowsaccountname", Issuer == "AD AUTHORITY"]
     => issue(store = "Active Directory", types = “A”,
     query = “;logonCount,{0}", param = c.Value);


              WindowsAccountName クレーム
  • c
条 • Type == “http://schemas.microsoft.com/ws/2008/06/identity/claims/
件   windowsaccountname“            WindowsAccountNameというクレームが発行されている
部
                                     クレームを発行したのは “AD AUTHORITY” である
  • Issuer == "AD AUTHORITY“
                                  ”Active directory”というクレームストア
  • store = "Active Directory“    から
発                                 属性を取ってくる
行 • query = “;logonCount,{0}“             持ってくる属性は「logonCount」で、
                                      ADを検索する条件は windowsaccountname = {0}
部
                             {0} の値は条件部で渡された
  • param = c.Value            WindowsAccountName の値

                                                                            58
正規表現の利用
• (例1)クレーム「A」の値が大文字小文字を問わず
  「junichia@tf.com」と完全一致ならばクレームを発行する


    c:[Type == “A”, Value =~ “^(?i)junichia@tf.com$” ]
     => issue(claim = c);



        ^(?i)junichia@tf.com$
                                                          行末(これより後
                  後に続く文字の大文字                              ろに文字が無いこ
                  小文字を区別しない                               と)を示す
行頭(これ
より前に文                                               特殊な文字の前には
字が無いこ                                               「(バックスラッ
と)を示す                                               シュ)」を付加
正規表現言語要素
http://msdn.microsoft.com/ja-jp/library/az24scfc.aspx
                                                                 59
正規表現の利用

• (例2)クレーム「A」の値が 3 ケタの数字ならば、クレーム「B」に
  「SENIOR」を入れて発行する

    [Type == “A”, Value =~ "^[0-9]{3}$"]
     => issue(Type = “B”, Value = “SENIOR”);



                       ^[0-9]{3}$
           行頭(これ
           より前に文                   0から9の文字              行末(これより後
           字が無いこ                   列が3ケタで               ろに文字が無いこ
                                   ある                   と)を示す
           と)を示す


正規表現言語要素
http://msdn.microsoft.com/ja-jp/library/az24scfc.aspx

                                                                   60
ファンクションの活用
• count:指定されたクレームが持つ値の数をカウントする

  count ([type == “http://schemas.xmlsoap.org/claims/Reports“] ) > 0
   => issue(= "http://schemas.xmlsoap.org/claims/ismanager", value =
  "true");


• RegExReplace:文字列を置き換える

  c:[type ==
  "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"]
  => issue(type = c.type,
  value = regexreplace (c.value, "(?<domain>[^]+)(?<user>.+)",
  "FABRIKAM${user}"));




                                                                       61
発行ステートメントによる処理の違い
            • issue     :クレームを発行する(output claim set に発行する)
            • add :input claim set に直接発行する
                   → クレーム発行のためのテンポラリー領域的な使い方

                                                                           add ステートメント
                  クレーム
                                                                           は output クレーム
                                          要求規則セット                             を発行しない


                                             要求規則1
                              => add (type = “title”, value = “部長");




                                                                                          Output Claim Set
Input Claim Set




                                             要求規則2
                  title =         [type == “title”, Value == “部長”]              role=“M
                  “部長”                                                          anager”
                            => issue (type = "Role", value = “Manager");




                                                                                                    62
カスタムルールの定義 例



               63
シナリオ
 • 役割が「エバンジェリスト」にのみトークンを発行する
 • ユーザーのアクティブ度をログオン回数から判定し、回数に応じた Status 与
   える(アプリケーション側では Status に応じて表示するメニューを変える)
 • 以下のクレームを送信する

                ldap 属性       クレームタイプ

       氏名       displayname   名前

       メール      email         電子メール アドレス

       部署       department    部署
                                           規定で用意されない
       役職       title         役割           ため「要求記述」に
       ログオン回数   logonCount    ログオン回数       定義する必要がある
       ステータス    ー             ステータス


 作業手順
 ① 要求記述に「ログオン回数」と「ステータス」を追加
 ② 「発行変換規則」で「ログオン回数」と「ステータス」を定義


                                                       64
要求記述に「ログオン回数」を定義


               クレームタイプ を URI で設定す
               る。




                                    65
要求記述に「ステータス」を定義


                  クレームタイプ を URI で設定す
                  る。




                                       66
カスタムルールに「ログオン回数」と「ステータス」を定義




                              67
AD の logonCount 属性を「ログオン回数」にセット




                 Active Directory から logonCount
                 属性を取り出し、クレームタイプ
                 logoncount に入れている

                                                  68
logoncount をもとにステータスを判定するには
logonCount < 10 ならば ステータスは シルバー

 c:[Type == “http://schemas.tf.com/identity/claims/logoncount”, Value =~ “^[0-9]{1}”]
  => add (Type = "http://schemas.tf.com/identity/claims/userstatus", Value = "SILVER");


logonCount => 10 and logonCount < 100 ならば ステータスは ゴールド

 c:[Type == “http://schemas.tf.com/identity/claims/logoncount”, Value =~ “^[0-9]{2}”]
  => add (Type = "http://schemas.tf.com/identity/claims/userstatus", Value = “GOLD");


logonCount => 10 and logonCount < 100 ならば ステータスは ゴールド

 c:[Type == “http://schemas.tf.com/identity/claims/logoncount”, Value =~ “^[0-9]{3}”]
  => add (Type = "http://schemas.tf.com/identity/claims/userstatus", Value = “PLATINUM");


userstatus クレームを発行する

  => Issue (Type = "http://schemas.tf.com/identity/claims/userstatus“ ) ;
                                                                                            69
完成形




 6    userstatusクレームを発行する   <要求規則の表
 示>




                                      70
まとめ




      71
まとめ
  ちゃんとし
    た
• Active Directory を構築しましょう
   • ユーザーアカウントの一元管理
   • ユーザーロールの一元管理
   • アカウントの有効期限
   • パスワードの複雑性

• 認可の管理は IT Pro の腕にかかっています
   • AD FS を習得しましょう
   • クレームルールはビジネスロジックです
   • アプリケーションの対応も同時に進めましょう




                              72
73

More Related Content

What's hot

202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)Amazon Web Services Japan
 
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会ShuheiUda
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをなAmazon Web Services Japan
 
Azure AD による Web API の 保護
Azure AD による Web API の 保護 Azure AD による Web API の 保護
Azure AD による Web API の 保護 junichi anno
 
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介Amazon Web Services Japan
 
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現Ryoma Nagata
 
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...Amazon Web Services Japan
 
Multicastが出来ないならUnicastすればいいじゃない
Multicastが出来ないならUnicastすればいいじゃないMulticastが出来ないならUnicastすればいいじゃない
Multicastが出来ないならUnicastすればいいじゃないKenta Yasukawa
 
Amazon Athena で実現する データ分析の広がり
Amazon Athena で実現する データ分析の広がりAmazon Athena で実現する データ分析の広がり
Amazon Athena で実現する データ分析の広がりAmazon Web Services Japan
 
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来Hiromasa Oka
 
[SC03] Active Directory の DR 対策~天災/人災/サイバー攻撃、その時あなたの IT 基盤は利用継続できますか?
[SC03] Active Directory の DR 対策~天災/人災/サイバー攻撃、その時あなたの IT 基盤は利用継続できますか? [SC03] Active Directory の DR 対策~天災/人災/サイバー攻撃、その時あなたの IT 基盤は利用継続できますか?
[SC03] Active Directory の DR 対策~天災/人災/サイバー攻撃、その時あなたの IT 基盤は利用継続できますか? de:code 2017
 
Microsoft Azure Storage 概要
Microsoft Azure Storage 概要Microsoft Azure Storage 概要
Microsoft Azure Storage 概要Takeshi Fukuhara
 
今こそ知りたい!Microsoft Azureの基礎
今こそ知りたい!Microsoft Azureの基礎今こそ知りたい!Microsoft Azureの基礎
今こそ知りたい!Microsoft Azureの基礎Trainocate Japan, Ltd.
 
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAmazon Web Services Japan
 
AWSインスタンス設定手順書
AWSインスタンス設定手順書AWSインスタンス設定手順書
AWSインスタンス設定手順書iret, Inc.
 
AWS Black Belt Techシリーズ AWS Direct Connect
AWS Black Belt Techシリーズ AWS Direct ConnectAWS Black Belt Techシリーズ AWS Direct Connect
AWS Black Belt Techシリーズ AWS Direct ConnectAmazon Web Services Japan
 
AWS Black Belt Online Seminar AWS Key Management Service (KMS)
AWS Black Belt Online Seminar AWS Key Management Service (KMS) AWS Black Belt Online Seminar AWS Key Management Service (KMS)
AWS Black Belt Online Seminar AWS Key Management Service (KMS) Amazon Web Services Japan
 
IDaaS を利用すべき理由とエンジニアがおさえておくべきポイント (2021年1月14日)
IDaaS を利用すべき理由とエンジニアがおさえておくべきポイント (2021年1月14日)IDaaS を利用すべき理由とエンジニアがおさえておくべきポイント (2021年1月14日)
IDaaS を利用すべき理由とエンジニアがおさえておくべきポイント (2021年1月14日)Masanori KAMAYAMA
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティスAmazon Web Services Japan
 
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52Yahoo!デベロッパーネットワーク
 

What's hot (20)

202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
 
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
 
Azure AD による Web API の 保護
Azure AD による Web API の 保護 Azure AD による Web API の 保護
Azure AD による Web API の 保護
 
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
 
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
 
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
 
Multicastが出来ないならUnicastすればいいじゃない
Multicastが出来ないならUnicastすればいいじゃないMulticastが出来ないならUnicastすればいいじゃない
Multicastが出来ないならUnicastすればいいじゃない
 
Amazon Athena で実現する データ分析の広がり
Amazon Athena で実現する データ分析の広がりAmazon Athena で実現する データ分析の広がり
Amazon Athena で実現する データ分析の広がり
 
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
 
[SC03] Active Directory の DR 対策~天災/人災/サイバー攻撃、その時あなたの IT 基盤は利用継続できますか?
[SC03] Active Directory の DR 対策~天災/人災/サイバー攻撃、その時あなたの IT 基盤は利用継続できますか? [SC03] Active Directory の DR 対策~天災/人災/サイバー攻撃、その時あなたの IT 基盤は利用継続できますか?
[SC03] Active Directory の DR 対策~天災/人災/サイバー攻撃、その時あなたの IT 基盤は利用継続できますか?
 
Microsoft Azure Storage 概要
Microsoft Azure Storage 概要Microsoft Azure Storage 概要
Microsoft Azure Storage 概要
 
今こそ知りたい!Microsoft Azureの基礎
今こそ知りたい!Microsoft Azureの基礎今こそ知りたい!Microsoft Azureの基礎
今こそ知りたい!Microsoft Azureの基礎
 
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
 
AWSインスタンス設定手順書
AWSインスタンス設定手順書AWSインスタンス設定手順書
AWSインスタンス設定手順書
 
AWS Black Belt Techシリーズ AWS Direct Connect
AWS Black Belt Techシリーズ AWS Direct ConnectAWS Black Belt Techシリーズ AWS Direct Connect
AWS Black Belt Techシリーズ AWS Direct Connect
 
AWS Black Belt Online Seminar AWS Key Management Service (KMS)
AWS Black Belt Online Seminar AWS Key Management Service (KMS) AWS Black Belt Online Seminar AWS Key Management Service (KMS)
AWS Black Belt Online Seminar AWS Key Management Service (KMS)
 
IDaaS を利用すべき理由とエンジニアがおさえておくべきポイント (2021年1月14日)
IDaaS を利用すべき理由とエンジニアがおさえておくべきポイント (2021年1月14日)IDaaS を利用すべき理由とエンジニアがおさえておくべきポイント (2021年1月14日)
IDaaS を利用すべき理由とエンジニアがおさえておくべきポイント (2021年1月14日)
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
 
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
 

Similar to AD FS deep dive - claim rule set

Windows phone アプリ開発者のための AD FS 2.0 セットアップ手順
Windows phone アプリ開発者のための AD FS 2.0 セットアップ手順Windows phone アプリ開発者のための AD FS 2.0 セットアップ手順
Windows phone アプリ開発者のための AD FS 2.0 セットアップ手順junichi anno
 
Cloud で Active Directory を活用するには
Cloud で Active Directory を活用するにはCloud で Active Directory を活用するには
Cloud で Active Directory を活用するにはjunichi anno
 
マイクロソフトのITコンシューマライゼーション2 - フレキシブルワークスタイルを支えるテクノロジー 第2版
マイクロソフトのITコンシューマライゼーション2 - フレキシブルワークスタイルを支えるテクノロジー 第2版マイクロソフトのITコンシューマライゼーション2 - フレキシブルワークスタイルを支えるテクノロジー 第2版
マイクロソフトのITコンシューマライゼーション2 - フレキシブルワークスタイルを支えるテクノロジー 第2版junichi anno
 
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...FinTechLabs.io
 
AD FS 2 と ACS v2 による Windows azure_step_bystep_v2.2_update1_noanime.pptx.アニメ削除済
AD FS 2 と ACS v2 による Windows azure_step_bystep_v2.2_update1_noanime.pptx.アニメ削除済AD FS 2 と ACS v2 による Windows azure_step_bystep_v2.2_update1_noanime.pptx.アニメ削除済
AD FS 2 と ACS v2 による Windows azure_step_bystep_v2.2_update1_noanime.pptx.アニメ削除済junichi anno
 
ID Managementワークショップ Azure AD SaaS 連携 Tips & Tricks_第2回全体ミーティング
ID Managementワークショップ  Azure AD SaaS 連携 Tips & Tricks_第2回全体ミーティングID Managementワークショップ  Azure AD SaaS 連携 Tips & Tricks_第2回全体ミーティング
ID Managementワークショップ Azure AD SaaS 連携 Tips & Tricks_第2回全体ミーティングID-Based Security イニシアティブ
 
Azure ad saas integration tips and tricks 20180227
Azure ad saas integration tips and tricks 20180227Azure ad saas integration tips and tricks 20180227
Azure ad saas integration tips and tricks 20180227Yusuke Kodama
 
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #apiTatsuo Kudo
 
Wp sslandroot certificate
Wp sslandroot certificateWp sslandroot certificate
Wp sslandroot certificateYoshida Yuri
 
Active Directory 最新情報 2012.8.31 暫定版
Active Directory 最新情報 2012.8.31 暫定版Active Directory 最新情報 2012.8.31 暫定版
Active Directory 最新情報 2012.8.31 暫定版junichi anno
 
Microsoft の ID 連携技術
Microsoft の ID 連携技術Microsoft の ID 連携技術
Microsoft の ID 連携技術shigeya
 
「Windows Phone アプリ と 認証」のまとめ
「Windows Phone アプリ と 認証」のまとめ「Windows Phone アプリ と 認証」のまとめ
「Windows Phone アプリ と 認証」のまとめjunichi anno
 
OAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューション
OAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューションOAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューション
OAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューションTatsuo Kudo
 
The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9Ryo Ito
 
1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1
1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.11/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1
1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1junichi anno
 
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015Toru Yamaguchi
 
S12_Azure AD 活用術!アプリケーション認証を ADFS から移行しましょう。 [Microsoft Japan Digital Days]
S12_Azure AD 活用術!アプリケーション認証を ADFS から移行しましょう。 [Microsoft Japan Digital Days]S12_Azure AD 活用術!アプリケーション認証を ADFS から移行しましょう。 [Microsoft Japan Digital Days]
S12_Azure AD 活用術!アプリケーション認証を ADFS から移行しましょう。 [Microsoft Japan Digital Days]日本マイクロソフト株式会社
 
GoodBye AD FS - Azure Active Directory Only の認証方式へ切り替えよう!
GoodBye AD FS - Azure Active Directory Only の認証方式へ切り替えよう!GoodBye AD FS - Azure Active Directory Only の認証方式へ切り替えよう!
GoodBye AD FS - Azure Active Directory Only の認証方式へ切り替えよう!Yusuke Kodama
 
20101110 Tech02 ID 管理およびサービスの設定
20101110 Tech02 ID 管理およびサービスの設定20101110 Tech02 ID 管理およびサービスの設定
20101110 Tech02 ID 管理およびサービスの設定kumo2010
 

Similar to AD FS deep dive - claim rule set (20)

Windows phone アプリ開発者のための AD FS 2.0 セットアップ手順
Windows phone アプリ開発者のための AD FS 2.0 セットアップ手順Windows phone アプリ開発者のための AD FS 2.0 セットアップ手順
Windows phone アプリ開発者のための AD FS 2.0 セットアップ手順
 
Cloud で Active Directory を活用するには
Cloud で Active Directory を活用するにはCloud で Active Directory を活用するには
Cloud で Active Directory を活用するには
 
マイクロソフトのITコンシューマライゼーション2 - フレキシブルワークスタイルを支えるテクノロジー 第2版
マイクロソフトのITコンシューマライゼーション2 - フレキシブルワークスタイルを支えるテクノロジー 第2版マイクロソフトのITコンシューマライゼーション2 - フレキシブルワークスタイルを支えるテクノロジー 第2版
マイクロソフトのITコンシューマライゼーション2 - フレキシブルワークスタイルを支えるテクノロジー 第2版
 
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
 
AD FS 2 と ACS v2 による Windows azure_step_bystep_v2.2_update1_noanime.pptx.アニメ削除済
AD FS 2 と ACS v2 による Windows azure_step_bystep_v2.2_update1_noanime.pptx.アニメ削除済AD FS 2 と ACS v2 による Windows azure_step_bystep_v2.2_update1_noanime.pptx.アニメ削除済
AD FS 2 と ACS v2 による Windows azure_step_bystep_v2.2_update1_noanime.pptx.アニメ削除済
 
ID Managementワークショップ Azure AD SaaS 連携 Tips & Tricks_第2回全体ミーティング
ID Managementワークショップ  Azure AD SaaS 連携 Tips & Tricks_第2回全体ミーティングID Managementワークショップ  Azure AD SaaS 連携 Tips & Tricks_第2回全体ミーティング
ID Managementワークショップ Azure AD SaaS 連携 Tips & Tricks_第2回全体ミーティング
 
Azure ad saas integration tips and tricks 20180227
Azure ad saas integration tips and tricks 20180227Azure ad saas integration tips and tricks 20180227
Azure ad saas integration tips and tricks 20180227
 
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
 
Wp sslandroot certificate
Wp sslandroot certificateWp sslandroot certificate
Wp sslandroot certificate
 
Active Directory 最新情報 2012.8.31 暫定版
Active Directory 最新情報 2012.8.31 暫定版Active Directory 最新情報 2012.8.31 暫定版
Active Directory 最新情報 2012.8.31 暫定版
 
Microsoft の ID 連携技術
Microsoft の ID 連携技術Microsoft の ID 連携技術
Microsoft の ID 連携技術
 
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門するKeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
 
「Windows Phone アプリ と 認証」のまとめ
「Windows Phone アプリ と 認証」のまとめ「Windows Phone アプリ と 認証」のまとめ
「Windows Phone アプリ と 認証」のまとめ
 
OAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューション
OAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューションOAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューション
OAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューション
 
The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9
 
1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1
1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.11/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1
1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1
 
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
 
S12_Azure AD 活用術!アプリケーション認証を ADFS から移行しましょう。 [Microsoft Japan Digital Days]
S12_Azure AD 活用術!アプリケーション認証を ADFS から移行しましょう。 [Microsoft Japan Digital Days]S12_Azure AD 活用術!アプリケーション認証を ADFS から移行しましょう。 [Microsoft Japan Digital Days]
S12_Azure AD 活用術!アプリケーション認証を ADFS から移行しましょう。 [Microsoft Japan Digital Days]
 
GoodBye AD FS - Azure Active Directory Only の認証方式へ切り替えよう!
GoodBye AD FS - Azure Active Directory Only の認証方式へ切り替えよう!GoodBye AD FS - Azure Active Directory Only の認証方式へ切り替えよう!
GoodBye AD FS - Azure Active Directory Only の認証方式へ切り替えよう!
 
20101110 Tech02 ID 管理およびサービスの設定
20101110 Tech02 ID 管理およびサービスの設定20101110 Tech02 ID 管理およびサービスの設定
20101110 Tech02 ID 管理およびサービスの設定
 

More from junichi anno

V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...junichi anno
 
Microsoft Azure のセキュリティ
Microsoft Azure のセキュリティMicrosoft Azure のセキュリティ
Microsoft Azure のセキュリティjunichi anno
 
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure ADAzure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure ADjunichi anno
 
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~junichi anno
 
個人情報を守るための アプリケーション設計(概要)
個人情報を守るためのアプリケーション設計(概要)個人情報を守るためのアプリケーション設計(概要)
個人情報を守るための アプリケーション設計(概要)junichi anno
 
IoT のセキュリティアーキテクチャと実装モデル on Azure
IoT のセキュリティアーキテクチャと実装モデル on AzureIoT のセキュリティアーキテクチャと実装モデル on Azure
IoT のセキュリティアーキテクチャと実装モデル on Azurejunichi anno
 
DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計
DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計
DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計junichi anno
 
Azureの管理権限について
Azureの管理権限について Azureの管理権限について
Azureの管理権限について junichi anno
 
Azure Active Directory 1枚資料 20151125版
Azure Active Directory 1枚資料 20151125版Azure Active Directory 1枚資料 20151125版
Azure Active Directory 1枚資料 20151125版junichi anno
 
リソーステンプレート入門
リソーステンプレート入門リソーステンプレート入門
リソーステンプレート入門junichi anno
 
File Server on Azure IaaS
File Server on Azure IaaSFile Server on Azure IaaS
File Server on Azure IaaSjunichi anno
 
Windows File Service 総復習-Windows Server 2012 R2編 第1版
Windows File Service 総復習-Windows Server 2012 R2編 第1版Windows File Service 総復習-Windows Server 2012 R2編 第1版
Windows File Service 総復習-Windows Server 2012 R2編 第1版junichi anno
 
Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...
Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...
Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...junichi anno
 
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版junichi anno
 
Hyper-V を Windows PowerShell から管理する
Hyper-V を Windows PowerShell から管理するHyper-V を Windows PowerShell から管理する
Hyper-V を Windows PowerShell から管理するjunichi anno
 
Vdi を より使いやすいインフラにするためのセキュリティ設計
Vdi を より使いやすいインフラにするためのセキュリティ設計Vdi を より使いやすいインフラにするためのセキュリティ設計
Vdi を より使いやすいインフラにするためのセキュリティ設計junichi anno
 
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現junichi anno
 
SaaS としての IDM の役割
SaaS としての IDM の役割SaaS としての IDM の役割
SaaS としての IDM の役割junichi anno
 
クラウドにおける Windows Azure Active Directory の役割
クラウドにおける Windows Azure Active Directory の役割クラウドにおける Windows Azure Active Directory の役割
クラウドにおける Windows Azure Active Directory の役割junichi anno
 

More from junichi anno (20)

V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
 
Microsoft Azure のセキュリティ
Microsoft Azure のセキュリティMicrosoft Azure のセキュリティ
Microsoft Azure のセキュリティ
 
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure ADAzure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
 
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~
 
Azure Key Vault
Azure Key VaultAzure Key Vault
Azure Key Vault
 
個人情報を守るための アプリケーション設計(概要)
個人情報を守るためのアプリケーション設計(概要)個人情報を守るためのアプリケーション設計(概要)
個人情報を守るための アプリケーション設計(概要)
 
IoT のセキュリティアーキテクチャと実装モデル on Azure
IoT のセキュリティアーキテクチャと実装モデル on AzureIoT のセキュリティアーキテクチャと実装モデル on Azure
IoT のセキュリティアーキテクチャと実装モデル on Azure
 
DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計
DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計
DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計
 
Azureの管理権限について
Azureの管理権限について Azureの管理権限について
Azureの管理権限について
 
Azure Active Directory 1枚資料 20151125版
Azure Active Directory 1枚資料 20151125版Azure Active Directory 1枚資料 20151125版
Azure Active Directory 1枚資料 20151125版
 
リソーステンプレート入門
リソーステンプレート入門リソーステンプレート入門
リソーステンプレート入門
 
File Server on Azure IaaS
File Server on Azure IaaSFile Server on Azure IaaS
File Server on Azure IaaS
 
Windows File Service 総復習-Windows Server 2012 R2編 第1版
Windows File Service 総復習-Windows Server 2012 R2編 第1版Windows File Service 総復習-Windows Server 2012 R2編 第1版
Windows File Service 総復習-Windows Server 2012 R2編 第1版
 
Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...
Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...
Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...
 
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
 
Hyper-V を Windows PowerShell から管理する
Hyper-V を Windows PowerShell から管理するHyper-V を Windows PowerShell から管理する
Hyper-V を Windows PowerShell から管理する
 
Vdi を より使いやすいインフラにするためのセキュリティ設計
Vdi を より使いやすいインフラにするためのセキュリティ設計Vdi を より使いやすいインフラにするためのセキュリティ設計
Vdi を より使いやすいインフラにするためのセキュリティ設計
 
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
 
SaaS としての IDM の役割
SaaS としての IDM の役割SaaS としての IDM の役割
SaaS としての IDM の役割
 
クラウドにおける Windows Azure Active Directory の役割
クラウドにおける Windows Azure Active Directory の役割クラウドにおける Windows Azure Active Directory の役割
クラウドにおける Windows Azure Active Directory の役割
 

Recently uploaded

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 

Recently uploaded (10)

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 

AD FS deep dive - claim rule set

  • 1. AD FS 2.0 Deep Dive ~ 要求規則を極める ~ 2012.01.21 マイクロソフト株式会社 エバンジェリスト 安納 順一(あんのう じゅんいち) http://blogs.technet.com/junichia/ twitter @junichia 1
  • 2. 本日の内容 • AD FS がどのようにセキュリティトークンを発 行するのかを理解しましょう (要求規則とクレームパイプライン) • 複雑なクレームを含んだセキュリティトークン の発行方法を理解しましょう 2
  • 3. 目次 1. AD FS の基礎知識 2. クレームパイプラインとクレームルール(要求規則) 3. クレームルールを定義するには 4. クレームルールの定義 例 5. クレームルールの処理プロセス 6. カスタムルール 7. カスラムルールの定義 例 3
  • 4. AD FS 2.0 Deep Dive AD FS の基礎知識 さくっと理解しましょう~ 4
  • 5. よくあるシステムモデル • WEB アプリにアクセスするには AD 認証が必要 • WEB アプリが独自にユーザーの情報を管理している Active Directory ドメイン ユーザーの 役割や属性 統合認証 役割ごとの アクセス権 AD DS WEB DB AD LDS アプリ サーバー ブラウザー 5
  • 6. AD FS を使ったシステムモデル • WEB アプリにアクセスするにはセキュリティトークンが必要 • DB サーバーで管理する個人情報を最小限にできる • クライアントやWEBはドメイン参加の必要が無い(SSOしなければ) • WEBとADの通信は発生しない(トークンはブラウザ経由で渡される) ユーザーの 役割や属性 役割ごとの アクセス権 AD DS AD FS WEB DB AD LDS アプリ サーバー ブラウザー 6
  • 7. AD FS を使ったシステムモデル • WEB アプリにアクセスするにはセキュリティトークンが必要 • DB サーバーで管理する個人情報を最小限にできる • クライアントやWEBはドメイン参加の必要が無い(SSOしなければ) • WEBとADの通信は発生しない(トークンはブラウザ経由で渡される) ユーザーの アプリはクラウドでもOK 役割や属性 役割ごとの アクセス権 AD DS AD FS WEB DB AD LDS アプリ サーバー ブラウザー 7
  • 8. セキュリティ トークン/アサーション • パッケージ化されたクレーム • 発行者(オーソリティ)の署名によって信頼性を担保 • 発行者とは事前に信頼関係を結んでおく セキュリティトークン/ アサーション 8
  • 9. クレーム とは • クレームストア(AD DS/LDS/SQL)から収集したユーザー の属性 • アプリケーションの要求に応じて AD FS 側で生成ルール を定義 • アクセス承認に使用される 9
  • 10. AD FS の役割 • AD DS/AD LDS で認証されたユーザーに対して、セキュリティ トークンを発行する(SAML 1.1, SAML 2.0) • セキュリティトークンの発行ルールを集中管理する • セキュリティトークンのソースとなるストアは以下の通り • AD DS • AD LDS • SQL Server ※クラスライブラリを作成して独自のストアを定義可能 AD DS/LDS AD FS Token SQL Server 10
  • 11. AD FS 2.0 Deep Dive クレームパイプラインと要求規則(クレームルール) 11
  • 12. 用語について 基本的に、日本語 UI に沿った用語を使用します。 が…ちょっとアレなところもあるので、以下の対応票を参考にしてください。 日本語 対応する英語 要求 Claim, クレーム 規則 Rule, ルール 要求の種類 Claim Type, クレームタイプ 要求記述 Claim Description, クレームディスクリプション 要求 プロバイダー Claims Provider, クレーム プロバイダー 証明書利用者 Relying Party, リライング パーティ 発行承認規則 Issuance Authorization Rules 受付変換規則 Acceptance Transform Rules 発行変換規則 Issuance Transform Rules 12
  • 13. 要求規則 (Claim Rule) • 入力された情報を処理するためのルール (規則) • 要求規則の種類は大きく分けて3つ – パススルー – 変換 – フィルター 要求規則 他のプロバイ ダー スルー AD DS AD LDS 入力 変換 出力 LDAP SQL Server フィルター その他 13
  • 14. セキュリティトークンの発行処理 AD DS/LDS AD FS Token SQL Server 拡大すると クレームプロバイダー側 リライングパーティー側 ① 受付ける ② 承認する ③ 発行する 受け 発行 発行 付け 承認 変換 変換 規則 規則 規則 クレームパイプライン 14
  • 15. なぜ分かれているのか? • CP と RP が別組織である場合に対応するため 企業A 企業B AD DS/LDS AD FS AD FS Token Token SQL Server アプリ用にトークン 別組織からのトー を整形/変換して送出 クンを検証する する クレームプロバイダー側 リライングパーティー側 ① 受付ける ② 承認する ③ 発行する 受け 発行 発行 付け 承認 変換 変換 規則 規則 規則 15
  • 16. クレーム パイプラインの詳細 証明書利用者 (RP) CP側のクレームストア RP側のクレームストア ① 受付ける ② 承認する ③ 発行する 評価 受け 発行 発行 output output output input input 付け input 承認 変換 トークン 変換 規則 規則 規則 クレームプロバイダー側 リライングパーティー側 要求規則 (Claim Rule) 16
  • 17. 要求規則セット (Claim Rule Set) のタイプ 覚えなくていいです! • 受け付け変換規則 - Acceptance Transform Rule Set 要求プロバイダー ー (AD DS, SQL Server, LDAP) から クレームを収集しセキュリティトークンを生成 • 発行承認規則 - Issuance Authorization Rule Set 証明書利用者 (RP) にアクセス可能なユーザーを評価にするための ルール。ここでは評価するためのルールを定義する。出力されるのは トークン発行OK/NG のみで、ここで定義したクレームは発行されない。 • 発行変換規則 - Issuance Transform Rule Set 「受け付け要求規則」から発行されたクレーム セットを入力とし、 証明書利用者 (RP) に発行するクレームを生成する • 委任承認規則 - Delegation Authorization Rule Set 他のユーザーの代理として証明書利用者 (RP) にアクセスできるかどう かを判断するためのルール • 偽装承認規則 - Impersonate Authorization Rule Set ユーザーが他のユーザーを偽装してアクセスできるかどうかを 判断するためのルール。Windows PowerShell で実装する。 17
  • 19. AD FS 2.0 管理コンソールの基礎 この AD FS 2.0(STS)で扱うことができるクレーム が定義されている。逆に言えばここに定義されてい ないクレームを使うことはできない。先方から要求 されているクレームは個々に定義する。 「要求プロバイダー」とは「IdP/CP」のこと。自分 が RP/SP 側の STS である場合には、ここに IdP/CP となるサーバーを定義する。既定では自身が所属し ている Active Directory ドメインが定義されてい る(「要求プロバイダーであること」が規定値と なっている)。 「証明書利用者」とは「RP/SP」のこと。自分が IdP/CP 側の STS である場合には、ここに RP/SP を 定義することで信頼関係を構築できる。既定では何 も定義されていない。 クレームのもととなる属性情報の格納庫を定義する。 既定では、所属している Active Directory が定義 されている。 19
  • 20. ① 受付ける 受け付け変換規則 • 「要求プロバイダー信頼」で設定する • 「証明書利用者信頼」に渡すためのクレームをセットする 大原則 ここで定義されたクレームのみが、 パイプラインに沿って「証明書利 用信頼」に渡される 20
  • 22. ② 承認する 発行承認規則 • 「証明書利用者信頼」で設定する • 「発行変換規則」を実行するかどうかを判断 • セキュリティトークンは発行しない この設定では「受け付け変換規則」 を通過したユーザー全てに、「発行 変換規則」への進行を許可 22
  • 23. ③ 発行する 発行変換規則 • 「証明書利用者信頼」で設定する • ユーザーに発行するセキュリティトークンのルールを定義する 規定では空(何も発行しない) ただし、「認証メソッド」と「認 証日時」だけは送信される 23
  • 24. 2種類の定義方法 • 要求規則テンプレートを使用 • 規定で用意されているルールを使用する場合 • [LDAP 属性を要求として送信] • [グループ メンバーシップを要求として送信] • [入力方向の要求を変換] • [入力方向の要求をパススルーまたはフィルター処理] • [カスタム規則を使用して要求を送信] • [入力方向の要求に基づいてユーザーを許可または拒否] • [すべてのユーザーを許可] • カスタムルールを定義 • 用意されていないルール(ロジック)を使用する場合 • 用意されていない ldap 属性を使用する場合 • AD DS/ldap 以外のクレームストアを使用する場合 • SQL Server • その他(テキストファイル など) [要求記述]に記載されていないクレームタイプは使用できないので、 事前に定義しておく必要がある 24
  • 25. 要求記述について • システム間で送受信するクレームタイプが定義されている • ここに定義されていないクレームは、要求規則テンプレートで使用するこ とができない あくまでもADFS内の「名 ワールドワイドで一意なクレームの名前 このクレームを外部から受信可 前」。このSTS内部でだけ (だから URI で書かれている)。 能か否か、外部に送信可能か否 通用する。 これを使ってクレームが識別される。 かを定義 25
  • 26. クレームタイプは世界で一意 • クレームタイプとは世界共通のクレームの識別名 • プロパティ名のようなもの • URI 形式で示す • どのようなクレームタイプを使用するかは両者で事前にネゴが必要 • 通常はRP側が定義し、メタデータとして提示する • “適当な命名規約”や”クレームタイプの流用”は後々混乱の元! 企業A 企業B AD DS/LDS AD FS AD FS Token Token SQL Server 同じクレームタイプを使用しない と評価のしようがない! http://schemas.tf.com/claims/companyname = マイクロソフ ト http://schemas.tf.com/claims/age = 43 http://schemas.tf.com/claims/kanaName = あんのう 26
  • 27. (参考)既定のクレーム タイプの表示名 英語表記 日本語表記 E-Mail Address 電子メール アドレス Given Name 指定名 Name 名前 UPN UPN Common Name 共通名 AD FS 1.x E-Mail Address AD FS 1.x 電子メール アドレス Group グループ AD FS 1.x UPN AD FS 1.x UPN Role 役割 Surname 姓 PPID PPID Name Identifier 名前 ID Authentication Method 認証方法 27
  • 28. 英語表記 日本語表記 Deny Only Group SID 拒否のみグループ SID Deny only primary SID 拒否のみプライマリ SID Deny only primary group SID 拒否のみプライマリ グループ SID Group SID グループ SID Primary Group SID プライマリ グループ SID Primary SID プライマリ SID Windows account name Windows カウント名 Authentication Instant 認証タイム スタンプ 28
  • 29. (参考)既定の LDAP 属性 これ以外の ldap 属性を使用する場合には「カスタム規則」を使用 LDAP 属性の名前(lDAPdisplayName) LDAP 属性の名前(lDAPdisplayName) Company (company) State-Or-Province-Name (st) Department (department) Street-Address (street) Display-Name (displayName) Surname (sn) E-Mail-Address (mail) Telephone-Number (telephoneNumber) Employee-ID (employeeID) Title (title) Employee-Number (employeeNumber) Token-Groups (SID) (tokenGroups) Employee-Type (employeeType) Token-Groups - ドメイン名を含む (tokenGroups) Given-Name (givenName) Token-Groups - 完全修飾ドメイン名を含 Is-Member-Of-DL (memberOf) む(tokenGroups) Organizational-Unit-Name (ou) Token-Groups - 名前の指定なし Organization-Name (o) (tokenGroups) User-Principal-Name Proxy-Addresses (proxyAddress) (userPrincipalName) SAM-Account-Name(sAMAccountName) 29
  • 30. 要求規則(クレームルール)の定義 例 1. 要求記述の定義 2. 発行承認規則の定義 3. 発行変換規則の定義 4. クレームルールの定義にありがちなミス 30
  • 31. 要求規則(クレームルール)の定義 例 シナリオ • 役割がエバンジェリストであるユーザーにのみ セキュリティトークンを発行する • セキュリティトークンには「氏名」「役職」「部 署」「メール」を含める ldap 属性 クレームタイプ 氏名 displayname 名前 メール email 電子メール アドレス 部署 department 部署 規定で用意されない 役職 title 役割 ため「要求記述」に 定義する必要がある 31
  • 32. 要求規則(クレームルール)の定義 例 作業概要 ① 要求記述に「部署」を追加 ② 「受け付け変換規則」に4つのクレームタイプを定義 ③ 「発行承認規則」で「エバンジェリスト」以外を抑止 ④ 「発行変換規則」で4つのクレームを定義する ldap 属性 クレームタイプ 氏名 displayname 名前 メール email 電子メール アドレス 部署 department 部署 役職 title 役割 32
  • 33. ① 要求記述に「部署」を追加 クレームタイプ を URI で設定する。 世界で唯一にするため、自社ドメイ ン名を入れるとよい。 33
  • 34. ② 「受け付け変換規則」に4つのクレームを定義 ldap 属性 クレームタイプ 氏名 displayname 名前 メール email 電子メール アドレス 部署 department 部署 役職 title 役割 34
  • 35. これは消さな い! Active Directory から属性を 拾ってクレームに格納する 35
  • 37. ③「発行承認規則」で「エバンジェリスト」以外を抑止 「すべてのユーザーにアク セスを許可」を削除 37
  • 38. 要求規則(クレームルール)の定義 例 CP から受け取ったクレームタイプを判 定する クレームタイプ「部署」に「エバ ンジェリスト」が入っていれば トークン発行を許可する 38
  • 39. ④「発行変換規則」で4つのクレームを定義 ldap 属性 クレームタイプ 氏名 displayname 名前 メール email 電子メール アドレス 部署 department 部署 「証明書利用者信頼」に登録 役職 title 役割 されているRP一覧 39
  • 41. 41
  • 42. 実行結果例 OK NG 役割が「エバンジェリスト」 でなければアクセス拒否 42
  • 44. クレームルールの定義 ありがちなミス ① 現象例 • 「発行承認規則」で[入力方向の要求に基づいてユーザーを許可または拒否] ルールを使用し、クレーム名[役職] に「部長」と書かれているユーザーのみに 許可したいが、全てのアクセスが拒否されてしまう 原因 • [役職] クレームの中身がからっぽ。 「受け付け変換規則」で [役職] クレームが定義されていない場合、「発行承 認規則」でいきなり[役職]クレームによる条件判定を行おうとしても、クレー ムの中身が空のため判定は「NG」となる。事前に、[役職]クレームに値を入力 するルールが定義されている必要がある。 ここでクレームを評価する以前に、クレーム が発行されていない場合、「空」の値が入っ ているものとして評価されてしまう 受け 発行 発行 output output output input input input 付け 承認 変換 変換 規則 OK/ 規則 規則 NG 44
  • 45. クレームルールの定義 ありがちなミス ② 現象 • ルールを変えても送信されるクレームが変わらない 原因 • デスクトップ上に別のブラウザやタブが起動しており、既にクレーム を取得している こいつを閉 じないと…. 同じクレー ムが表示さ れる 45
  • 46. クレームルールの定義 ありがちなミス③ 現象 • 「入力方向の要求をパススルーまたはフィルター処理」ルールを使用して、 「特定の電子メール サフィックスの値と一致する要求値だけをパス スルーす る」を定義しているが、サフィックスが一致しないユーザーに対してもクレー ムが発行されてしまう。 原因 • クレームルールに複数のルールを定 義しており、当該ルール以前に電子 メールアドレスクレームを発行して いる場合、それを取り消すことはで 上で発行し きない。 てしまうと… あとからフィル 対処 ターすることは • 当該ルール以前のルールから電子 できない メールアドレスの発行ルールを削除 する 46
  • 49. 原則 ② 前の規則の出力結果が次の規則の入力となる クレーム 要求規則セット 要求規則1 Output Claim Set Input Claim Set 条件 発行 要求規則2 要求規則 n トークン 49
  • 50. 原則 ③ Output Claim Set に蓄積されたデータがセキュリティ トークンとなる 超重要 一度 Output Claim Set に出力されたクレームは削除できない ※発行ステートメント(issue/add)によって調整する 要求規則セット Output Claim Set 要求規則1 Input Claim Set title = => issue (type = “title”, value = “部長"); “部長” 要求規則2 title = role=“M [type == “title”, Value == “部長”] anager” “部長” => issue (type = "Role", value = “Manager"); カスタムルールを覚えましょう! title role 50
  • 52. カスタムルールとは? 「要求規則言語」を直接記載することで、規定のルールテンプレート では提供されていない複雑な発行処理を行うことができる (例) • 規定で用意されていない ldap 属性を取得したい • 計算結果から判定したい • 正規表現を使用して文字列を判定したい • 出力したくないクレームがある 52
  • 55. カスタムルールの構造 条件部 発行部 条件文 1 True 条件文 2 => && 発行文 && False 条件部 入力方向のクレーム/属性をチェックし、 オプション すべての条件が True の場合に「発行部」が実行される。 条件部が無い場合には無条件で True とみなされる。 発行部 発行するトークンタイプと、 必須 そこに格納する属性/値を指定する。 「クレームが発行されない」 ≠ アクセスできない ※クレームを持っていないユーザーにアクセスを許可するかどうかは アプリケーションの判断 55
  • 56. 書式の基本 ① • 無条件でクレーム「A」に「値」を入れて発行する => issue ( Type = “A”, Value = “<値>” ); • クレーム「A」が”存在する”場合、クレーム「B」に「値」を入れて発行する [Type == “A"] => issue (Type = “B”, Value = “値"); • クレーム「A」が”存在しない”場合、クレーム「A」に「値」を入れて発行す る NOT Exists([Type == “A"]) => issue (Type = “A”, Value = “値"); • クレーム「A」が「値1」ならば、クレーム「B」に「値2」を入れて発行する [Type == “A” , Value ==“値1”] => issue (Type = “B”, Value = “値2”); 56
  • 57. 書式の基本 ② • クレーム「A」が「値1」ならば、クレーム「A」を発行する。それ以外の場合 にはクレーム「A」は発行されない c:[Type == “A” , Value ==“値1”] => issue (claim = c ); • クレーム「A」が「値1」ならば、クレーム「B」にも「A」と同じ値を入れて発 行する c:[Type == “A” , Value ==“値1”] => issue (Type = “B”, Value = c.Value); • クレーム「A」が「値1」でクレーム「B」が「値2」ならば、クレーム「C」に は 値1と値2を結合した値を入力して発行する c1:[Type == “A” , Value ==“値1”] && c2:[Type == “B” , Value ==“値2”] => issue (Type = “C”, Value = c1.Value + c2.Value); && はいくつでもつなげることができる ※ ||(or)に相当する演算子は用意されていない 57
  • 58. 書式の基本 ③ ~ Active Directory からの属性取得 • Active Directory で認証されたユーザーならば、logonCount 属性を取得して クレーム「A」を発行する c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/ claims/windowsaccountname", Issuer == "AD AUTHORITY"] => issue(store = "Active Directory", types = “A”, query = “;logonCount,{0}", param = c.Value); WindowsAccountName クレーム • c 条 • Type == “http://schemas.microsoft.com/ws/2008/06/identity/claims/ 件 windowsaccountname“ WindowsAccountNameというクレームが発行されている 部 クレームを発行したのは “AD AUTHORITY” である • Issuer == "AD AUTHORITY“ ”Active directory”というクレームストア • store = "Active Directory“ から 発 属性を取ってくる 行 • query = “;logonCount,{0}“ 持ってくる属性は「logonCount」で、 ADを検索する条件は windowsaccountname = {0} 部 {0} の値は条件部で渡された • param = c.Value WindowsAccountName の値 58
  • 59. 正規表現の利用 • (例1)クレーム「A」の値が大文字小文字を問わず 「junichia@tf.com」と完全一致ならばクレームを発行する c:[Type == “A”, Value =~ “^(?i)junichia@tf.com$” ] => issue(claim = c); ^(?i)junichia@tf.com$ 行末(これより後 後に続く文字の大文字 ろに文字が無いこ 小文字を区別しない と)を示す 行頭(これ より前に文 特殊な文字の前には 字が無いこ 「(バックスラッ と)を示す シュ)」を付加 正規表現言語要素 http://msdn.microsoft.com/ja-jp/library/az24scfc.aspx 59
  • 60. 正規表現の利用 • (例2)クレーム「A」の値が 3 ケタの数字ならば、クレーム「B」に 「SENIOR」を入れて発行する [Type == “A”, Value =~ "^[0-9]{3}$"] => issue(Type = “B”, Value = “SENIOR”); ^[0-9]{3}$ 行頭(これ より前に文 0から9の文字 行末(これより後 字が無いこ 列が3ケタで ろに文字が無いこ ある と)を示す と)を示す 正規表現言語要素 http://msdn.microsoft.com/ja-jp/library/az24scfc.aspx 60
  • 61. ファンクションの活用 • count:指定されたクレームが持つ値の数をカウントする count ([type == “http://schemas.xmlsoap.org/claims/Reports“] ) > 0 => issue(= "http://schemas.xmlsoap.org/claims/ismanager", value = "true"); • RegExReplace:文字列を置き換える c:[type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"] => issue(type = c.type, value = regexreplace (c.value, "(?<domain>[^]+)(?<user>.+)", "FABRIKAM${user}")); 61
  • 62. 発行ステートメントによる処理の違い • issue :クレームを発行する(output claim set に発行する) • add :input claim set に直接発行する → クレーム発行のためのテンポラリー領域的な使い方 add ステートメント クレーム は output クレーム 要求規則セット を発行しない 要求規則1 => add (type = “title”, value = “部長"); Output Claim Set Input Claim Set 要求規則2 title = [type == “title”, Value == “部長”] role=“M “部長” anager” => issue (type = "Role", value = “Manager"); 62
  • 64. シナリオ • 役割が「エバンジェリスト」にのみトークンを発行する • ユーザーのアクティブ度をログオン回数から判定し、回数に応じた Status 与 える(アプリケーション側では Status に応じて表示するメニューを変える) • 以下のクレームを送信する ldap 属性 クレームタイプ 氏名 displayname 名前 メール email 電子メール アドレス 部署 department 部署 規定で用意されない 役職 title 役割 ため「要求記述」に ログオン回数 logonCount ログオン回数 定義する必要がある ステータス ー ステータス 作業手順 ① 要求記述に「ログオン回数」と「ステータス」を追加 ② 「発行変換規則」で「ログオン回数」と「ステータス」を定義 64
  • 65. 要求記述に「ログオン回数」を定義 クレームタイプ を URI で設定す る。 65
  • 66. 要求記述に「ステータス」を定義 クレームタイプ を URI で設定す る。 66
  • 68. AD の logonCount 属性を「ログオン回数」にセット Active Directory から logonCount 属性を取り出し、クレームタイプ logoncount に入れている 68
  • 69. logoncount をもとにステータスを判定するには logonCount < 10 ならば ステータスは シルバー c:[Type == “http://schemas.tf.com/identity/claims/logoncount”, Value =~ “^[0-9]{1}”] => add (Type = "http://schemas.tf.com/identity/claims/userstatus", Value = "SILVER"); logonCount => 10 and logonCount < 100 ならば ステータスは ゴールド c:[Type == “http://schemas.tf.com/identity/claims/logoncount”, Value =~ “^[0-9]{2}”] => add (Type = "http://schemas.tf.com/identity/claims/userstatus", Value = “GOLD"); logonCount => 10 and logonCount < 100 ならば ステータスは ゴールド c:[Type == “http://schemas.tf.com/identity/claims/logoncount”, Value =~ “^[0-9]{3}”] => add (Type = "http://schemas.tf.com/identity/claims/userstatus", Value = “PLATINUM"); userstatus クレームを発行する => Issue (Type = "http://schemas.tf.com/identity/claims/userstatus“ ) ; 69
  • 70. 完成形 6 userstatusクレームを発行する <要求規則の表 示> 70
  • 71. まとめ 71
  • 72. まとめ ちゃんとし た • Active Directory を構築しましょう • ユーザーアカウントの一元管理 • ユーザーロールの一元管理 • アカウントの有効期限 • パスワードの複雑性 • 認可の管理は IT Pro の腕にかかっています • AD FS を習得しましょう • クレームルールはビジネスロジックです • アプリケーションの対応も同時に進めましょう 72
  • 73. 73