1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ADFSが発行するトークンの中身を確認する方法(トラブルシューティング目的)

Last updated at Posted at 2020-08-08

#はじめに

ADFSをIDプロバイダとして利用し、各種アプリケーションへのSSOを実現している環境において、以下のツールを用いて、ADFSが発行するトークンの中身を確認する方法について紹介します。ここでは、ADFSの構築経験または運用経験がある方を対象としております。本投稿で利用するツールは以下となります。

ツール名 概要
Claims X-Ray MSが提供するADFSのトラブルシューティングツール。ADFSが発行したトークンの中身に記載のクレームを確認することが可能
Fiddler 言わずと知れたフリーのWebデバッグツール。ここでは、ADFSが発行するトークンの中身を確認することを目的とする。

#Claims X-Rayの設定

1.以下のサイトにアクセス。
 https://adfshelp.microsoft.com/ClaimsXray/TokenRequest
2.下図の「relying Party Trust Management」をクリック。
pic1.png
3.下図の、「Download」をクリックし、スクリプト(ClaimsXrayManager.ps1)をダウンロードする。
pic2.png
4.ダウンロードしたスクリプトをADFSのプライマリーノードにコピーする。
5.実行をすると、以下のような画面となる。Select Relying Partyで既存の証明書利用者信頼から一つを選択し、「Apply Changes」をクリックすると、Claims X-Rayという名前の証明書利用者信頼が追加され、そこに、上記で選択した証明書利用者信頼の発行規則がコピーされる。デフォルトは、「Default: issue all claims」となっとおり、既定で用意されている以下の発行変換規則が適用される。ここでは、デフォルトを利用して検証。
x:[]=> issue(claim = x);
pic3.PNG

6.ADFSの管理から証明書利用者信頼を確認すると、下図の通り、ClaimXrayが追加されたことが確認できます。
pic4.PNG

これで設定は完了となりますので、次は、実際にClaims X-Rayを使って、ADFSが発行したトークンのクレーム(要求)を確認してみます。

#クレーム(要求)を確認してみる
              
1.以下のサイトに戻ります。
 https://adfshelp.microsoft.com/ClaimsXray/TokenRequest
2.「Federation instance」にフェデレーションサービス名を入力。ここでは、「Authentication type」でFormsを選択し、「Token request」でWS-FED(SAML 1.1)を選択する。「Force fresh authenication」にチェックをいれ、「Test Authentication」をクリック。
pic5.png
3.ADFSの認証画面が表示されますので、AD上に存在するユーザーでサインインをします。
pic8.PNG
4.サインインをすると、以下のような画面となり、ADFSが発行したトークンのクレームを確認することができます。
pic9.PNG

カスタムのクレーム規則を作成した際などに、クレーム(要求)が正しく送られているかを確認することが可能となるため、トラブルシューティングなどの際に活用すると便利かと思います。次は、Fiddlerを利用して、ADFSが発行する生のトークンを見ていきます。
なお、Claims X-ray自体を利用しても、生のトークンを確認することが可能です。

#Fiddlerの設定

1.以下のサイトからFiddlerをダウンロードします。
 https://www.telerik.com/fiddler
※ここでは、Fiddler Classicを利用します。
2.ADFSの証明書利用者信頼(Relying Party)に登録したアプリケーション(ここでは、上記で設定したClaims C-Rayを用います。)にアクセスするPCに、Fiddlerをインストールします。
3.Fiddlerのインストールが完了したら、起動をし、https通信を復号化するための設定をします。
 ・まずは、「Tools」→「Options」をクリックします。pic6.PNG
 ・「Decrypt HTTPS traffic」と「Ignore server certificates errors(unsafe)」
 にチェックを入れ、「OK」をクリックします。
pic7.PNG

これで、設定は完了となりますので、実際に先ほどのClaims X-rayを利用して、ADFSが発行するトークンの中身を確認していきます。

#Fiddlerでトークンの中身を確認する。

1.Fiddlerを実行した状態で、先ほどのclaims X-Rayを利用して、認証をします。
※設定値は上記と同じものを用います。
2.認証が成功すると、ADFSがトークンを発行しますので、それをFiddlerで、下図の通り、キャプチャできていることを確認します。
pic10.PNG
3.メモ帳にコピーすると以下のような感じです。。
pic11.PNG

4.先ほど、Claims X-Rayで確認したクレームの情報などを確認することができます。
 例えば、"windowsaccountname"というクレームだと、以下の通りに情報が格納されています。

<saml:Attribute AttributeName="windowsaccountname" AttributeNamespace="http://schemas.microsoft.com/ws/2008/06/identity/claims"><saml:AttributeValue>FOO\testuser</saml:AttributeValue>

また、電子署名についても記載されており、その部分を切り取り、.cer拡張子で保存をすると、ADFSのトークン署名証明書と拇印が一致していることも確認できます。

#備考

今回は、ID連携プロトコルとして、WS-Federationを用いましたが、SAMLを選択した場合でも同様に確認することが可能です。また、本検証では、認証方式としてForms認証を用いましたが、選択した認証方式によって、リクエストヘッダーの値は以下の通りとなります。

認証方式 WS-Federation SAML
Forms wauth=urn:oasis:names:tc:SAML:1.0:am:password RequestAuthenticationContext=urn:oasis:names:tc:SAML:2.0ac:classes:Password
Windows Integrated Authentication wauth=urn:federation:authentication:windows RequestedAuthenticationContext=urn:oasis:names:tc:SAML:2.0:ac:classes:Kerberos
Certificate wauth=urn:ietf:rfc:2246 RequestedAuthenticationContext=urn:oasis:names:tc:SAML:2.0:ac:classes:X509
Multifactor Authentication wauth=http://schemas.microsoft.com/claims/multipleauthn RequestedAuthenticationContext=http://schemas.microsoft.com/claims/multipleauthn
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?