Open棟梁Project - マイクロソフト系技術情報 Wiki

* 目次 [#kd1172d7]
#contents

*概要 [#jc8e8ef1]
認証基盤の選定や実装について纏めています。

*種類 [#o815c7c4]

**HTTPの認証 [#gf2d8060]

***匿名アクセス [#eed67f54]
-匿名アクセスを許可する。
-通常サービスの実行アカウントで実行される。
-(偽装をおこなえば)匿名アカウントで実行される。

***基本認証 [#mb2c8e20]
-ユーザー名とパスワードを入力するためのダイアログ ボックスが表示される。
-アカウント情報は暗号化されないBase64文字列でサーバに送られる。
-通常サービスの実行アカウントで実行される。
-(偽装をおこなえば)認証されたアカウントで実行される。

***ダイジェスト認証 [#tda3ddf0]
-ハッシング テクノロジーを使用し、解読不能な方法でユーザー情報を送信する。
-通常サービスの実行アカウントで実行される。
-(偽装をおこなえば)認証されたアカウントで実行される。

**Windwos認証 [#m4be745d]
HTTPやSMBなどの通信ライブラリに組み込まれており、~
実行アカウントを使用しオートネゴシエートで認証することが可能。

***NTLM認証 [#zb3340de]
-[[ミラーアカウント]]でも、[[Active Directory]]でも可能。
-(偽装をおこなえば)認証されたアカウントで実行される。

***ケルベロス認証 [#o8a80b4b]
-「[[Active Directory]]」が必要、インターネットに拡大できない。
-(偽装をおこなえば)認証されたアカウントで実行される。

**クッキー認証チケット型 [#la8f4c73]
クッキー認証チケットを発行するタイプ
-認証されたアカウントを偽装するにはカスタムの実装が必要。

***統合認証基盤型 [#mf25a493]
-SiteMinder、IceWallなどの実績のあるSSOをサポートする統合認証基盤

***実装ルール型 [#f5c72a77]
各アプリケーションに認証クッキーの(発行と)認証の機能を実装する。
各アプリケーション(や、使用しているフレームワーク)に~
認証クッキーの(発行と)認証の機能を実装している方式。

以下、ASP.NETの認証の変遷

-Forms認証~
Webアプリケーション毎に認証Formを作成する

-ASP.NET MembershipProvider~
LDAPやユーザマスタテーブルなどの資格情報ストアを使用した認証のフレームワーク。

-ASP.NET Identity
--フォーム認証ではなく、OWINの認証用ミドルウェア(?)を使用 
--資格情報ストアとして、Microsoftアカウント、Facebook、Twitter、Google等のソーシャルアカウントを利用可能

-参考
--「ASP.NET Identity」の登場背景と実際の使い方 (1-4):CodeZine~
http://codezine.jp/article/detail/7709

--新しい認証の仕組み ー ASP.NET Identity  どっとねっとふぁん~
https://blogonos.wordpress.com/2013/11/29/%E6%96%B0%E3%81%97%E3%81%84%E8%AA%8D%E8%A8%BC%E3%81%AE%E4%BB%95%E7%B5%84%E3%81%BF-%E3%83%BC-asp-net-identity/

**[[クレームベース認証]] [#gf1f2d37]

-WIF(Windows Identity Foundation)
--認証連携(IDフェデレーション)をサポート。

--OpenId Connectをサポート。
---Microsoft.Owin.Security.OpenIdConnect
---WIF Extension for OAuth(OpenID Connect)

-参考
--特集:ASP.NET 4.5新機能概説(3)- @IT~
ASP.NET MVCの新機能(OAuth/OpenIDによるログイン認証)~
http://www.atmarkit.co.jp/ait/articles/1304/23/news056_6.html

*選定 [#i8941f0c]

**HTTPの認証 [#eb58ce03]
HTTPの認証なのでWebサーバでサポートされる。

**Windwos認証 [#m0ad1078]
Windows環境であれば。

-NTLM認証をサポートするクライアントも多い。

-SambaでLinux環境のケルベロス認証も可能。
--Samba4でのActive Directory構築 - OSSでLinuxサーバ構築~
http://www.oss-d.net/samba4/ad

***NTLM認証 [#zf1dd267]
-[[ミラーアカウント]]でも、[[Active Directory]]でも可能。
-デスクトップへのログインと連動したSSO認証が可能。~
ただし、[[ミラーアカウント]]の場合は、アカウントの管理が面倒。

-ベースクライアント認証でのダブルホップが不可能。
-ADが無いので、別途DBなどを用意して追加の承認の機能を実装できる。

***ケルベロス認証 [#a8d0341c]
-「[[Active Directory]]」が存在する場合。
-デスクトップへのログインと連動したSSO認証が可能。

-ベースクライアント認証でのダブルホップが可能。
-ADが有るので、各アプリケーションにLDAPを使用した追加の承認の機能を実装できる。

**クッキー認証チケット型 [#q11063ab]
-各アプリケーションに認証情報を使用した承認の機能を実装する。

***統合認証基盤型 [#bcd2a481]
-認証をISAPIレイヤで処理するので、基盤構築作業として対応でき、~
Webアプリケーション側に特別な作り込みは必要ないため、大きなメリットがある。

-ディレクトリ・サービスと連携している場合、~
各アプリケーションにこの情報を使用した追加の承認の機能を実装できる。

***実装ルール型 [#t68197e3]
フレームワークに実装するとすると、こちらの方式になる。

**[[クレームベース認証]] [#if326ed5]
[[実装ルール型>#t68197e3]]で、言語が混在になると、個別の部品を整備する必要があり面倒になる。
-ASP.NETのForms認証
-独自Frameworkの独自認証

このため、近年、下記のような認証/認可の仕組みの~
プロトコルレベルでの標準化が進んでいる([[クレームベース認証]])。

-[[認証連携(IDフェデレーション)>クレームベース認証#z111c7bd]]
--[[SAML]]
--[[WS-Federation]]

-[[OpenID / OAuth>クレームベース認証#bd876705]]


*余談 [#zf3414e4]
ASP.NETのForms認証では、
-クッキー認証チケットをクロスサイトで使用できる。
-ただし、クロスドメインでの引継は不可能。

クロスドメイン間のサイトで、テンポラリの認証情報をQueryString等で引き継いで、~
連携先サイトで、別途Forms認証のクッキー認証チケットを発行すると言う方式の実績もありますが、~
要件に合わないようなら、個別に「クッキー認証チケット型」の認証基盤の導入を検討した方が良さそうです。

*IdM実験室 [#j2ebb61a]
IdM実験室の情報をまとめて勉強してみます。

-WIF Extension for OAuth を使って OpenID Connect を体験~
http://idmlab.eidentity.jp/2012/03/wif-extension-for-oauth-openid-connect.html

-slideshare
--Ad(microsoftの方)のOpenId Connect対応~
http://www.slideshare.net/naohiro.fujie/admicrosoftopen-id-connect


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS