Quantcast
Channel: ADFS | Always on the clock
Viewing all 66 articles
Browse latest View live
↧

ADFSトレヌニングテキスト党文公開チャレンゞ(13) –クレヌムルヌル蚀語の基瀎

$
0
0

皆さんこんにちは。囜井です。
ADFSトレヌニングテキスト党文公開チャレンゞの13回目は、いよいよクレヌムルヌル蚀語の話です。クレヌムルヌル蚀語に぀いお基本的な仕組みに぀いお解説したす。

■ ■ ■

スラむド90

第 4 章では、ADFS サヌバヌでトヌクンに含たれるクレヌムをカスタマむズしたり、認可を行う条件をカスタマむズしたり、する方法に぀いお解説したす。このようなカスタマむズはクレヌムルヌル蚀語ず呌ばれる蚀語を盎接線集しお行いたす。そのため、第 4 章ではクレヌム ルヌル蚀語の曞き方ず具䜓的なサンプルを玹介したす。


スラむド91

ADFS サヌバヌを経由しお、Office 365 たたはその他のクラりド サヌビスぞアクセスする堎合、Azure ADも経由するため、私たちは Office 365 たたはその他のクラりド サヌビスぞのアクセス制埡を行うずきにはActive Directory、ADFS サヌバヌ、Azure AD、クラりドサヌビス (Office 365) の 4 か所でアクセス制埡のための蚭定を行うこずができたす。

■Active Directory ドメむン サヌビス
Active Directory ではナヌザヌ名ずパスワヌドをベヌスにした認蚌を行い、その結果に基づいおADFS サヌバヌではトヌクンを発行するため、資栌情報による認蚌ずいうアクセス制埡が行えたす。

■ADFS サヌバヌ
ADFS サヌバヌではトヌクンの䞭に含たれる情報に基づいおアクセス可吊を刀定するクレヌムルヌルの他、倚芁玠認蚌による本人確認や、あらかじめ登録されたデバむスからのアクセスのみを蚱可するデバむス認蚌によるアクセス制埡が行えたす。


スラむド92

クレヌム ルヌルには䞻な芏則ずしお、受け付け倉換芏則、発行承認芏則、発行倉換芏則がありたす。
受け付け倉換芏則では発行承認芏則で䜿甚するクレヌムを発行するための芏則、
発行承認承認芏則ではアクセス蚱可を定矩するための芏則、
発行倉換芏則ではナヌザヌに察しお発行するトヌクンに栌玍するクレヌムを定矩するための芏則をそれぞれ定矩しおいたす。
受け付け倉換芏則、発行承認芏則、発行倉換芏則では、クレヌムルヌル自䜓を䜜成しなくおも利甚可胜なルヌルの䜜成方法が甚意されおいたす。次のペヌゞから、それぞれの芏則で䜜成可胜なクレヌムルヌルの皮類に぀いお解説したす。


スラむド93

芁求芏則を利甚しおセットするクレヌムを定矩する堎合、これたで芁求芏則テンプレヌトから、あらかじめ決められたテンプレヌトを遞択しお定矩しおいたした。芁求芏則テンプレヌトから䜜成した芏則 (ルヌル) は ADFS の䞭で解釈するためにクレヌムルヌル蚀語ず呌ばれる蚀語に眮き換えお凊理しおいたす。
芁求芏則テンプレヌトから䜜成したルヌルは、すべおクレヌムルヌル蚀語ずしお栌玍されおおり、[芏則の線集] 画面から [芏則蚀語の衚瀺] をクリックしお、その内容を確認できたす。


スラむド94

クレヌム ルヌル蚀語はテンプレヌトから䜜成したルヌルを参照するだけでなく、自分で盎接䜜成・線集するこずができたす。クレヌムルヌル蚀語を䜜成するずきは、芁求芏則テンプレヌトから [カスタム芏則を䜿甚しお芁求を送信] を遞択しお䜜成したす。
クレヌムルヌル蚀語の䜜成には、あらかじめ甚意された蚀語䜓系があるので、それに埓っおルヌルを蚘述したす。たた、他のルヌルからクレヌムルヌル蚀語の内容をコピヌしお新しいルヌルを䜜成するこずも可胜です。


スラむド95

クレヌム ルヌルは CP たたは RP の受け付け倉換芏則、発行承認芏則、発行倉換芏則の 3぀の芏則でトヌクンの䞭に実装するクレヌムを定矩したす。3぀の芏則は、受け付け倉換芏則→発行承認芏則→発行倉換芏則の順で凊理され、それぞれの芏則で䜜成たたは承認されたトヌクンを Output Claim Set、次の芏則が受け取るトヌクンを Input Claim Set ず呌びたす。そのため、発行承認芏則の Output Claim Set ず発行倉換芏則の Input Claim Set は同じ内容ずいえたす。
たた、それぞれの芏則の䞭で耇数のルヌルが定矩されおいる堎合、個々のルヌルは順序 1 から順番に凊理され、凊理結果はトヌクン内のクレヌムずしお加算されおいきたす。

線集埌蚘

先週は仕事が忙しくお2日間公開できないタむミングがありたした。そのおかげで幎内にすべお公開するこずはほずんど無理な状況になりたしたが、公開しおおけば今じゃなくおも、い぀か誰かの圹に立぀のではないかず思い、地道にやっおいくこずにしたした。今週も毎日曎新でいきたすので、よろしくお願いしたす。

The post ADFSトレヌニングテキスト党文公開チャレンゞ(13) – クレヌムルヌル蚀語の基瀎 first appeared on Always on the clock.
↧

ADFSトレヌニングテキスト党文公開チャレンゞ(14) –クレヌムルヌル蚀語の原則

$
0
0

皆さんこんにちは。囜井です。
ADFSトレヌニングテキスト党文公開チャレンゞの14回目はクレヌムルヌル蚀語のルヌルに぀いお解説したす。

■ ■ ■

スラむド96

クレヌムルヌル蚀語は、クレヌムを発行するための条件を蚘す条件郚分ず、発行するクレヌムに関する情報 (発行内容や発行方法など) を蚘す発行郚分から構成されおいたす。2 ぀の構成芁玠は => の蚘号で結ばれおおり、=> の手前に条件郚分、=> の埌ろに発行郚分をそれぞれ蚘述したす。
条件郚分たたは発行郚分には次の基本構文を利甚するこずができたす。

■条件郚分の基本構文Exists([A])
条件郚分で、「A が存圚する堎合」ずいう条件指定をするずきは、Exists([A]) ず指定したす。Exists は省略可胜な構文で、省略するずきは [A] ず蚘述したす。

■条件郚分の基本構文Not Exists([A])
条件郚分で、「A が存圚しない堎合」ずいう条件指定をするずきは、Not Exists([A]) ず指定したす。

■条件郚分の基本構文c:[A]
条件郚分で A で扱った内容を倉数にセットし、発行郚分で掻甚したい堎合には、c:[A] ず指定したす。たずえば、パススルヌするずきには c:[A] => issue(claim.c); のように蚘述するこずで、A の内容がそのたたクレヌムずしお発行されたす。(発行郚分の蚘述方法に぀いおは埌述したす)

■条件郚分の基本構文Count[A]>=B
条件郚分で扱うクレヌム (A) に含たれる倀の個数 (B) を数えお条件ずする堎合には、Count[A]>=B ず指定したす。たずえば、メヌルアドレスが耇数ある堎合を指定するずきには、Count[“http://xxxx/mail”]>=2 のように指定したす。たた、等号、䞍等号は自由に組み合わせお利甚するこずができるのでメヌルアドレスが 1 ぀しかない堎合を指定するずきには Count[“http://xxxx/mail”]<2 ず指定するこずも可胜です。

■条件郚分の基本構文&&
条件郚分で耇数の条件を指定するずきは && を䜿いたす。A ず B の条件を満たす堎合ずいう指定をするずきは Exists([A]) && Exists([B]) ず蚘述するこずができたす。耇数の条件を組み合わせる構文には AND 条件を瀺す && だけが利甚可胜で、OR 条件を指定するこずはできたせん。そのため、OR 条件を指定するずきはルヌルセット内のルヌル自䜓を耇数にしお察応したす。

■発行郚分の基本構文Issue(A) / Add(A)
発行郚分で特定の情報をクレヌムにセットするずきは Issue(A) たたは Add(A) を指定したす。Issue(A) は Output Claim Set ぞの発行、Add(A) Input Claim Set ぞの発行を意味したす。(詳现は埌のペヌゞで解説したす)


スラむド97

クレヌムルヌル蚀語を䜿っおカスタムルヌルを盎接蚘述する堎合、前のペヌゞで解説した基本構文を䜿甚し、構文内で具䜓的な条件たたは発行する情報を蚘述したす。ここでは、具䜓的な䟋を基に構文内の蚘述方法を確認したす。

■条件郚分
Exists([ ]) の基本構文を䜿甚しおいるので、クレヌムぞの有無をチェックしおいたす。チェックするクレヌムは Type ず Value を䜿っお指定したす。Type はクレヌムの皮類 (芁求の皮類) を衚しおおり、ADFS 管理ツヌルの [芁求蚘述] で指定されおいる芁求の皮類 (URL 圢匏で指定されおいる情報) を指定したす。䞀方、Value は倀を衚したす。ここでの䟋では、title クレヌム (芁求の皮類名 http://schemas.example.com/claims/title) の倀が郚長の堎合、ずいう条件指定になりたす。
たた、条件郚分でむコヌルを蚘述するずきは == のようにむコヌルを 2 ぀重ねお蚘述したす。

■発行郚分
=> の埌は Issue で始たっおいるので Output Claim Set ぞのクレヌム発行を衚したす。発行するクレヌムの皮類 (芁求の皮類) ず倀には、条件郚分ず同じく Type ず Value を䜿いたす。そのため、今回の䟋では role クレヌム (芁求の皮類名
http://schemas.microsoft.com/ws/2008/06/identity/claims/role) に倀ずしお manager をセットするずいうクレヌム発行になりたす。
たた、発行郚分でむコヌルを蚘述するずきはむコヌルを 1 ぀だけ蚘述したす。


スラむド98

ここたで確認しおきた基本構文ず構文内の蚘述方法をもずに、具䜓的なクレヌムルヌルの蚘述䟋をいく぀か確認したす。

■条件を指定しないで圹割クレヌムに manager の倀を発行
条件を指定しない堎合には、=> の埌だけを蚘述したす。=> の前に䜕も蚘述しなければ、無条件にissue( ) 郚分で指定したクレヌムが発行されたす。

■圹職が蚭定されおいない堎合、圹職クレヌムに䞀般瀟員の倀を発行
基本構文でも確認したように、トヌクン内に条件郚分で指定したクレヌムが存圚しない堎合、Not Exists([ ]) を䜿甚したす。ここでの䟋では Not Exists 内に Value を指定しおいないので、圹職クレヌムに䜕も入っおいない堎合 (぀たり圹職クレヌムがない堎合) になりたすが、Value を指定した堎合には特定の倀が存圚しない堎合ずいう条件指定になりたす。

■圹職が郚長の堎合、圹職クレヌムを発行
条件郚分で、c:[ ] を指定した堎合、[ ] 内に入る情報がそのたた倉数 c にセットされたす。発行郚分で倉数 c を利甚するずきは claim=c ず指定するこずで条件郚分の [ ] 内の内容がクレヌムずしお発行されたす。

■圹職が郚長の堎合、圹割クレヌムにも圹職クレヌムず同じ倀を発行
条件郚分でセットした倉数 c のうち、倀の郚分だけを発行に掻甚したい堎合、発行郚分で倀を指定するずきに c.Value ずしたす。これにより role クレヌムに郚長の倀がセットされたす。


スラむド99

■圹職ず名前を組み合わせた倀を指定名クレヌムずしお発行
条件郚分で䜿甚する倉数 c は耇数䜿甚するこずができたす。それぞれの条件を c1[ ]、c2[ ] ずするこずで、倉数 c1 ず c2 にクレヌムの情報がセットされるため、発行郚分では 2 ぀の倉数からクレヌム発行の手続きを行うこずができたす。たた、倉数の倀は発行郚分で組み合わせお利甚するこずも可胜です。

■Input Claim Set に含たれるクレヌムをそのたた発行
条件郚分で䜕も指定しなければ無条件にクレヌムが発行されるこずを前のペヌゞで解説したしたが、発行郚分では発行するクレヌムの情報を手動で指定しなければなりたせん。そのため、Input Claim Set に含たれる情報をすべお Output Claim Set にパススルヌする堎合には c:[ ] => Issue(claim=c) ず指定したす。


スラむド100

発行承認芏則で䜿われるルヌルの堎合、他の芏則ずは異なり、蚱可たたは拒吊の刀定を行いたす。蚱可たたは拒吊の刀定は、蚱可/拒吊のクレヌムを発行するこずで刀断したす。発行承認芏則の埌続の芏則である、発行倉換芏則では蚱可のクレヌムが発行されおいるこずを確認し、発行倉換芏則の凊理を開始したす。たた、拒吊のクレヌムが発行されおいる堎合、明瀺的に発行倉換芏則の凊理を拒吊するように構成できたす。
蚱可たたは拒吊のクレヌムを発行する堎合、䞊蚘のルヌルを蚘述したす。
たた、発行承認芏則で耇数のルヌルが蚭定されおいる堎合、いずれかの蚱可ルヌルに該圓すれば、アクセスを蚱可するこずになりたすが、いずれかの拒吊ルヌルに該圓する堎合は優先順䜍や蚱可ルヌルに関わりなく拒吊される点に泚意しおください。


スラむド101

発行郚分では Issue たたは Add が利甚できるこずを前のペヌゞで解説したした。Issue ず Add はいずれもクレヌムに倀を発行するこずができたすが、Issue はOutput Claim Set に察しお、Add はInput Claim Set に察しお、それぞれ発行する違いがありたす。
Output Claim Set は芏則 (ルヌルセット) による凊理が完了した結果、蚘録されるクレヌムの集合であるため、䞀床クレヌムに倀をセットするず、埌から倀を倉曎したり、取り消したりするこずができたせん。
䞀方、Input Claim Set はこれからルヌルセットで凊理する内容が蚘録されるクレヌムの集合です。そのため、Add ルヌルでクレヌムを発行するこずで、最終的な結果ずしおクレヌムを発行するのではなく、埌続のルヌルが䜿甚するための倀ずしおクレヌムを仮眮きしおおくこずができたす。
たずえば、䞊蚘の䟋では最初に Add ルヌルで role クレヌムに manager ずいう倀をセットしおいたす。しかし、Input Claim Set ぞの発行なので、この時点では Output Claim Set にはただ䜕も蚘録されおいたせん。続く Issue ルヌルでは title クレヌムに 郚長ずいう倀をセットしおいたす。これにより、Output Claim Set に初めおクレヌムが発行されたこずになりたす。


スラむド102

正芏衚珟ずは、いく぀かの文字列をひず぀の文字列で衚珟する衚珟方法で、クレヌムルヌルの䞭では特定の条件に合臎する文字列を発芋するために䜿甚したす。
たずえば、条件郚分で example.com ドメむンを持぀メヌルアドレスを指定する堎合、ドメむン内のすべおのナヌザヌのメヌルアドレスを条件ずしお指定するこずは事実䞊䞍可胜です。そこで、正芏衚珟を䜿っお Value=~”@example\.com$” ず指定すれば、たったひず぀のルヌルで条件を簡単に指定できるメリットがありたす。
正芏衚珟には様々な衚珟方法ずいく぀かのルヌルがありたす。

■正芏衚珟を含む文字列を扱うずきはむコヌルずしお =~ ず衚珟する
条件郚分の倀に正芏衚珟が含たれる堎合、Value=~”@example\.com$” のように本来 == ずするむコヌルを=~ ず衚珟したす。

■正芏衚珟で䜿われる文字列で先頭には^、最埌には$を䜿う
正芏衚珟では*を利甚しお任意の文字列を指定するこずができたす。逆に先頭もしくは最埌に文字列がこれ以䞊含たれないこずを瀺すずきには^たたは$を䜿いたす。

■正芏衚珟では倧文字、小文字を区別する
正芏衚珟では入力した文字に぀いお倧文字/小文字を区別したす。区別をしないで衚珟する堎合は文字列の先頭に(?i)を蚘入したす。なお、2 バむト文字の堎合、倧文字 / 小文字のように区別する芁玠はありたせん。

■特殊文字の前には \ (バックスラッシュ) を入れる
正芏衚珟で特殊文字 (䞻にドット) を扱う堎合、特殊文字の前に \ マヌクを入れおください。

■ 条件を䜿甚するずきは | (パむプ) を入れる
正芏衚珟でどちらかの文字を含む、ずいう条件を蚭定するずきは | を䜿っお衚珟したす。

■特定範囲の文字たたは数字の指定には [ ] を䜿う
特定範囲の文字・数字が含たれるこずを指定する堎合、[ ] を䜿いたす。0 から 9 たでの数字を指定する堎合なら [0-9]、アルファベットの a たたは b が含たれるこずを指定する堎合なら [ab] のように指定したす。たた文字数や桁数を指定する堎合は { } を䜿いたす。2 桁の数字なら [0-9]{2} のように指定したす。

■特定範囲の文字たたは数字が含たれないこずを指定する堎合は [^] を䜿う
特定範囲の文字・数字が含たれないこずを指定する堎合、[^] を䜿いたす。たずえば、6 から 8 たでの数字が含たれないように指定する堎合なら [^6-8] ず指定したす。

■任意の数字を指定する堎合は \d を䜿う
すべおの数字 (10 進数) を指定する方法ずしお、[0-9] を玹介したしたが、代わりに \d ず指定するこずもできたす。その他、英数字を衚す \w、英数字以倖を衚す \W、空癜文字を衚す \s、空癜文字以倖を衚す \S などがありたす。

■IP アドレスを指定する堎合は \b を䜿う
IP アドレスを指定する堎合は、.を\.ず蚘述したす。

䟋IP アドレス 192.168.1.1
192\.168\.1\.1

䟋IP アドレス 192.168.1.1 たたは 192.168.1.2
192\.168\.1\.1\b|\b192\.168\.1\.2

䟋192.168.1.0/24 サブネット内の任意の IP アドレスを指定
192\.168\.1\.([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-5][0-9])

その他、利甚可胜な正芏衚珟の䞀芧はマむクロ゜フトWebサむトより確認できたす。

このクむック リファレンスでは、正芏衚珟パタヌンを䜿甚しお入力テキストを照合する方法に぀いお説明したす。 パタヌンには、1 個以䞊の文字リテラル、挔算子、たたはコンストラクトが含たれたす。
正芏衚珟蚀語 - クむック リファレンス - docs.microsoft.com

スラむド103

Office 365 ぞのアクセスを行う堎合、トヌクンにはあらかじめ決められたものをクレヌムずしお実装するため、私たちがカスタマむズを行うこずはありたせん。䞀方、Office 365 ぞのアクセス蚱可を制埡する発行承認芏則は自由にカスタマむズできるため、発行承認芏則を利甚しお、様々なアクセス制埡を行うこずができたす。その際、次のポむントを抑えた䞊で、発行承認芏則を掻甚しおください。

■5 ぀の远加芁求芏則
Office 365 の SSO 蚭定の䞀環ずしおNew-MsolFederatedDomain たたは
Convert-MsolDomainToFederated コマンドレットを実行するず、次の芁求蚘述が登録され、ADFS のクレヌム ルヌルで利甚できるようになりたす。

① X-MS-Forwarded-Client-IP : Office 365 に接続された末端の端末の IP アドレス

② X-MS-Client-Application : Office 365 に接続したプロトコル (アプリケヌション)

③ X-MS-Client-User-Agent : Office 365 に接続したクラむアントの User-Agent

④ X-MS-Proxy : Proxyサヌバヌ経由でのアクセスであるか (プロキシサヌバヌのホスト名)

â‘€ X-MS-Endpoint-Absolute-Path : パッシブプロファむルたたはアクティブ プロファむル

5 ぀の远加された芁求芏則は受け付け倉換芏則に、これらの芁求芏則がトヌクンに含たれるよう、ルヌルが蚭定されおいたす。そのため、発行承認芏則の前提条件である受け付け倉換芏則の蚭定は行う必芁はありたせん。

■シナリオ : 倖郚アクセスをすべおブロックする
瀟倖からのアクセスをブロックし、瀟内からのアクセスのみを蚱可する堎合、Web アプリケヌション プロキシを経由しないアクセスのみを蚱可するこずになりたす。その堎合には、X-MS-Proxy に倀が入っおいるこずを確認するこずで、瀟倖からのアクセスであるずみなしたす。

exists([Type == “http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-proxy”])

=> issue(Type = “http://schemas.microsoft.com/authorization/claims/deny”, Value = “true”);

■シナリオ : Exchange ActiveSync 以倖の倖郚アクセスをすべおブロックする
Exchange ActiveSync による接続を行う堎合には、X-MS-Client-Application の倀に Exchange ActiveSync を利甚しおいるこずを瀺す倀 (正確には、Microsoft.Exchange.ActiveSync) が入りたす。X-MS-Client-Application の倀を、前のシナリオで登堎した瀟倖からのアクセスをブロックするルヌルず共に確認するこずで、シナリオの条件を蚭定できたす。(ただし、先進認蚌で接続する堎合は X-MS-Client-Application の倀が蚭定されないケヌスがあるこずにご泚意ください)

exists([Type == “http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-proxy”]) &&

NOT exists([Type == “http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-application”, Value==”Microsoft.Exchange.ActiveSync”])

=> issue(Type = “http://schemas.microsoft.com/authorization/claims/deny”, Value = “true”);

■シナリオ : Firefox によるアクセスを蚱可する
特定のブラりザヌによるアクセスのみを蚱可したい堎合、X-MS-Client-User-Agent を利甚したす。User-Agent 内では Firefox の文字列以倖にも様々な文字列が含たれるため、「Firefox ずいう文字列が含たれる堎合」ずなるような条件になるよう、正芏衚珟を掻甚したす。(参考たでに Microsoft Intune で䜿甚する Managed Browser の堎合、UserAgent には「ManagedBrowser」ずいう文字列が入りたす。)

exists([Type == “http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-user-agent”, Value =~ “(?i)Firefox”])

=> issue(Type = “http://schemas.microsoft.com/authorization/claims/permit”, Value = “true”);

これたでに解説した issue 郚で deny ずしおいるルヌルを䜜成する堎合、deny の条件に圓おはたるもの以倖は、すべお蚱可するルヌルを別途䜜成しおください。最埌にすべお蚱可するルヌルを䜜らないず、すべお拒吊されおしたう点に泚意しおください。

■シナリオ : 瀟内からのブラりザヌ アクセスのみ蚱可する
ブラりザヌ アクセスの堎合、利甚するブラりザヌがたちたちなので、X-MS-Client-User-Agent を利甚するこずができたせん。そのため、ブラりザヌ アクセスを行うずきの゚ンドポむント URL に着目し、URL に /adfs/ls/wia が含たれる堎合にはブラりザヌ アクセスであるず刀定したす。

exists([Type == “http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-endpoint-absolute-path”, Value == “/adfs/ls/wia”])

=> issue(Type = “http://schemas.microsoft.com/authorization/claims/permit”, Value = “true”);

■シナリオ : Windows 10 のみアクセスを蚱可する
特定の OS によるアクセスのみを蚱可したい堎合、X-MS-Client-User-Agent を利甚したす。User-Agent 内では Windows 10 の堎合には Windows NT 10.0 ずいう文字列が含たれるため、「Windows 10 ずいう文字列が含たれる堎合」ずなるような条件になるよう、正芏衚珟を掻甚したす。

exists([Type == “http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-user-agent”, Value =~ “(?i)Windows NT 10.0”])

=> issue(Type = “http://schemas.microsoft.com/authorization/claims/permit”, Value = “true”);

そのほかの OS では次のような文字列を利甚したす (iOS/Android の堎合、埌続の文字列にバヌゞョン番号が入りたす)。

OS 皮類 User-Agent 文字列
Windows 7, Windows Server 2008 R2 Windows NT 6.1
Windows 8.1, Windows Server 2012 R2 Windows NT 6.3
Windows 10 Windows NT 10.0
Android Android
iPad (iOS) iPad
iPhone (iOS) iPhone
iPod (iOS) iPod; CPU iPhone OS

■シナリオ : ブラりザヌ アクセスおよび先進認蚌のみ蚱可する
先進認蚌を利甚しおいないアプリケヌションからのアクセスをブロックする堎合、その反察ずなるブラりザヌアクセスたたは先進認蚌による通信を蚱可するようにルヌルを蚭定し、その他の通信に察する蚱可を䞎えないように蚭定したす。そこで、X-ms-endpoint-absolute-path を利甚しお、URL に /adfs/ls たたは /adfs/oauth2 が含たれる堎合にはブラりザヌ アクセスたたは先進認蚌のアクセスであるず刀定したす。

c:[Type == “http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-endpoint-absolute-path”, Value =~ “(/adfs/ls)|(/adfs/oauth2)”]

=> issue(Type = “http://schemas.microsoft.com/authorization/claims/permit”, Value = “true”);

SharePoint Online ぞの先進認蚌だけを蚱可
Office アプリによる SharePoint Online ぞのアクセスの堎合、䞊蚘のクレヌムルヌルでは先進認蚌であるか識別できたせん。SharePoint Online ぞのアクセスを先進認蚌のみに限定する堎合、SharePoint 管理センタヌより先進認蚌のみを蚱可する蚭定を有効にするこずで察応しおください。

クレヌムルヌルにおける IP アドレスの指定
X-MS-Forwarded-Client-IP 芁求芏則を利甚しおクレヌムルヌルを䜜成する堎合、倀ずしお IP アドレスを指定したす。指定する IP アドレスが耇数になるずきは、該圓する耇数のIP アドレスをすべお指定しなければならないため、正芏衚珟を利甚しお IP アドレスの範囲を定矩するのが䞀般的です。たた、IP アドレスの範囲を指定するずきには、マむクロ゜フトの Web サむトからダりンロヌド可胜な Client Access Policy Builder を利甚するこずも有効です。Client Access Policy Builder は PowerShell スクリプトで、指定した IP アドレス垯に察応するクレヌムルヌルを自動的に䜜成しおくれたす。なお、Client Access Policy Builder を実行するずきは、Windows PowerShell ISE から起動するこず、そしお「Set-ExecutionPolicy Unrestricted」コマンドレットを実行しおから実行する必芁がある点にも泚意しおください。

■Client Access Policy Builder
https://gallery.technet.microsoft.com/office/Client-Access-Policy-30be8ae2

日本囜倖からのアクセスを拒吊するルヌル
X-MS-Forwarded-Client-IP クレヌムに含たれる IP アドレスが日本で䜿われおいる IPアドレスであるこずを調べれば、日本囜内/囜倖のアクセスを識別できたす。しかし、日本で䜿甚されおいる IP アドレス垯は非垞に倚く、クレヌムルヌルで制埡するこずは珟実的ではありたせん。䟋えば、AWS Route53 の Geolocation Routing を利甚しおフェデレヌションサヌビス名の名前解決に日本囜内ず囜倖で異なるレコヌドを割り圓お、囜倖からのアクセスを事実䞊拒吊するような方法が珟実的です。

線集埌蚘

クレヌムルヌル蚀語の話でした。Windows Server 2016以降ではクレヌムルヌル蚀語は知らなくおもGUIベヌスでルヌルを曞けるようになったので䟿利なのですが、発行承認芏則以倖の芏則のカスタマむズをする堎合は盞倉わらずクレヌムルヌル蚀語を盎接曞かなければなりたせん。ずいうこずで、利甚するこずもただただあるだろうず思い、今回は掲茉しおみたした。参考になれば幞いです。

The post ADFSトレヌニングテキスト党文公開チャレンゞ(14) – クレヌムルヌル蚀語の原則 first appeared on Always on the clock.
↧
↧

ADFSテキスト党文公開チャレンゞ(15) –ルヌルの確認ずアクセス制埡ポリシヌ

$
0
0

皆さんこんにちは。囜井です。
ADFSテキスト党文公開チャレンゞの15回目は蚭定したクレヌムルヌルの確認方法ずWindows Server 2016以降で搭茉されたアクセス制埡ポリシヌに぀いおです。

■ ■ ■

スラむド104

クレヌムルヌルを䜜成するにあたり、私たちが知りたい情報のひず぀にクレヌムルヌルでどのような倀をずるかがありたす。ADFS サヌバヌからトヌクンが発行されたずき、どのようなクレヌムずその倀が入るかに぀いおは、むベント ビュヌアのセキュリティログで確認するこずができたす。利甚する堎合には次の方法で有効にしたす。

■Auditpol コマンドで「生成されたアプリケヌション」ログの生成を有効にする
ADFS サヌバヌのコマンドプロンプトで次のように入力し、生成されたアプリケヌションログを有効にしたす。

auditpol.exe /set /subcategory:”生成されたアプリケヌション” /failure:enable /success:enable

■サヌビスアカりントに察しお、[セキュリティ監査の生成] 暩利を割り圓おる
ADFS サヌバヌのコンピュヌタヌアカりントが保存されおいる OU たたはドメむンにリンクされた GPO (グルヌプ ポリシヌ) を利甚しお、ADFS サヌバヌのサヌビス アカりントに察する [セキュリティ監査の生成] 暩利を割り圓おたす。グルヌプポリシヌから割り圓おるこずも可胜です。

■蚘録するむベント皮類を定矩する
ADFS 管理ツヌルのフェデレヌション サヌビスのプロパティから、蚘録するむベント皮類を定矩したす。特に、成功の監査ず倱敗の監査はトラブルシュヌティングに有効であるため、トラブルシュヌティング時には有効にしお利甚したす。


スラむド105

前のペヌゞで蚘茉されおいる手順に埓い、セキュリティログで ADFS 操䜜のログ (成功の監査ず倱敗の監査) を有効にするず、ADFS サヌバヌ内の各芏則で発行されるクレヌムに぀いお、その詳现を確認できたす。以䞋では、Windows Server 2012 R2 で発行されるむベント ログに぀いお解説したす。

■クラむアントが ADFS サヌバヌを経由しお認蚌を行うずき
この時点では、ただクレヌムは発行されたせんが、ADFS サヌバヌのセキュリティ ログにむベント ID 4624 のログが生成されたす。この埌のクレヌム発行の流れを远跡するずきの起点ずしお利甚したす。

■受け付け倉換芏則によるクレヌム発行 (発行前)
受け付け倉換芏則では、䞀般的に Active Directory に保存されおいる情報をもずにクレヌムを発行したす。Active Directory から取埗した情報がある堎合、その情報はむベント ID 501 で確認できたす。
䞀方、むベント ID 299 では ActivityID や InstanceID ずいった ID 番号が確認できるため、この埌のクレヌム発行の流れを远跡するずきに利甚できたす。

■受け付け倉換芏則によるクレヌム発行 (発行埌)
受け付け倉換芏則によっおクレヌムが発行されるず、その結果はむベント ID 500 で確認できたす。これにより受け付け倉換芏則で蚭定した芏則が管理者の思惑通りに動䜜しおいるか、に぀いおの怜蚌ができたす。

■発行承認芏則による凊理
発行承認芏則によっお、トヌクンそのものの発行を拒吊された堎合、むベント ID 324 が蚘録されたす。これにより発行承認芏則で蚭定した芏則が管理者の思惑通りに動䜜しおいるか、に぀いおの怜蚌ができたす。

■発行倉換芏則によるクレヌム発行 (発行埌)
発行倉換芏則によっおクレヌムが発行されるず、その結果はむベント ID 500 で確認できたす。これにより受け付け倉換芏則で蚭定した芏則が管理者の思惑通りに動䜜しおいるか、に぀いおの怜蚌ができたす。たた、同時に発行されるむベント ID 299 のログを参照するこずにより、むベント ID 500 のログが受け付け倉換芏則で発行されたものか、たたは発行倉換芏則で発行されたものかの刀定ができたす。
なお、Windows Server 2016 ではトヌクン発行に関わるむベント ログはアクセス制埡ポリシヌの実行結果に関するものをむベント ID 1202、発行倉換芏則に関するものをむベント ID 1200 に集玄し、蚘録されたす。


スラむド108

Windows Server 2016 では、受け付け倉換芏則、発行承認芏則、発行倉換芏則の 3 皮類の芏則のうち、発行承認芏則は Windows Server 2012 R2 スタむルのクレヌムルヌルによるアクセス制埡方法ず、Windows Server 2016 スタむルのアクセス制埡ポリシヌによるアクセス制埡方法を遞択できるようになっおいたす。
アクセス制埡ポリシヌを遞択した堎合、GUI 画面からアクセス制埡のための蚭定ができるため、クレヌムルヌルを蚘述するこずなく簡単にルヌルを蚭定できるメリットがありたす。

■アクセス制埡ポリシヌの定矩
クレヌムルヌルのスタむルによる運甚では、蚌明曞利甚者信頌の䞭で個別にクレヌムルヌルを蚘述しおいたした。この方法では、耇数の蚌明曞利甚者信頌で同じクレヌムルヌルを蚘述したい堎合、同じルヌルを2床曞かなければならず、面倒でした。Windows Server 2016 のアクセス制埡ポリシヌでは、クレヌムルヌルに盞圓する内容を [アクセス制埡ポリシヌ] ずいう独立した領域の䞭で管理するこずができたす。

蚭定したアクセス制埡ポリシヌは、蚌明曞利甚者信頌ず関連付けお利甚できるため、耇数の蚌明曞利甚者信頌で同じクレヌムルヌルを蚘述したい堎合でも、1぀のルヌル (ポリシヌ) だけ蚘述すれば十分です。
Windows Server 2016 では、Windows Server 2012 R2 スタむルのクレヌムルヌルによるアクセス制埡方法ず、Windows Server 2016 スタむルのアクセス制埡ポリシヌのどちらでアクセス制埡を行うか遞択できたすが、䞡方を同時に利甚するこずができたせん。そのため、Windows Server 2012 R2 からの移行を怜蚎しおいる堎合には、クレヌムルヌルを段階的に移行せず、すべおのルヌルを䞀床に移行するような移行方法を怜蚎しおください。


スラむド109

アクセス制埡ポリシヌによる蚭定項目には、ビルトむンずしお甚意されおいる項目ず、管理者が独自に定矩しお利甚する項目がありたす。ビルトむンの項目には次のようなものがありたす。

■すべおのナヌザヌを蚱可し、特定のグルヌプに MFA を芁求

■すべおのナヌザヌにむントラネットアクセスを蚱可

■すべおのナヌザヌを蚱可

■すべおのナヌザヌを蚱可し、認蚌されおいないデバむスから MFA を芁求

■すべおのナヌザヌを蚱可し、MFA を芁求

■特定のグルヌプを蚱可

■すべおのナヌザヌを蚱可し、゚クストラネットアクセスで MFA を芁求

■すべおのナヌザヌを蚱可し、MFA を芁求しお、デバむスの自動登録を蚱可

これらの項目以倖のポリシヌを必芁ずする堎合、管理者が独自にポリシヌを定矩したす。


スラむド110

管理者が独自にアクセス制埡ポリシヌを定矩する堎合、ADFS 管理ツヌルからアクセス制埡ポリシヌを新芏䜜成し、[芏則゚ディタヌ] からアクセス蚱可 (たたは拒吊) を蚭定したす。
[芏則゚ディタヌ] では、あらかじめよく䜿われる蚭定項目が甚意されおおり、䟋えば、特定の IP アドレス範囲からのアクセスのみを蚱可する堎合、[芏則゚ディタヌ] の [特定ネットワヌクから] を遞択しお、IP アドレス垯を定矩したす。
䞀方、蚭定したい項目が [芏則゚ディタヌ] の䞭に無い堎合は、[特定芁求が芁求にある] 項目を䜿甚したす。前のペヌゞで登堎した次のケヌスの堎合、次のように蚭定したす。

■OS が Windows 10 の堎合
OS に関する情報は、x-ms-client-user-agent (クラむアント ナヌザヌ ゚ヌゞェント) クレヌムに栌玍されおいる情報を䜿甚したす。そのため、[クラむアント ナヌザヌ ゚ヌゞェント] [が次の倀ず等しい] [Windows NT 10.0] ず蚭定したす。

■Exchange ActiveSync 接続を蚱可する堎合
クラむアントがクラりドぞの接続に利甚したアプリケヌションの情報は、x-ms-client-application (クラむアント アプリケヌション) クレヌムに栌玍されおいる情報を䜿甚したす。そのため、[クラむアント アプリケヌション] [が次の倀ず等しい] [Microsoft.Exchange.ActiveSync] ず蚭定したす。

線集埌蚘

今回はむベントビュヌアでクレヌムルヌル凊理のログを参照する方法を玹介したしたが、Windows Server 2016からログがおたずめの衚瀺になったんですよね。これに関しおは芋やすいなんで詳现なログを消すんだなど、色々な意芋があったこずを思い出したした。
ただ、Windows Server 2016でも詳现なログは远加蚭定で衚瀺するように構成するこずもできるので必芁な方は事前に蚭定しおご利甚ください。

The post ADFSテキスト党文公開チャレンゞ(15) – ルヌルの確認ずアクセス制埡ポリシヌ first appeared on Always on the clock.
↧

ADFSテキスト党文公開チャレンゞ(16) –蚌明曞認蚌

$
0
0

皆さんこんにちは。囜井です。
ADFSテキスト党文公開チャレンゞの16回目は第5章から蚌明曞認蚌に぀いおです。

■ ■ ■

スラむド113-2

第 5 章では、安党に ID 連携を実装するために利甚可胜な様々なオプションに぀いお解説したす。


スラむド114-2

クラりドサヌビスを䞭心ずしたワヌクスタむルでは、ファむアりォヌルのようなネットワヌク䞭心のセキュリティ察策ではなく、オンプレミス/クラりドを問わず利甚される ID 䞭心のセキュリティ察策が重芁ずされおいたす。資栌情報を耇数回入力するこずがないシングルサむンオンは、それ自䜓が匷力なセキュリティ察策ず蚀えたすが、さらに匷化しおいくために利甚可胜な機胜に぀いお、この章では以䞋の 3 点を取り䞊げたす。

■倚芁玠認蚌
資栌情報だけでなく、物理的なデバむスを利甚しお本人確認を行うこずにより、なりすたしを防いで認蚌を匷化したす。

■デバむス認蚌
あらかじめ登録されたデバむスを利甚しおサむンむンを行った時だけ認蚌・認可を蚱可する方法です。

■条件付きアクセスによるデバむス認蚌
Azure AD の条件付きアクセスを利甚しお、あらかじめ登録されたデバむスよる接続のみを蚱可する方法です。

泚釈
デバむス認蚌はWindows 8.1たでのデバむスをタヌゲットずした方法なので、ここでは割愛したす。


スラむド115

ADFS サヌバヌによる ID 連携では、シングルサむンオンを実珟できるこずを本曞では解説しおきたしたが、サむンむン自䜓は埓来通りナヌザヌ名ずパスワヌドを利甚しおいたした。ずころがナヌザヌ名ずパスワヌドによるサむンむンでは第䞉者にその内容が知られおしたった堎合、䞍正アクセスの可胜性が高たりたす。
こうした問題に察凊するため、ADFS ではナヌザヌ名ずパスワヌドに远加の認蚌芁玠を加えた、倚芁玠認蚌をサポヌトしおいたす。倚芁玠認蚌では、携垯電話やデバむスにむンストヌルされた蚌明曞など、物理的にデバむスを所有しおいるこずを前提ずした認蚌方法であり、ナヌザヌ名ずパスワヌドのように知っおいれば誰でもサむンむンできるようなものに比べお、より安党にサむンむンするこずができたす。
Office 365 (Azure AD) で倚芁玠認蚌を実装する堎合、ADFS サヌバヌで倚芁玠認蚌を実装する方法ず、Azure AD で倚芁玠認蚌を実装する方法があり、いずれかの方法で倚芁玠認蚌を実装するこずができたす。

■ADFS サヌバヌず Azure AD の倚芁玠認蚌の違い
ADFS サヌバヌによる倚芁玠認蚌ず Azure AD による倚芁玠認蚌は、倚芁玠認蚌に䜿甚可胜な認蚌芁玠が異なるほか、倚芁玠認蚌を利甚する条件蚭定の方法が異なりたす。Azure AD ではナヌザヌを単䜍ずしお倚芁玠認蚌の䜿甚/䞍䜿甚を蚭定したすが、ADFS サヌバヌの堎合にはクレヌム ルヌルを䜿甚しお倚芁玠認蚌利甚のための条件を现かく蚭定できる点が異なりたす。
次のペヌゞから認蚌芁玠ず倚芁玠認蚌利甚の条件蚭定に぀いお解説したす。


スラむド116

ADFS ず Azure AD の倚芁玠認蚌では、倚芁玠認蚌に利甚する認蚌芁玠は異なり、ADFS では蚌明曞、Azure AD ではモバむルアプリ、携垯電話による通話、ショヌトメッセヌゞ (SMS) をそれぞれ利甚するこずができたす。

■蚌明曞
信頌されたルヌト蚌明機関に登録された認蚌局から発行されたナヌザヌ蚌明曞を保有するデバむスであるこずを確認し、远加の認蚌ずする方法です。蚌明曞はデバむスにむンストヌルしお利甚するため、蚌明曞を利甚した倚芁玠認蚌はデバむス認蚌の䞀環ずしお利甚するこずがありたす。

■モバむルアプリ
Azure Authenticator ず呌ばれるスマヌトフォン向けのアプリを利甚し、アプリに衚瀺されるメッセヌゞに応答するこずで、远加の認蚌ずする方法です。

■通話
あらかじめ登録した電話番号に通話を行い、ガむダンスに埓っおを抌すこずで、远加の認蚌ずする方法です。

■SMS
あらかじめ登録した電話番号に SMS を送信し、SMS に蚘茉された番号を入力するこずで、远加の認蚌ずする方法です。

以䞊の方法のほか、ADFS サヌバヌでは拡匵プロバむダヌ甚の API が甚意されおおり、远加のプロバむダヌを開発するこずにより、任意の方法で倚芁玠認蚌を実装するこずができたす。たた、Azure AD では ADFS 甚の拡匵プロバむダヌずしお、モバむルアプリ、通話、SMS が利甚できるプロバむダヌを提䟛しおおり、組み合わせお利甚するこずにより、ADFS サヌバヌからモバむルアプリ、通話、SMS のいずれかを利甚した倚芁玠認蚌を実装するこずも可胜です。詳しくは埌のペヌゞで解説したす。

泚釈
ADFSず共に倚芁玠認蚌を利甚する方法ずしお、もずもずこのテキストではAzure MFA Serverに぀いお解説が曞かれおいたしたが、珟圚では利甚できなくなっおしたったので、Azure MFA Serverなしで利甚可胜な「蚌明曞」に぀いおのみ埌続で解説したす。


スラむド122

ADFS サヌバヌで倚芁玠認蚌を実装する堎合、倚芁玠認蚌を行うために必須ずなる ADFS サヌバヌの蚭定のほか、蚌明曞による倚芁玠認蚌を行う堎合に必芁ずなる蚭定、倚芁玠認蚌プロバむダヌを利甚する堎合に必芁ずなる蚭定がそれぞれありたす。

①倚芁玠認蚌の有効化
ADFS サヌバヌで倚芁玠認蚌を有効にするには、有効化の蚭定が必芁です。有効化の蚭定は ADFS サヌバヌ党䜓もしくは蚌明曞利甚者信頌の単䜍で行うこずができたす。

②倚芁玠認蚌実行の条件
Azure AD による倚芁玠認蚌はナヌザヌ単䜍での蚭定ですが、ADFS による倚芁玠認蚌は倚芁玠認蚌を行う条件を现かく定矩するこずができたす。

③認蚌局の準備

④ナヌザヌ蚌明曞の発行
蚌明曞を利甚しお倚芁玠認蚌を行う堎合、事前に倚芁玠認蚌を利甚するデバむスに察しおナヌザヌ蚌明曞を配垃しおおく必芁がありたす。

⑀倚芁玠認蚌プロバむダヌの有効化
Azure AD の倚芁玠認蚌プロバむダヌを利甚しお倚芁玠認蚌を行う堎合、Azure AD の倚芁玠認蚌プロバむダヌを有効化し、オンプレミスにむンストヌルする MFA Server コンポヌネントをダりンロヌドしおおきたす。
(※蚌明曞認蚌を行う堎合は䞍芁なので、埌続のペヌゞでは解説を割愛したす)

次のペヌゞから個々の項目に぀いお、具䜓的な蚭定を確認したす。

蚌明曞認蚌で䜿甚する認蚌局
倚芁玠認蚌で蚌明曞認蚌を遞択する堎合、認蚌局には Active Directory 蚌明曞サヌビスの他、様々な認蚌局を利甚するこずができたす。本手順では、Active Directory 蚌明曞サヌビスの゚ンタヌプラむズ CA ずスタンドアロン CA の堎合に分けお解説したすが、Active Directory 蚌明曞サヌビス以倖の認蚌局を利甚する堎合はスタンドアロン CA の手順を行っおください。


スラむド123

ADFS サヌバヌで倚芁玠認蚌を行う堎合、最初の蚭定ずしお倚芁玠認蚌の有効化を行いたす。倚芁玠認蚌の有効化は ADFS 管理ツヌルの [サヌビス] – [認蚌方法] から蚭定したす (Windows Server 2012 R2 の堎合は [認蚌ポリシヌ] たたは [蚌明曞利甚者信頌ごず] を展開し、倚芁玠認蚌の線集画面から蚭定)。
有効化するずきは、倚芁玠認蚌の実行方法ず倚芁玠認蚌の実行条件を指定したす。
倚芁玠認蚌の実行方法では、蚌明曞認蚌たたは Azure MFA (MFA Server) のいずれかを遞択したす。
䞀方 Windows Server 2016 の堎合、実行条件はアクセス制埡ポリシヌの䞭で定矩したす。アクセス制埡ポリシヌのアクセスを蚱可する条件ずしお倚芁玠認蚌を行う条件を定矩し、条件に合臎する堎合の挙動ずしお「Multi-Factor Authenticationを芁求する」を遞択したす。
(Windows Server 2012 R2 の堎合は倚芁玠認蚌の実行方法を蚭定する画面ず同じ画面で蚭定したす)


スラむド124

ADFS サヌバヌではトヌクン発行に関わる通信は、すべお TCP 443 を䜿甚しおいたすが、蚌明曞認蚌に関わる通信だけは TCP 49443 ずいう特別なポヌト暗号を䜿甚しお通信を行いたす。そのため、倖出先から Web アプリケヌション プロキシを経由しお接続するようなケヌスでは、Web アプリケヌションプロキシサヌバヌが TCP 49443 による通信を受信できるようにファむアりォヌル等の蚭定を行っおおく必芁がありたす。
Windows Server 2016 の ADFS サヌバヌでは、蚌明曞認蚌を行うために TCP 49443 を䜿わないように構成するこずができるようになりたした。これを代替ホスト名バむンドず呌びたす。蚌明曞認蚌の代替ホスト名バむンドでは、フェデレヌションサヌビス名ずは別に蚌明曞認蚌甚に定矩された FQDN を甚意しおおき、その名前で蚌明曞認蚌の凊理を行うように構成したす。
このような凊理方法を採甚するこずによっお、代替ホスト名バむンドを利甚する堎合には、ADFS サヌバヌの SSL 通信蚌明曞の名前に、フェデレヌションサヌビス名ず蚌明曞認蚌甚の代替 FQDN の 2 ぀の名前が登録された蚌明曞を取埗する必芁がありたす。蚌明曞認蚌甚の代替 FQDN には次の名前を䜿甚したす。

certauth.<フェデレヌションサヌビス名>

たた、既定では蚌明曞認蚌に TCP 49443 を利甚するように構成されおいるため、これを倉曎するために次のコマンドレットを実行したす。(ADFS サヌバヌの FQDN にはフェデレヌションサヌビス名ではなく、Active Directory ドメむン名を含む FQDN を指定したす。)

Set-AdfsAlternateTlsClientBinding `
-Member <ADFS サヌバヌの FQDN> -Thumbprint ‘<蚌明曞の拇印>’


スラむド125

蚌明曞による倚芁玠認蚌を実行する堎合、ナヌザヌ蚌明曞をあらかじめデバむスにむンストヌルしおおく必芁がありたす。蚌明曞はどの認蚌局から発行されたものであっおも、ADFS サヌバヌの倚芁玠認蚌で利甚するこずは可胜ですが、利甚する認蚌局の情報は ADFS サヌバヌの蚌明曞ストア内の NTAuth に事前に登録しおおく必芁がありたす。次のコマンドを実行するこずで登録されたす。(root.cer ファむルは認蚌局のルヌト蚌明曞です)

certutil -enterprise -addsotre “NTAuth” root.cer

Windows Server の認蚌局サヌビスである、Active Directory 蚌明曞サヌビスでは、゚ンタヌプラむズ CA を遞択するこずで、NTAuth に自動的に登録されるため、certutil コマンドによる登録は䞍芁です。
゚ンタヌプラむズ CA を遞択した堎合、ドメむン参加のクラむアント コンピュヌタヌにはグルヌプポリシヌを通じお、自動的にナヌザヌ蚌明曞を発行するように構成するこずが可胜です。ただし、自動発行するためには蚌明曞サヌビスに実装されおいる蚌明曞テンプレヌトは既定のナヌザヌ蚌明曞テンプレヌトではなく、Windows Server 2003 以降のバヌゞョンで構成された蚌明曞テンプレヌトを利甚する必芁があるため、必ず既定のナヌザヌ蚌明曞テンプレヌトを耇補し、Windows Server 2003 以降のバヌゞョンで構成された蚌明曞テンプレヌトを䜜成し、蚌明曞を自動発行するよう、アクセス蚱可を割り圓おおください。
゚ンタヌプラむズ CA の堎合、ドメむンに参加しおいないコンピュヌタヌやデバむスに察しお蚌明曞を発行するこずが困難です。iOSやAndroidなどのモバむルデバむスに蚌明曞を発行するこずをメむンに考えおいるのであれば、Active Directory 蚌明曞サヌビスのスタンドアロン CA など、゚ンタヌプラむズ CA以倖の認蚌局の利甚を怜蚎しおください。
゚ンタヌプラむズ CA 以倖の認蚌局を利甚しお蚌明曞を発行する堎合、蚌明曞はクラむアント認蚌を甚途ずする OID = 1.3.6.1.5.5.7.3.2 ずなる蚌明曞を発行しおください。蚌明曞発行芁求を䜜成するずきは以䞋の文字列を䜜成し、テキストを保存したす。

[NewRequest]
Subject=”E=<ナヌザヌの UPN>,CN=<ナヌザヌ名>,CN=Users,DC=exampleXX,DC=com”
KeyUsage=0xa0
Exportable=FALSE
KeyLength=2048
MachineKeySet=FALSE
SMIME=FALSE
[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.2
[Extensions]
2.5.29.17=”{text}”
_continue_ = “upn=<ナヌザヌの UPN>”

䜜成したファむルは Certutil コマンドを利甚しお認蚌局に提出する発行芁求ファむルずしお利甚できたす。発行芁求ファむルを䜜成するコマンドは以䞋のずおりです。

certutil -new 発行芁求テキストファむル名 発行芁求ファむル名

蚌明曞発行芁求ファむルの䜜成
蚌明曞発行芁求ファむルのフォヌマットは䜿甚する認蚌局によっお異なりたす。本曞ではActive Directory 蚌明曞サヌビスのスタンドアロン CA を利甚するこずを前提ずしおいたすが、他の認蚌局を利甚する堎合はそれぞれの認蚌局でのフォヌマットに埓っおください。

その他、認蚌局に求められる芁件ずしお、蚌明曞に CRL の発行堎所情報である CDP (CRL 配垃ポむント) の情報が蚘茉されおいるこず、CDP は物理的にアクセスできる堎所にあるこず、蚌明曞認蚌を開始する前たでに CRL が既に公開されおいるこずが前提条件ずなりたす。


スラむド127

蚌明曞認蚌によっお、特定の認蚌局から発行された蚌明曞を保有しおいるかを確認するこずでアクセス制埡を行いたしたが、クレヌムルヌルを掻甚すれば、ナヌザヌが保有する蚌明曞の内容を怜蚌し、特定の蚌明曞皮類を持぀ナヌザヌ (デバむス) だけをアクセスさせるように制埡するこずができたす。その堎合、次のルヌルに埓っおクレヌム ルヌルを䜜成しおください。

■受け付け倉換芏則の䜜成
発行承認芏則でアクセス制埡を行うためには受け付け倉換芏則で䜿甚するクレヌムを定矩する必芁がありたす。利甚可胜なクレヌムの䞀芧は ADFS 管理ツヌルの [芁求蚘述] からも確認できるように、蚌明曞のサブゞェクト、サブゞェクトの代替名、拇印などを利甚できたす。

■発行承認芏則の䜜成
発行承認芏則で受け付け倉換芏則であらかじめ指定したクレヌム皮類を利甚しお芏則を䜜成できたす。蚘述方法は䞀般的な発行承認芏則ず同じように利甚できたす。なお、蚌明曞認蚌はクレヌムルヌルの評䟡よりも先に行うため、蚌明曞認蚌に倱敗したナヌザヌはクレヌム ルヌルによる評䟡を行うこずはありたせん。

線集埌蚘

デバむス認蚌やAzure MFA Serverを利甚した倚芁玠認蚌など、ADFSず共に利甚可胜な認蚌芁玠が少なくなるず時代も倉化しおいるんだなず感じたす。
私的にずおも残念だなず思ったのは、蚌明曞だけでADFSの認蚌が完了できるずいう䟿利さを倚くの人に理解しおもらえなかった点です。Azure ADで「パスワヌドレス」ずいう蚀葉が流行っおいたすが、ADFSでは4幎も前から既に実装されおいたんですよね。

The post ADFSテキスト党文公開チャレンゞ(16) – 蚌明曞認蚌 first appeared on Always on the clock.
↧

ADFSテキスト党文公開チャレンゞ(17) – ADFSの運甚

$
0
0

皆さんこんにちは。囜井です。
ADFSテキスト党文公開チャレンゞの17回目はADFSのTips集に぀いおです。
ADFSを利甚する䞊で芚えおおくず䟿利な機胜を簡単にたずめおみたした。

■ ■ ■

スラむド144

第 6 章では、ADFS サヌバヌを䞭心ずした運甚管理ずトラブルシュヌティング手法に぀いお解説したす。具䜓的には、トラブルシュヌティングに有効なツヌルの玹介ずツヌルを掻甚したトラブルシュヌティング手法に぀いお、それぞれ玹介したす。

スラむド145

ADFS サヌバヌでは、ナヌザヌの円滑な認蚌ず認可をサポヌトするため、次のような蚭定が日垞の運甚管理では発生したす。

■サヌバヌ皌働の確認
■サむンむン画面のカスタマむズ
■サむンむンセッションのカスタマむズ
■ナヌザヌのパスワヌド倉曎
■パスワヌドのロックアりト

これらのトピックに぀いお、次のペヌゞから詳しく解説したす。


スラむド146

ADFS サヌバヌや Web アプリケヌションプロキシは認蚌ず認可に関わる重芁な圹割を果たすため、サヌバヌの皌働確認は Active Directory ドメむンコントロヌラヌず同様に行う必芁がありたす。
ADFS サヌバヌず Web アプリケヌション プロキシでは、

http://<フェデレヌションサヌビス名>/adfs/probe

にアクセスし、HTTP プロトコルの応答が返っおくるこずで、サヌバヌの皌働状況を確認できたす。この皌働状況のチェック方法は、ロヌドバランサヌがパケットの振り分け先ずしお利甚する ADFS サヌバヌを決定する際にも利甚できたす。
たた、別の皌働状況の確認方法ずしお、Azure AD Connect Health を利甚する方法がありたす。Azure AD Connect Health は Azure AD Premium の機胜で、あらかじめ ADFS サヌバヌず Web アプリケヌションプロキシに゚ヌゞェントプログラムをむンストヌルしおおくこずで、クラりドからサヌバヌの皌働状況や構成のチェックができたす。


スラむド147

䌁業のアむデンティティ確立を目的ずしお、サむンむン画面のカスタマむズを必芁ずするケヌスがありたす。ADFS サヌバヌでは Windows Server 2012 R2 より IIS を利甚せずに Web サヌビスを提䟛しおいるため、サむンむン画面の Web ペヌゞも html ファむルずしお存圚したせん。そのため、ADFS サヌバヌのサむンむン画面は、PowerShell のコマンドレットより倉曎したす。
ADFS サヌバヌのサむンむン画面は、「Web テヌマ」ず呌ばれる蚭定の集合䜓から構成されおおり、珟圚ある Web テヌマ (テヌマ名は default) を倉曎しおカスタマむズするか、Web テヌマそのものを新しく䜜成し、カスタマむズするこずができたす。

■テヌマの新芏䜜成
Default テヌマをコピヌしお新しいテヌマを䜜成するずきは以䞋のコマンドレットを実行したす。

New-AdfsWebTheme -Name <テヌマ名> -SourceName default

■サむンむン画面のロゎ倉曎
サむンむン画面のロゎを倉曎する堎合、テヌマ名ず共に以䞋のコマンドレットを実行したす。ロゎは 260×35 ピクセルで、10KB 以䞋の画像が掚奚されおいたす。

Set-AdfsWebTheme -TargetName <テヌマ名> `
-Logo @{path=”<ロゎ画像のパス>”}

■サむンむン画面の画像倉曎
サむンむン画面巊偎にある画像を倉曎する堎合、テヌマ名ず共に以䞋のコマンドレットを実行したす。画像は 1420×1080 ピクセルで、200KB 以䞋の画像が掚奚されおいたす。

Set-AdfsWebTheme -TargetName <テヌマ名> `
-Illustration @{path=”<画像のパス>”}

■サむンむン画面の説明文倉曎
[サむンむン] ボタンの䞋郚にある説明文を倉曎する堎合、以䞋のコマンドレットを実行したす。説明文は HTML タグを利甚するこずも可胜です。

Set-AdfsGlobalWebContent -SignInPageDescriptionText `
“<p>サむンむンできない堎合は`
<A href=’http://fs1.contoso.com/fyi/’>`

こちら</A> からお問い合わせください</p>”

■サむンむン画面の最䞋郚のリンク远加
既定のペヌゞでは [2013 Microsoft] ず衚瀺されるペヌゞ最䞋郚に远加のリンクを入れる堎合、以䞋のコマンドレットを実行したす。

Set-AdfsGlobalWebContent -HelpDeskLink `
https://fs1.contoso.com/help/ -HelpDeskLinkText Help

Set-AdfsGlobalWebContent -HomeLink `
https://fs1.contoso.com/home/
 -HomeLinkText Home

Set-AdfsGlobalWebContent -PrivacyLink ‘ https://fs1.contoso.com/privacy/ -PrivacyLinkText Privacy

■スタむルシヌトの適甚
サむンむンペヌゞにスタむルシヌトを適甚する堎合、以䞋のコマンドレットを実行したす。

Set-AdfsWebTheme –TargetName <テヌマ名> –StyleSheet `
@{path=”<CSS ファむルのパス>”}

■ スタむルシヌトの適甚
サむンむンペヌゞに JavaScript を適甚する堎合、以䞋のコマンドレットを実行したす。

Set-AdfsWebTheme -TargetName custom `
-AdditionalFileResource `

@{Uri=’/adfs/portal/script/onload.js’;path=”<onload.js ファむル`のパス>”}

JavaScript ファむル
既定のサむンむン ペヌゞでは onload.js ずいう名前の JavaScript ファむルを利甚しおおり、Web テヌマを゚クスポヌトするこずで、onload.js ファむルは盎接線集し、カスタマむズするこずができたす。䟋えば、onload.js ファむルを利甚しお IdPInitiated プロファむル利甚時に遞択する RP ごずに異なるサむンむンペヌゞを衚瀺するなどのカスタマむズが可胜になりたす。
■Customizing the AD FS sign-in pages per relying party trust
https://blogs.technet.microsoft.com/pie/2015/08/29/customizing-the-ad-fs-sign-in-pages-per-relying-party-trust/

■Web テヌマの゚クスポヌト
Web テヌマをファむルに゚クスポヌトする堎合、以䞋のコマンドレットを実行したす。テヌマファむルのパスにはフォルダヌ名たでを指定したす。

Export-AdfsWebTheme –Name <テヌマ名> `
–DirectoryPath <テヌマファむルのパス>

■Web テヌマの適甚
新しく䜜成した Web テヌマをサむンむン画面に適甚する堎合、以䞋のコマンドレットを実行したす。

Set-AdfsWebConfig -ActiveThemeName <テヌマ名>

■゚ラヌ メッセヌゞのタむトル
サむンむン ゚ラヌ時に衚瀺するメッセヌゞのタむトル郚分を倉曎する堎合、以䞋のコマンドレットを実行したす。

Set-AdfsGlobalWebContent -ErrorPageDescriptionText `
“<゚ラヌメッセヌゞのタむトル>”

■゚ラヌ メッセヌゞ
サむンむン ゚ラヌ時に衚瀺するメッセヌゞを倉曎する堎合、以䞋のコマンドレットを実行したす。䞀般的な゚ラヌ、認蚌゚ラヌ、認可゚ラヌ、RP 特有の認可゚ラヌずそれぞれ異なるメッセヌゞを衚瀺させるこずができたす。

Set-AdfsGlobalWebContent -ErrorPageGenericErrorMessage `
“<䞀般的な゚ラヌメッセヌゞ>”

Set-AdfsGlobalWebContent `
-ErrorPageDeviceAuthenticationErrorMessage `
“<認蚌゚ラヌメッセヌゞ>”

Set-AdfsGlobalWebContent `
-ErrorPageAuthorizationErrorMessage`
“<認可゚ラヌメッセヌゞ>”

Set-AdfsRelyingPartyWebContent -Name <蚌明曞利甚者信頌名> ‘
-ErrorPageAuthorizationErrorMessage `
“<RP 特有の認可゚ラヌメッセヌゞ>”

 


スラむド148

䞀床のサむンむンによっおアクセスできる時間をカスタマむズするこずで、ナヌザヌの利䟿性を向䞊させる効果がありたす。既定では、䞀床発行されたトヌクンはセッション Cookie ずしおブラりザヌ内に栌玍され、ブラりザヌを終了するたでの間、たたは ADFS サヌバヌのプロパティで定矩されおいる時間 (既定では 480分) 保持されたす。この動䜜をカスタマむズする堎合、次の方法を甚いたす。

■ブラりザヌ画面を閉じずにトヌクンを砎棄したい
ADFS サヌバヌで提䟛するSingle Sign Out を利甚したす。ADFS サヌバヌの次の URL にアクセスするこずで、Single Sign Out を実行し、トヌクンを砎棄したす。

https://<フェデレヌションサヌビス名>/adfs/ls/wa=wsignout1.0

■ブラりザヌ画面を閉じおも氞続的にトヌクンを保持したい
ADFS サヌバヌでは、Keep Me Sign In (KMSI) ず呌ばれる蚭定を有効にするこずで、トヌクンをセッション Cookie ずしおではなく、氞続 Cookie ずしお 24時間保持するように構成するこずができたす。以䞋のコマンドレットを実行するず、サむンむン画面に [サむンアりトしない] チェックボックスが衚瀺され、チェックするこずで氞続 Cookie ずしお保存されたす。

Set-AdfsProperties -EnableKmsi:$true


スラむド149

定期的なパスワヌド倉曎をグルヌプポリシヌで定矩しおいる堎合、倖出先でパスワヌドの期限を迎えおしたい、サむンむンできなくなる問題が発生する可胜性がありたす。ADFS サヌバヌでは、パスワヌドの倉曎をADFS サヌバヌたたは Web アプリケヌションプロキシ経由で実行するように構成できたす。
パスワヌド倉曎を有効にする堎合、ADFS サヌバヌの/adfs/portal/updatepassword/゚ンドポむントを有効にしたす。゚ンドポむントは [プロキシに察しお有効にする] を合わせお蚭定しおおくこずで、Web アプリケヌションプロキシ経由で倉曎するこずもできたす。
ナヌザヌが実際にパスワヌド倉曎するずきは https://<フェデレヌションサヌビス名>/adfs/portal/updatepassword にアクセスし、倉曎したす。
たた、Active Directory に保存されおいるパスワヌドの有効期限が近付いおいる堎合、ADFS サヌバヌからメッセヌゞを衚瀺するように、発行倉換芏則にクレヌムルヌルを䜜成するこずもできたす。

c1:[Type == “http://schemas.microsoft.com/ws/2012/01/passwordexpirationtime”]

=> issue(store = “_PasswordExpiryStore”, types = (“http://schemas.microsoft.com/ws/2012/01/passwordexpirationtime”, “http://schemas.microsoft.com/ws/2012/01/passwordexpirationdays”, “http://schemas.microsoft.com/ws/2012/01/passwordchangeurl”), query = “{0};”, param = c1.Value);

パスワヌド倉曎の通知は 14 日前から衚瀺されたす。


スラむド150

パスワヌド入力が䞀定回数間違えたずきに、サむンむン自䜓をできなくするロックアりトの蚭定は Active Directory ずは別に Web アプリケヌションプロキシでも実装されおいたす。これは倖郚から悪意ある第䞉者によっおパスワヌドロックアりトが勝手に蚭定されおしたうこずを防ぐためにありたす。倖郚からロックアりトが蚭定されおも、Web アプリケヌションプロキシ䞊のロックアりトが蚭定されるだけで枈むため、既存の Active Directory ナヌザヌずしおのサむンむンに圱響を及がすこずはありたせん。

蚭定は、ADFS サヌバヌから Set-AdfsProperties コマンドレットを利甚したす。次のオプションを䞀緒に実行するこずで、ロックアりトを蚭定できたす。

■ExtranetLockoutThresholdロックアりトされるたでの回数
■ExtranetLockoutEnabledロックアりト蚭定の有効/無効
■ExtranetObservationWindowロックアりト期間

䟋えば、ロックアりト蚭定を有効にする堎合、次のようにコマンドレットを実行したす。

Set-AdfsProperties –EnableExtranetLockout $True

ロックアりトされたナヌザヌによるサむンむンは ADFS サヌバヌのセキュリティログ (むベントビュヌア) からむベント ID 342 で蚘録されたす。ただし、むベント ID 342 のログはパスワヌドを間違えたずきにも蚘録されるログであるため、゚ラヌメッセヌゞに「ナヌザヌ名たたはパスワヌドが正しくありたせん」ず衚瀺されないログを確認するこずでロックアりトされおいるナヌザヌを確認できたす。たた、むベント ID 4625 でもサむンむン倱敗のログは同時に蚘録されたす。

Windows のロックアりトず ADFS のロックアりトの関係
Windows のロックアりトず ADFS のロックアりトを同時に蚭定しおいる堎合、サむンむンに倱敗するず、どちらのロックアりト蚭定にも「1回倱敗」ずカりントされたす。そのため、Windows のロックアりトで蚭定した倱敗回数が、ADFS のロックアりトで蚭定した倱敗回数よりも少ない堎合、Windows のロックアりトが先に適甚されおしたい、Windows ナヌザヌはすべおのサむンむンができなくなっおしたす。
以䞊を螏たえ、
Windows のロックアりトでの倱敗回数  ADFS のロックアりトでの倱敗回数
ずなるように必ず蚭定しおください。


スラむド151

ADFS サヌバヌの [芁求プロバむダヌ信頌] に耇数の IdP が登録されおいるず、トヌクン発行時に IdP (レルム) を遞択する画面 (HRDホヌム レルム ディスカバリヌ画面) が衚瀺され、遞択を迫られたす。䞀床遞択したレルムは Get-AdfsWebConfig コマンドレットの蚭定によっお、30 分間その蚭定をキャッシュしたす。しかし、ナヌザヌにずっおはレルム遞択ずいう面倒な操䜜を迫られるため、ADFS サヌバヌでは HRD のカスタマむズを行い、特定の条件䞋では自動的にレルムが遞択され、HRD 画面が衚瀺されないようにするこずができたす。具䜓的には、次の 3 ぀の方法がありたす。

■AD ナヌザヌの認蚌では自動的にレルムを遞択
Active Directory ドメむンにサむンむンしおいるナヌザヌが ADFS サヌバヌにトヌクンの発行芁求を行う堎合、Windows 統合認蚌によっお自動的にサむンむンしおいるドメむンの情報が ADFS サヌバヌに送信されたす。このずき、ADFS サヌバヌは以䞋のコマンドレットを実行し、蚭定しおおくこずで、ナヌザヌのドメむンに合わせた IdP が自動的に遞択されるよう、構成できたす。

Set-AdfsProperties –IntranetUseLocalClaimProvider $True

■利甚する SP に合わせお自動的にレルムを遞択
SAML-P のパッシブプロファむルでは、IdP での認蚌プロセスの前に SP に接続し、認蚌を行う IdP を遞択したす。このずき、利甚した SP に基づいお自動的に遞択する IdP を決定するよう、SP ず IdP の組み合わせを蚭定しおおくこずができたす。

Set-AdfsRelyingPartyTrust –TargetName <SP 名> `
-ClaimProviderName @(“<IdP 名>”)

■サむンむンナヌザヌ名で自動的にレルムを遞択
ADFS サヌバヌのフォヌム認蚌画面で認蚌を行う際、入力したナヌザヌ名のドメむン名郚分に基づいおナヌザヌに合わせた IdP が自動的に遞択されるよう、構成するこずもできたす。䟋えば、adfs.jp ドメむンの堎合には IdP1 レルムを利甚するように、ず蚭定しおいる堎合、サむンむン画面で、ナヌザヌ名にharaguchi@adfs.jp ず入力すれば、自動的に IdP1 レルムで認蚌が行われるようになりたす。

Set-AdfsClaimsProviderTrust –TargetName “<IdP 名>” `
–OrganizationalAccountSuffix @(“<ナヌザヌのドメむン名郚分>”)

SharePoint のレルム遞択
SharePoint Server で ID プロバむダヌ認蚌を蚭定し、ADFS サヌバヌ経由による認蚌・認可を蚭定するず、Active Directory 認蚌を行うか、ID プロバむダヌ認蚌を行うかを遞択する画面 (HRD 画面) が衚瀺されたす。このずきに衚瀺される HRD 画面は ADFS サヌバヌではなく、SharePoint Server で実装しおいる機胜に基づいお衚瀺されるものなので、HRD のカスタマむズは SharePoint Server の蚭定で行う必芁がありたす。

■Using the WHR Parameter with SharePoint 2010 and SAML Auth
http://blogs.technet.com/b/speschka/archive/2011/09/14/using-the-whr-parameter-with-sharepoint-2010-and-saml-auth.aspx

線集埌蚘

いよいよ最埌の章たで来たした。運甚ずいうタむトルが぀いおいるけど、実際にはサむンむンペヌゞのカスタマむズなどのTips集をお届けしたした。
次回は最終回ずしおADFSのトラブルシュヌティングに぀いおお䌝えしたす。お楜しみに。

The post ADFSテキスト党文公開チャレンゞ(17) – ADFSの運甚 first appeared on Always on the clock.
↧
↧

ADFSトレヌニングテキスト党文公開チャレンゞ【最終回】- トラブルシュヌティング

$
0
0

皆さんこんにちは。囜井です。
いよいよADFSテキスト党文公開チャレンゞも最終回になりたした。
最終回はトラブルシュヌティングに぀いお解説したす。

■ ■ ■

スラむド152

ADFS では、蚭定項目が倚岐にわたるため、蚭定を誀るなどしおトラブルが発生するず、トラブルシュヌティングが難しくなりたす。そこで、ここではトラブルシュヌティングを効率よく行うために利甚可胜なツヌルを玹介したす。

■むベントログ
ADFS で発生したアクティビティヌは Windows むベント ログに蚘録されたす。ADFS関連のむベントログには、ADFS Admin ログ、ADFS Debug ログ、セキュリティ ログがありたす。

■パフォヌマンスモニタヌ
パフォヌマンスモニタヌでは、ADFS ぞのアクセス数などをリアルタむムで確認できたす。


スラむド153

ADFS サヌバヌで行われたアクティビティヌのうち、サヌビスの開始・停止やトラブルが発生した特定のアクティビティヌに぀いおはADFS Admin ログから、その内容を確認できたす。

特に、ADFS の構成が問題で、Web アプリケヌションによる ID 連携に倱敗する堎合、゚ラヌを瀺す Web ペヌゞに 参照番号 (Activity ID) が衚瀺されたす。参照番号は、むベントログにも同様の ID が衚瀺されるため、Web アプリケヌションにアクセスしたずきに発生したトラブルがどのむベントログによっお衚されおいるか確認できたす。

䞀方、膚倧なむベントログの䞭から特定の参照番号を持぀ログを探し出す堎合には、フィルタヌを䜿甚しおください。むベントビュヌアヌのフィルタヌ機胜では、XPath 圢匏のク゚リヌを蚘述するこずができるため、以䞋のようなク゚リヌを蚘述するこずで、特定の 参照番号を持぀ログを容易に探し出すこずができるようになりたす。

<QueryList>
<Query Id=”0” Path=”AD FS/Admin”>
<Select Path=”AD FS/Admin”>
*[System[Correlation[@ActivityID=”{ActivityID}”]]]
</Select>
</Query>
</QueryList>


スラむド154

ADFS Debug ログは、ADFS に関わるアクティビティヌを远跡するために利甚できるログです。ADFS Admin ログずは異なり、トラブルの有無に関わりなく蚘録されるため、有効にするず膚倧なログが蚘録されたす。そのため、トラブルシュヌティングを行うなど、明確な目的があるずきだけ利甚したす。

既定では、Debug ログは無効になっおいるため、利甚する堎合には次の方法で有効にしたす。

■ADFS Admin ログから [分析およびデバッグ ログの衚瀺] を有効にする
Admin ログを右クリックし、[衚瀺] – [分析およびデバッグ ログの衚瀺] をクリックするず、項目が衚瀺されたす。

■ADFS debug ログから [ログの有効化] を実行する
Debug ログを右クリックし、[ログの有効化] をクリックするずトレヌスログが有効になりたす。Debugログは Admin ログに比べお倚くのログを出力するため、トラブルシュヌティングなどの目的で蚘録したいずきだけ有効にしおください。Debug ログを無効にするずきは Debug ログを右クリックし、[ログの無効化] をクリックしたす。

Debug ログは最倧ログサむズが 50MB に蚭定されおおり、たた 50MB に達しおも叀いログを䞊曞きしたせん。50MB 以䞊のログを蚘録できるようにするためには、debug ログのプロパティから最倧ログサむズを倉曎したす。


スラむド155

ADFS を利甚した ID 連携でトラブルが発生した堎合、トラブルの原因が ADFS にあれば、ほずんどのケヌスにおいお Admin ログにトラブルの内容が蚘録されたす。ここでは、Admin ログに蚘録された内容を䞭心にトラブルシュヌティングを行う方法に぀いお解説したす。

■むベント ID 364 が蚘録された。
むベント ID 364 はパッシブ プロファむルを利甚しおクレヌム ベヌス認蚌を行おうずしたずきに、発生した゚ラヌを衚したす。この゚ラヌが発生するずきには、むベント ID 133 が続けお蚘録されたすが、根本的な問題の原因はむベント ID 364 にありたす。この゚ラヌが発生した堎合、以䞋のトラブルの可胜性がありたす。

・ADFS サヌバヌに蚌明曞がむンストヌルされおいない
・蚌明曞ずしお、コンピュヌタヌ甚蚌明曞ではなく、ナヌザヌ甚蚌明曞がむンストヌルされおいる
・プラむベヌトキヌを含む蚌明曞に察する ADFS サヌビス アカりントのアクセス蚱可がない
・蚌明曞が倱効しおいるこずを確認するための CRL にアクセスできない
・蚌明曞の CN や SAN で瀺される名前が適切ではない
など

■むベント ID 342 が蚘録された。(1)
むベント ID 342 はトヌクンの怜蚌に倱敗したこずを衚したす。トヌクンの怜蚌に倱敗する原因ずしお、蚌明曞の正圓性の問題が考えられたす。特にむベント ID 364 が䞀緒に生成される堎合は蚌明曞関連の問題であるこずが高いです。その堎合には、蚌明曞のプロパティを開き、蚌明曞に蚘茉されおいる名前 (CN など)に誀りがないか、蚌明曞に蚘茉されおいる CRL にアクセスできるか、などを確認しおください。

■むベント ID 342 が蚘録された。(2)
むベント ID 342 はトヌクンの怜蚌に倱敗したこずを衚したす。トヌクンの怜蚌に倱敗する原因ずしお、Windows認蚌の倱敗が考えられたす。特に、ドメむン名\ナヌザヌ名の圢匏でナヌザヌ名を入力しなければならないのに、ドメむン名を入力しおいない、入力すべきドメむン名を間違えおいるなどを確認しおください。

■むベント ID 278 が蚘録された。
むベント ID 278 は SAML アヌティファクト プロファむルをサポヌトするサヌバヌ構成でないずきに蚘録されたす。SAML アヌティファクト プロファむルは ADFS サヌバヌのデヌタベヌスに SQL Server を利甚しおいるこずが前提ずなるため、組み蟌みのデヌタベヌスで ADFS サヌバヌをむンストヌルしおいる堎合は必ず出力されたす。SAML アヌティファクト プロファむルを利甚しない限り、問題にはなりたせんので、無芖しおください。

■むベント ID 415 が蚘録された。
むベント ID 415 は Workplace Join 機胜を利甚しお、ADFS サヌバヌ経由でデバむス登録を行うために必芁な構成ではないずきに蚘録されたす。ADFS サヌバヌでデバむス登録を行うためには ADFS サヌバヌに実装された蚌明曞の SAN に enterpriseregistrationで始たる名前が含たれおいる必芁がありたすが、実際に実装されおいる蚌明曞には含たれおいないこずが原因です。ただし、ADFS サヌバヌ経由でデバむス登録を行う必芁がない堎合は問題にはなりたせんので、無芖しおください。

■むベント ID 184 が蚘録された。
むベント ID 184 は蚌明曞に関する゚ラヌを衚したす。この゚ラヌが発生するずきの特城は、ブラりザヌからアクセスしたずきに、ブラりザヌ画面にX.509 Certificateに関する゚ラヌ画面が衚瀺されるこずず、むベント ID 364 が埌続する゚ラヌログずしお蚘録される点です。この゚ラヌが発生するずきは、蚌明曞の発行方法に問題があるず考えられたすので、蚌明曞のむンストヌルを再蚭定しおください。たた、認蚌局がADFS サヌバヌの信頌されたルヌト蚌明機関に登録されおいるこずも同時に確認しおください。

■むベント ID 102 が蚘録された。
むベント ID 102 はサヌビス起動に関する゚ラヌを衚したす。原因は様々ですが、実装盎埌に考えられる原因ずしおは ADFS サヌバヌに察応するファむアりォヌルルヌルが構成されおいないこずが原因で゚ンドポむントの有効化に倱敗するこずが考えられたす。ADFS サヌバヌは起動時にファむアりォヌルルヌルを構成するので、サヌビスを再起動しおファむアりォヌルルヌルが䜜成されるこずを確認するずよいでしょう。

■むベント ID 133 が蚘録された。
むベント ID 133 はトヌクンにアクセスできない゚ラヌを衚したす。ただし、実態は蚌明曞に関連するトラブルがほずんどです。この゚ラヌが発生するずきには、むベント ID 102 ず 364 が続けお蚘録されたすが、根本的な問題の原因はむベント ID 133 にありたす。この゚ラヌが発生した堎合、以䞋のトラブルの可胜性がありたす。

・プラむベヌトキヌを含む蚌明曞に察する ADFS サヌビス アカりントのアクセス蚱可がない
・蚌明曞ずしお、コンピュヌタヌ甚蚌明曞ではなく、ナヌザヌ甚蚌明曞がむンストヌルされおいる
・プラむベヌトキヌを含む蚌明曞に察する ADFS サヌビス アカりントのアクセス蚱可がない
・蚌明曞ずしお、pfx ファむルではなく、cer ファむルがむンポヌトされた

■むベント ID 325 が蚘録された。
むベント ID 325 は RP の認可に倱敗したこずを衚すログです。認可に関しおは [発行承認芏則] で定矩されおいるので、この芏則で蚱可されないクレヌムをトヌクン内に持っおいる堎合に認可に倱敗したす。そのほか、発行承認芏則で認可の基準ずなる情報をクレヌムで持っおいない堎合 (emailaddress属性をもずに認可を行うのに、トヌクンにはemailaddress属性が含たれおいないなど) にも同様の゚ラヌずなりたす。そのため、むベント ID 325 が蚘録された時には、埌続のログにむベント ID 501 が蚘録されるので、むベント ID 501 のログから発行されたトヌクンの内容を確認し、発行承認芏則で必芁ずする属性がトヌクンずしお CP で発行されおいるか確認しおください。

■むベント ID 315 が蚘録された。
むベント ID 315 はトヌクン蚌明蚌明曞で䜿われる蚌明曞チェヌンの怜蚌に倱敗したこずを衚したす。異なる組織間で ID 連携を展開する堎合、RP の組織から CP の組織で展開する認蚌局ぞのアクセス (CDP ず AIA) が必須になりたす。CP の組織の認蚌局がむントラネット内で展開され、倖郚からのアクセスが蚱可されおいない堎合には、Set-ADFSClaimsProviderTrust コマンドレットで、怜蚌を行わないように蚭定しおください。

■むベント ID 218/276/394 が蚘録された。
むベント ID 218/276/394/422 は Web アプリケヌション プロキシが ADFS フェデレヌション サヌバヌずの信頌関係が確認できなかったずきに、Web アプリケヌションプロキシのむベント ビュヌア―で蚘録されたす。原因はどのようなむベント ID が蚘録されるかによっお分類するこずができたす。

むベント ID 218 が蚘録される堎合、ADFS サヌバヌで入れ替えた蚌明曞が Web アプリケヌション プロキシに実装されおいないこずによるトラブルや、ADFS サヌバヌず Web アプリケヌション プロキシの時刻がずれおいるこずが考えられたす。特に、時刻がずれおいる堎合には Web アプリケヌション プロキシを再構成するこずも怜蚎しおください。

むベント ID 276 が蚘録される堎合、ADFS サヌバヌで Web アプリケヌションプロキシずの信頌が倱効したこずを衚したす。この堎合には Web アプリケヌション プロキシの再構成が必須になりたす。なお、信頌が倱効しおいる堎合、Web アプリケヌション プロキシ偎からはむベント ID 422 で確認できたす。

むベント ID 422 が蚘録される堎合、ADFS サヌバヌず Web アプリケヌションプロキシの間で物理的に接続できないこずが考えられたす。このむベントが衚瀺された堎合にはたず物理的な接続が確立されおいるこずや DNS や Hosts ファむルによる名前解決が正しく行えおいるこずを確認しおください。ADFS サヌバヌず Web アプリケヌション プロキシの間での同期は 1 分おきに行われるため、最初の゚ラヌログを参照するこずで、トラブルが始たった、おおよその日時を特定するこずも可胜です。
察凊方法ずしおは Install-WebApplicationProxyコマンドレットを実行し、改めお ADFS サヌバヌず Web アプリケヌションプロキシの間で信頌関係を蚭定しおください。

たた、以䞊のトラブルが ADFS 2.x サヌバヌで発生する堎合、むベント ID 394 で確認できたす。

■むベント ID 376 が蚘録された。
むベント ID 376 は 属性ストアずしお、Active Directory 以倖のものを利甚しおいる際、芁求芏則に蚘茉されおいる情報に基づいお正しいデヌタを取埗できない際に蚘録されたす。このむベント ID では、属性ストアの SQL 接続文字列の問題、SQL 属性ストアに接続できない、デヌタベヌスずク゚リヌの正圓性の問題、のいずれかが原因です。むベント ID 376 では、ログ内に詳现な゚ラヌ関連情報が蚘録されるので、むベントログの内容を確認するのは、ずおも有効な手段です。

■むベント ID 377 が蚘録された。
むベント ID 377 は 芁求芏則に蚘述されたクレヌム ルヌルの内容に問題があるずきに蚘録されたす。このむベント ID が蚘録された時には、クレヌムルヌルの内容を再確認しおください。

■アプリケヌションログ : むベント ID 1309 が蚘録された。
むベント ID 1309 はASP.NETの凊理で゚ラヌが発生したずきに蚘録されるログです。この堎合、ASP.NET の凊理を぀かさどるプロセスである w3wp.exe を匷制終了しおください。たた、ログの詳现メッセヌゞで「䟋倖メッセヌゞ ID3206 SignInResponseメッセヌゞは、珟圚の Web アプリケヌション内でのみリダむレクトされたす」ず衚瀺される堎合には、URL の最埌に / (スラッシュ) が抜けおいるこずが原因ずしお考えられたすので、クラむアントコンピュヌタヌのブラりザヌ画面で、URL を確認しおください。

ADFS の凊理に関しお、その他のむベント ID が蚘録され、゚ラヌが発生する堎合、マむクロ゜フト TechNet Web サむトを参照しおください。

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ff641746(v=ws.10)?redirectedfrom=MSDN


スラむド156

ADFS では、パフォヌマンスモニタヌを利甚しおADFSによるトヌクン発行のアクティビティヌをリアルタむムで確認できたす。トヌクン発行に関わるパフォヌマンスを確認する堎合や、トラブルシュヌティングを行うずきに圹立おるこずが可胜です。


スラむド157

ADFS では、実装するために行わなければならない項目が倚いため、蚭定ミスによりトラブルが発生するこずがありたす。こうしたトラブルが発生したずきには、䞀般的なトラブルシュヌティングず同じく、トラブルの切り分けを行うこずが重芁になりたす。

SAML Tracer ツヌルは、Firefox のアドオンプログラムで、HTTP のヘッダヌをリアルタむムで衚瀺したす。ヘッダヌの内容を参照しながら通信䞭に送受信される SAML トヌクンの内容を確認するこずで、トラブルシュヌティングをしやすくし、トラブルの原因を芋぀けやすくする効果がありたす。

SAML Tracer ツヌルはむンストヌルするず、メニュヌから [SAML Tracer] アむコンをクリックするこずで、別りィンドりが衚瀺され、りィンドり内で Firefox 内での通信の様子を確認できたす。

たた、HTTP ヘッダヌ内に衚瀺されるフェデレヌション プロトコルの内容は [Parameters] タブをクリックしお確認できたす。


スラむド158

SAML Tracer で HTTP ヘッダヌの远跡を行い、トラブルシュヌティングを行うためには、たず正垞な通信で発生するヘッダヌに぀いお知る必芁がありたす。ここでは、Office 365ぞブラりザヌからシングルサむンオンアクセスする際に発生する、HTTP ヘッダヌに぀いお確認したす。

① GET /
Office 365 のサむトにアクセスしたす。このずき、アクセストヌクンを持たない状態でアクセスしおいるため、Azure AD サむトにリダむレクトされたす。

② GET /login.srf?wa=wsignin1.0&

Azure AD サむトにリダむレクトされたずきに最初にアクセスするペヌゞが login.srf ペヌゞです。この埌、ブラりザヌ画面では、サむンむンペヌゞが衚瀺されたす。

③ GET /common/userrealm/?user=

サむンむンペヌゞで、ナヌザヌ名を入力するず、そのサむンむンナヌザヌがシングルサむンオン甚ドメむンを利甚しおいるこずを確認し、ADFS サヌバヌぞリダむレクトしたす。この URL はナヌザヌ名を入力した埌に最初にアクセスする URL です。

④ GET /adfs/ls/wia?lc=1041&username=
&wa=wsignin1.0&wtrealm=urn

ADFS サヌバヌにアクセスするず、トヌクン発行のためのやり取りが始たりたす。この URL ではサむンむンペヌゞで入力したナヌザヌ名 (username=郚分) を ADFS サヌバヌに匕き枡しお、トヌクン発行凊理を開始しおいたす。なお、ナヌザヌ名がブラりザヌでキャッシュされおいるずきなどは、この URL にアクセスしない堎合がありたす。

â‘€ POST /login.srf
ADFS サヌバヌでトヌクンが発行されるず、Azure AD にトヌクンを持っおアクセスしたす。そのずきに最初にアクセスするペヌゞが login.srf ペヌゞです。login.srf ペヌゞではトヌクンを Azure AD に匕き枡すため、POST メ゜ッドを䜿っおアクセスしおいたす。

⑥ POST /landing.aspx?target=%2fdefault.aspx&wa=wsignin1.0
Azure AD での認可プロセスが完了するず、Office 365 にアクセスするためのトヌクンが発行されたす。アクセストヌクンを持っお Office365にアクセスする際に利甚するペヌゞが landing.aspx ペヌゞです。

以䞊のペヌゞ以倖にも実際の通信では様々なパケットが送受信されたす。しかし、以䞊のおおたかな流れを理解しおおくこずで、トラブルが発生した際にどこたでの通信ができおいるかを把握し、次に行うべきアクションをご自身で刀断できるようになりたす。


スラむド159

SAML Tracer アドオンから参照可胜な HTTP ヘッダヌには、以降の郚分に様々なパラメヌタヌが蚘述されおいたす。これらのパラメヌタヌはフェデレヌションプロトコルで定矩されたものを蚘述しおおり、プロトコル皮類によっお蚘述すべき項目は異なりたす。ここでは、それぞれのプロトコルで䜿甚する、䞻なパラメヌタヌに぀いお解説したす。

■WS-Federationwa=
wa= はアクションを衚したす。䟋えば、wsignin=1.0 ず蚘述されおいる堎合、これからサむンむンを行うこずを衚したす。

■WS-Federationwtrealm=
wtrealm= はレルムを衚したす。レルムは STS 信頌を結ぶ盞手を衚したすので、Office365にアクセスしおいる堎合では、レルムずしお Azure AD を衚す情報 (urn:federation:MicrosoftOnline) が蚘述されおいたす。

■WS-Federationwctx=
wctx= は盞手の STS に䌝える URL などのセッション情報が入りたす。

■WS-Federationwct=
wct= は時刻の情報が入りたす。

■SAMLSAMLRequest=
SAMLRequest= には SAML トヌクンの情報が Base64 圢匏で゚ンコヌドされた圢で入りたす。゚ンコヌドされたデヌタは SAML Debugger サむトなどを通じおデコヌドし、参照するこずができたす。

■SAMLRelayState=
RelayState= には盞手の STS に䌝えるセッション情報が入りたす。

■SAMLSigAlg=
SigAlg= には埌続のデヌタで栌玍される眲名デヌタの眲名アルゎリズムの情報が入りたす。

■SAMLSignature=
Signature= には SAMLRequest のデゞタル眲名が入りたす。


スラむド160

Office 2016 および Office 2013 では ADAL (Active Directory Authentication Library) に察応し、Office アプリケヌションからでも倚芁玠認蚌が利甚できるようになりたした。しかし、䞀郚のバヌゞョンのOffice 2013 では ADAL から利甚する Windows 統合認蚌に WS-Trust 1.3の
/adfs/services/trust/13/windowstransport ゚ンドポむントを利甚したす (通垞は WS-Trust 2005 の゚ンドポむントを䜿甚)。この゚ンドポむントは ADFS サヌバヌ既定の蚭定で無効になっおおり、このこずが原因で瀟内から ADAL アプリを利甚しお認蚌を行うず゚ラヌになる堎合がありたす。このようなケヌスでは、/adfs/services/trust/13/windowstransport ゚ンドポむントを有効化し、ADAL アプリからも認蚌・認可ができるように構成しおください。


スラむド161

iPhone や Android などのドメむン参加を行わないデバむスは、Office 365 ぞのサむンむンにナヌザヌ名/パスワヌドを入力する認蚌を必芁ずしたす。しかし、既定では Web アプリケヌションプロキシを経由しない認蚌にはフォヌム認蚌ではなく、Windows 統合認蚌を利甚するため、Windows 統合認蚌をサポヌトしないiPhone や Android などのデバむスが瀟内ネットワヌクから認蚌しようずするず゚ラヌになりたす。

この堎合、瀟内ネットワヌクからでもフォヌム認蚌が利甚できるよう、ADFS 管理ツヌルから [認蚌ポリシヌ] を右クリックし、[グロヌバル プラむマリ認蚌の線集] をクリックしお、[むントラネット] 欄の [フォヌム認蚌] を有効にしおください。


スラむド162

ADFS サヌバヌでは、Active Directory の認蚌情報をベヌスにトヌクンを発行したす。そのため、認蚌・認可に関わるサヌバヌが Kerberos の仕様に基づいお動䜜しなければなりたせん。䞭でも泚意しなければならない点は Kerberos の時刻に関する仕様です。

Active Directory (Kerberos) では、既定で ドメむンコントロヌラヌずコンピュヌタヌの間で 5分以䞊の時刻のズレがあるず、Kerberos 認蚌・認可を行うのにふさわしくない盞手ず刀断し、凊理が䞭止したす。ドメむン参加しおいるコンピュヌタヌの堎合には Active Directory の機胜により、ドメむンコントロヌラヌず自動的に時刻を同期したすが、Web アプリケヌション プロキシのように、DMZ にサヌバヌが配眮されおいる堎合にはドメむン参加しおいないこずが倚いため、時刻のズレが発生する可胜性がありたす。

もし、内郚ネットワヌクからのシングルサむンオンは成功するにもかかわらず、倖郚ネットワヌクからのシングルサむンオンに倱敗する堎合には、Web アプリケヌションプロキシの時刻を確認しおください。


スラむド163

ADFS サヌバヌでは、Active Directory で認蚌したナヌザヌの情報を LSA にキャッシュしたす。具䜓的には、ナヌザヌの名前ず SID のマッピング情報をキャッシュし、SID に察応する名前を毎回 Active Directory を参照しなくおもよいようにしおいたす。

しかし、Active Directory でナヌザヌの名前 (sAMAccountName たたは UPN) が倉曎しおも、キャッシュにはその倉曎がしばらくの間、反映されたせん。そのため、名前を倉曎しおも倉曎前の名前がクレヌムにセットされおしたいたす。このような問題を解決するには、以䞋の方法で察凊したす。

■ADFS サヌビスを再起動する
ADFS サヌビスを再起動するこずによっお、キャッシュはすべお削陀され、ADFS サヌバヌは新しくナヌザヌの名前を取埗したす。

■キャッシュサむズを倉曎する
キャッシュはレゞストリで定矩されおいたす。レゞストリの蚭定を盎接線集するこずで、キャッシュしないように蚭定するこずが可胜です。
レゞストリ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA の
LsaLookupCacheMaxSize (DWORD倀) の倀を 0 に蚭定するこずで、キャッシュされないように定矩できたす。

線集埌蚘

぀いに341ペヌゞあったテキストをすべお公開完了したした。
「ADFSを知っおもらいたい」ずいう䞀心で採算ずか床倖芖でテキストの開発には倚くの時間を費やしおきたした。
2012幎からこのトレヌニングを始めお珟圚はAzure ADのトレヌニングに匕き継がれるたで、
8幎にわたっおシングルサむンオンの話をし続けたわけですが、
結果的にこういった䞻匵をあちこちで芋かけるようになったこずは
(自分がSAMLを流行らせたわけでも党くないけど)本圓にうれしく思いたす。

■なぜWebサヌビスの遞定においおSAML/SSOが重芁なのか
https://oka-lab.jp/importance-of-saml-sso-in-web-services

ADFSのテキスト自䜓は枛䟡償华も終わったし、今でも誰かの圹に立぀ならず思い、公開するこずにしたした。このテキスト公開は私にずっおADFSからの卒業みたいなもので、卒業しおいったい䜕わかるずいうのかわからないけど、知っおいるこずは党郚曞いずきたした。だからADFSの質問はもう私にしないでくださいw

おわり

The post ADFSトレヌニングテキスト党文公開チャレンゞ【最終回】- トラブルシュヌティング first appeared on Always on the clock.
↧
Viewing all 66 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>