マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

WIF:Windows Identity Foundation

  • Windows Identity Foundation (WIF) は、クレームベース認証に対応のアプリケーションを構築するためのフレームワークです。
  • このフレームワークは、WS-Trust プロトコルと WS-Federation プロトコルを抽象化し、
    セキュリティ トークン サービスと要求に対応したアプリケーションを構築するための API を開発者に提供します。
  • アプリケーションでは、WIF を使用して、STSから発行されたトークンを処理し、
    RP(Web アプリケーションまたは Web サービス)でクレームベースの決定を下すことができます。

.NET Coreでは「Microsoft.AspNetCore.Authentication.WsFederation」を使用するもよう。

Protocol

WS-FED

サポートあリ。

アサーションはSAMLやJWTを選択可能。

  • .NETで使えるアイデンティティ連携のためのライブラリまとめ(後編) - Build Insider
    http://www.buildinsider.net/web/msidentitydev/02

    セキュリティ・フォーマットの処理について、前述したSAML AssertionはWIFで処理することが可能だが、
    JWTについてはNuGetで配布されている「JSON Web Token Handler For the Microsoft .Net Framework 4.5」
    (本執筆時点では開発者プレビュー版)を使用することで処理可能だ。

SAML

Extensionでサポートしているようですが、更新が、CTPで止まっているらしいです。

  • IdM実験室: [Azure/SAML]Azure Webアプリにお手軽テスト用SAML SPをデプロイする
    http://idmlab.eidentity.jp/2015/04/azuresamlazure-websaml-sp.html

    ※WIFとかADALがちゃんとSAMLを喋れればいいんですが、
    ws-federation/OpenID Connectなんで実はSAML SPってぽっかり穴が空いています。

FedUtil?

RPと STSとの間で信頼を簡単に確立できる。

準備

STS側の構築

  • STS(ADFS)側の構築を完了させておく。
  • STSのエンドポイントのFQDNとサーバ証明書のCN(Common Name)は一致させておく。

前提ソフトウェアをインストール

RPで以下の前提ソフトウェアをインストールする。

  • IIS
  • ASP.NET 3.5 and ASP.NET 4.5
  • .NET Framework 3.5 Features and Windows Identity Foundation 3.5 options.

SDKのダウンロードとインストール

RPでSDKのダウンロードとインストールをする。

  • WindowsIdentityFoundation?-SDK-4.0.msi ファイルを実行して、
    Windows Identity Foundation SDK 4.0をデフォルトオプションでインストール。

STS側のエンドポイントの証明書を検証

STS側の認証連携を行うHTTPSのエンドポイントの証明書が
自己証明書の場合、RPから以下の手順を実施して検証できる。

  • フェデレーション・メタデータを交換するSTSのHTTPSエンドポイントに
    インターネット・エクスプローラーを使用してアクセスする。
  • 証明書が自己証明書の場合、アドレスバーに証明書のエラーが表示されるのでこれをクリックする。
  • [証明書は信頼できません]ダイアログ・ボックスで[証明書の表示]を押下。
  • [証明書のインストール]ボタンを押下して以下のストアに証明書をインストールする。
    • ストア:[ローカル コンピューター]の[信頼されたルート証明機関]

サンプルのクレームベース認証アプリケーションをIIS配下でホスト

以下のサンプルを利用可能

実行

WIFのインストール・ディレクトリに移動してFedUtil?.exeを実行する。

  • C:\Program Files (x86)\Windows Identity Foundation SDK\v4.0 folder.
  • FedUtil?.exeファイルをダブル・クリックして実行する。

Webアプリケーション・プロジェクトを右クリックし、
[Add STS reference]を選択でもFedUtil?.exeを実行可能なもよう。

設定

Welcome画面

  • [Application configuration location]テキスト・ボックス
    WebアプリケーションのWeb.configを設定する。
  • [Application URI]テキスト・ボックス
    WebアプリケーションのURL(仮想ディレクトリ)を設定する。
  • [Next]ボタンをクリック。

[Security Token Service]画面

  • [Use an existing STS]オプション・ボタンを選択する。
  • STS WS-Federation metadata document locationテキスト・ボックスに入力
    e.g. : https://[ADFSのFQDN名]/federationmetadata/2007-06/federationmetadata.xml
  • [Next]ボタンをクリック。

[STS signing certificate chain validation error]画面

  • 証明書が自己証明書の場合、
    [Disable certificate chain validation]オプション・ボタンを選択する。
  • 証明書を正規の認証局が発行した場合、
    [Enable certificate chain validation]オプション・ボタンを選択する。
  • [Next]ボタンをクリック。

[Security token encryption]画面

  • 暗号化が不要
    [No encryption]オプション・ボタンを選択する。
  • 暗号化が必要
    [Encryption]オプション・ボタンを選択する。
    • 証明書を選択する。
  • [Next]ボタンをクリック。

[Offered claims]画面

  • ADFS2.0 (STS) から提供される クレームの一覧が表示される。
  • [Next]ボタンをクリック。

[Summary]画面

Summary 画面が表示されるので、内容を確認して、 Finish ボタンをクリック。

結果の確認

  • Web.configFederationMetadata?.xml が作成(or 更新) される。
    • Web.config
      • claimTypeRequired? 要素:要求するクレームの種類を変更できる。
  • FederationMetadata?.xml
    • FedUtil?.exe を /u オプションを指定してWeb.config の内容で FederationMetadata?.xml を更新する。
      %FEDUTILPATH%\FedUtil.exe /u Web.config
  • Trust managemet に 下記の日時更新タクスが登録される。

    Schedule a task to perform daily WS-Federation metadata updates

参考

Netplanetes

サンプル


Tags: :認証基盤, :クレームベース認証, :.NET開発, :ASP.NET


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-07-02 (木) 18:25:51 (1386d)