.NET SDK の使用

目次
casso126jjp
目次
アサーティング パーティでのプログラム フロー
アサーティング パーティでの
Single Sign-On
フェデレーションで、.NET アプリケーションはユーザ ID 情報を
Single Sign-On
フェデレーションに提供できます。アサーティング パーティでの
Single Sign-On
フェデレーションによるプログラム フローは以下のように進行します。
  1. .NET アプリケーションは、.NET SDK を呼び出し ID 情報を有するオープン形式 Cookie を生成します。
  2. .NET SDK は暗号化された Cookie を返します。Cookie を暗号化するために使用されるキーは、
    Single Sign-On
    フェデレーションと帯域外のアプリケーション間で通信される共有秘密キーから派生します。
  3. .NET アプリケーションはアサーティング パーティの
    Single Sign-On
    フェデレーションに Cookie を送信します。
  4. Single Sign-On
    フェデレーションは Cookie を受信し復号化します。
  5. Single Sign-On
    フェデレーションは Cookie からユーザ ID 情報を抽出します。
  6. オプションで、
    Single Sign-On
    フェデレーションは属性を更新または追加することにより Cookie を変更できます。
  7. Single Sign-On
    フェデレーションは[SAML アサーション]にユーザ ID 情報を挿入します。
以下の図は、アサーティング パーティでのプログラム フローを示しています。
This diagram shows how the Federation Manager Asserting Party Operates
依存パーティでのプログラム フロー
依存パーティでの
Single Sign-On
フェデレーションで、.NET アプリケーションは
Single Sign-On
フェデレーションからユーザ情報を受信できます。依存パーティでの
Single Sign-On
フェデレーションによるプログラム フローは以下のように進行します。
  1. Single Sign-On
    フェデレーションはリクエスト処理中に SAML アサーションを受信します。
  2. Single Sign-On
    フェデレーションは最新のユーザ情報で Cookie を作成します。
  3. Single Sign-On
    フェデレーションは FIPS に準拠しているアルゴリズムを使用して、Cookie を暗号化します。Cookie を暗号化するために使用されるキーは、
    Single Sign-On
    フェデレーションと帯域外のアプリケーション間で通信される共有秘密キーから派生します。
  4. Single Sign-On
    フェデレーションは暗号化されたオープン形式 Cookie を .NET アプリケーションに送信します。
  5. .NET アプリケーションは、.NET SDK を呼び出して Cookie の復号および処理を行います。
  6. .NET アプリケーションは、アサーション属性および主要属性に対する値を取得します。
  7. .NET アプリケーションは、スキュー時間を指定するしないにかかわらず、isExpired () メソッドを呼び出すことで Cookie が有効期限切れかどうかを判断できます。このメソッドは、オプションのスキュー時間に追加して、Cookie 上の有効期限スタンプを現在の GMT 時間と比較します。GMT 時間のほうが大きい場合、Cookie は期限切れです。Cookie の有効期限スタンプは、Cookie が作成されるときに setTimeToLive () メソッドを使用して指定されます。
  8. .NET アプリケーションは、AuthnContext および UserConsent の URI を設定することもできます。
以下の図は、依存パーティでのプログラム フローを示しています。
Illustration describing how the relaying party operates
Single Sign-On
フェデレーション .NET SDK のログ記録
.NET SDK ロガーが有効な場合、ロガーは標準出力ストリームにメッセージを書き込みます。ロギングは、デフォルトでは無効になっています。
Single Sign-On
フェデレーション .NET SDK のログ記録を有効にする方法
  1. Logger.xml ファイルを
    .NET SDK インストール ディレクトリ
    \config から .NET SDK DLL the \bin フォルダにコピーします。
  2. Logger.xml で EnableLogging パラメータを yes に設定します。
ロギングが有効になります。
プログラミングの例
以下のコード フラグメントは、オープン形式 Cookie の作成方法を示しています。
// カスタムにバインドされる、インターフェース タイプ IFederationOpenIdentity のオブジェクト参照を取得します // IFederationOpenIdentity インターフェースの実装。// AES128/CBC/PKCS5Padding は唯一サポートされた暗号変換文字列です。
IFederationOpenIdentity openID = IdentityFactory.GetInstance("AES128/CBC/PKCS5Padding", UseHMACFlag);
// Cookie を作成するのに必要なパラメータを初期化します。
openID.InitCookieInfo(Domain, CookieZone, CookieName, Password);
// ユーザ属性を設定します。
openID.LoginID = txtLoginID.Text;
// オープン形式 Cookie を作成し、レスポンス オブジェクトへそれを設定します。
openID.CreateCookie(HttpResponse);
以下のコード フラグメントは、オープン形式 Cookie を消費する方法を示しています。
// カスタムにバインドされる、インターフェース タイプ IFederationOpenIdentity のオブジェクト参照を取得します // IFederationOpenIdentity インターフェースの実装。// AES128/CBC/PKCS5Padding は唯一サポートされた暗号変換文字列です。
IFederationOpenIdentity openID = IdentityFactory.GetInstance("AES128/CBC/PKCS5Padding", UseHMACFlag);
// Cookie を抽出するために必要なパラメータを初期化します。
openID.InitCookieInfo(Domain, CookieZone, CookieName, Password);
// HttpRequest から Cookie を抽出して復号化し、Hashtable に属性を保存します。
openID.ExtractCookie(HttpRequest);
// いくつかの属性を取得します。
String id = openID.LoginID;
String nid = openID.NameID;
.NET SDK サンプル アプリケーション
.NET テスト アプリケーションは、オープン形式 Cookie を生成し、.NET SDK を使用して、それを消費します。テスト アプリケーションは多くの方法で展開できます。推奨される 1 つの方法を以下に示します。
注:
IIS Web Server が ASP.NET コンテンツを許可するように設定されていることを確認します。
.NET SDK テスト アプリケーションを展開する方法
  1. フォルダ(この例では TestApplication)を作成します。
  2. dotNet_SDK_home
    \testapp から TestApplication フォルダに以下のファイルをコピーします。
    • OpenCookieConsumer.aspx.cs
    • OpenCookieConsumer.aspx
    • OpenCookieConsumetUseHMAC.aspx.cs
    • OpenCookieConsumetUseHMAC.aspx
    • OpenCookieGenerator.aspx.cs
    • OpenCookieGenerator.aspx
    • web.config
  3. TestApplication ディレクトリで bin フォルダを作成します。
  4. dotNet_SDK_home
    \bin から TestApplication\bin に CA.Federation.FedIdentitySdk.dll をコピーします。
  5. 編集する web.config ファイルを開きます。<appSettings> セクションで、パスワード、ゾーン、および名前のキーを変更します。
    • パスワードは暗号化キーを引き出すために使用される共有秘密キーです
    • ゾーンは Cookie ゾーンです。
    • 名前は Cookie 名です。生成された Cookie の最終名にはゾーンおよび名前が含まれます。
  6. インターネット インフォメーション サービス マネージャに移動します。
  7. Web サイトを右クリックします。
  8. Web サイトの説明を入力します。
  9. Web サイトに TCP ポート(たとえば 100)を割り当てます。
  10. Web サイト ホーム ディレクトリ(すなわち、テスト アプリケーション ディレクトリの場所)へのパスを入力するか参照します。
  11. [Web サイトのアクセス許可]ダイアログ ボックスで、Read および Run スクリプト(ASP など)のオプションを選択します。
  12. [完了]を選択します。
  13. IIS を再起動します。
  14. .NET SDK テスト アプリケーションのオープン形式 Cookie 作成ページにアクセスします。
  15. ログイン ID を入力します。
  16. [Go]をクリックします。
    システムが、[.NET SDK テスト アプリケーション オープン形式 Cookie の消費]ページを表示します。OpenCookieConsumer.aspx ページに Cookie のコンテンツが表示されます。この場合、Cookie 内の属性は ログイン ID のみです。
  17. .NET SDK テスト アプリケーションのオープン形式 Cookie の使用ページにアクセスします。そこで、オープン形式 Cookie を復号し、Cookie に含まれる主要属性およびアサーション属性を表示します。