Open棟梁Project - マイクロソフト系技術情報 Wiki
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>認証基盤]]

* 目次 [#m08b54ac]
#contents

*概要 [#f64b233c]
[[認証連携(IDフェデレーション)>#z111c7bd]]とか、[[OpenID / OAuth / OpenID Connect>#bd876705]]とか、

大体、認証で発行するクレーム(トークン)的なものを使用して認可する仕掛けになっている。
**ID連携・クレームベース認証とは [#aaa90086]
ID連携とは、

-認証は、Idp(Identity Provider)が行う。
-クレーム(トークン)の発行はSTS(Security Token Service)が行う。
-認可は、SP(Service Provider)が行う。
-アイデンティティ(ID)~
& フェデレーション(ID連携)

このSTS(Security Token Service)が発行する~
クレーム(トークン)的なものにより、認証(Idp)と認可(SP)を分離できるのが醍醐味。
-クレームベース認証~
クレームセットを使用して認証する。

従って、分散型の認証方式を提供するオープンな認証システムと言える。
***アイデンティティ(ID) [#n9872982]
-= ユーザを特徴づける属性情報
-≠ ユーザID(Identifier)

*用語 [#h4a44b62]
各用語については下記を参照。
***フェデレーション(ID連携) [#ued87deb]
このユーザ属性情報をクレームセットに~
同梱してユーザに渡す( = ID連携)。

**[[認証連携(IDフェデレーション)>#z111c7bd]] [#o0d18ba5]
-Service Providers, Identity Providers & Security Token Services~
http://www.empowerid.com/learningcenter/technologies/service-identity-providers
**ID連携・クレームベース認証の目的 [#l4dc0ed8]

***Microsoft Platform [#x529dcd7]
Active Directory Federation ServicesやWIF(Windows Identity Foundation)に関連する用語。
***IDの一元管理 [#v11bf336]
-アプリ側に重複したユーザストアを持たせない。
-同期不要。一元管理された、最新のIDを利用する。

-WIF~
Windows Identity Foundation
-[[ADDS>ドメイン サービス (AD DS)]]~
Active Directory Domain Services
-[[ADFS>フェデレーション サービス (AD FS)]]~
Active Directory Federation Services
-AZAD~
Azure Active Directory
***SSO(シングルサインオン) [#gc7ba3de]
-パスワードをユーザに分散管理させたくない。
-クラウド上のサービスを自社内で認証したい。
-コンシューマー向けアプリをSNS認証で利用させたい。

***Claims-based identity term definitions [#xc4899e2]
-IdP & CP
--IdP : Identity Provider ( = ADDS )
--CP : Claim Provider( = Idp at WS-Federation model)
**クレームベース認証の仕組み [#badd4a52]
[[SAML / WS-FED>#z111c7bd]]とか、[[OpenID / OAuth / OpenID Connect>#bd876705]]など、~
大体、認証後に発行するトークン(クレーム)的なものを使用して認可(認証)する仕掛けになっている。

-STS : Security Token Service ( = ADFS or AZAD )
***役割 [#f0389c59]
-Idp(Identity Provider)~
認証を行う。

-SP & RP
--SP : Service Provider( = ASP.NET WebSite)
--RP : Relying Party( = SP at WS-Federation model)
-STS(Security Token Service)~
トークン(クレーム)の発行を行う。クレームは、
--Idp(Identity Provider)によって発行され、
--STS(Security Token Service)によって
---1 つ以上の値が指定されてから、~
---STSが発行するセキュリティ トークンにパッケージ化される。

***その他 [#s5d7cb56]
-Federation Trust
--要求プロバイダー信頼~
Claim Provider Trust(CP Trust)
--証明書利用者信頼~
Relying Party Trust(RP Trust)
-SP(Service Provider)~
認可を行う。

--要求プロバイダー信頼と証明書利用者信頼~
http://azuread.net/2014/02/19/%E8%A6%81%E6%B1%82%E3%83%97%E3%83%AD%E3%83%90%E3%82%A4%E3%83%80%E3%83%BC%E4%BF%A1%E9%A0%BC%E3%81%A8%E8%A8%BC%E6%98%8E%E6%9B%B8%E5%88%A9%E7%94%A8%E8%80%85%E4%BF%A1%E9%A0%BC/
***特徴 [#u3743c8a]
このSTS(Security Token Service)が発行する~
トークン(クレーム)的なものにより、認証(Idp)と認可/認証(SP)を分離できる。

-Claim Rules~
[[要求規則(クレーム ルール)>フェデレーション サービス (AD FS)#w4002b44]] 
-分散型の認証方式を提供するオープンな認証システムと言える~
(これを世の中では[[認証連携(IDフェデレーション)>#i5c2d8e8]]と呼んでいる)。

**[[OpenID / OAuth / OpenID Connect>#bd876705]] [#sdca2e87]
-[[OAuth]]に関しては、トークンとクレームの発行が分離されている。~
トークン発行までがOAuthの仕様なので、認証用のクレーム発行は拡張仕様を実装する必要がある。

-OpenIDの仕様と技術(1):仕様から学ぶOpenIDのキホン (3/3) - @IT~
http://www.atmarkit.co.jp/ait/articles/0707/06/news135_3.html
-OpenIDの仕様と技術(5):OpenID Authentication 2.0時代の幕開け (1/3) - @IT~
http://www.atmarkit.co.jp/ait/articles/0802/19/news133.html
-誰にも頼まれてないのに次世代Identifier用語集を勝手に定義してみた - 豆無日記~
http://nobeans.hatenablog.com/entry/20090202/1233585856
***参考 [#mbd5ee12]
以下が参考になる。

***[[OpenID]] [#w507f337]
-Consumer~
--End Userが入力したID(Identifier)を使用し、IdP(Identify Provider)に対して認証要求するWebサービス
--ConsumerはいずれのIdP(Identify Provider)に対しても認証要求を遂行する必要がある。
--&color(red){OpenID 2.0};からはRelying Party(RP)と名称が変更されている。~
OpenIDでは、STS相当が独立しておらず、当該機能がRPとIdp内に同梱されている。
-IdM実験室: 早わかり!クレイムベースのアイデンティティ&アクセス管理~
http://idmlab.eidentity.jp/2010/04/blog-post.html

-End User
--Consumerに対して自分のIdentityの認証を要求しようとするユーザ
--自分のIdentityを認証しConsumerに紹介状を送るIdPに加入する必要がある。
*用語 [#h4a44b62]
各用語については下記を参照。

-User-Agent~
--End Userが所有するWebブラウザ
--特別なプラグインやJavaScriptは不要
**真正性 (authenticity) [#bbda9812]
ある「主体」(subject)又は資源が、~
「主張」(claim)どおりであることを~

-Identifier~
--End Userが所有するURL(httpまたはhttpsをschemeとするURI)を使用して認証
--&color(red){OpenID 2.0};からはXRIというURIを拡張した形式で表されたものを指す。
確実にする特性。

--Claimed Identifier~
---End Userが自分で所有していると主張するIdentifier
---Consumerによってまだ確認されていないIdentifier
***主体(subject) [#gcaae579]
UserID、メアド、ユーザ名等。

--Verified Identifier~
ConsumerがEnd Userが所有していると認めたIdentifier
***主張(claim) [#q8616b1e]
主体の主張、主体の属性。

--User-Supplied Identifier~
&color(red){OpenID 2.0};からの用語で、
---End UserによってRPに対して提示されるIdentifier
---Claimed IdentifierまたはOP Identifierの総称
**認証/認可 [#i20aee18]

-Identify Provider(Idp)~
--End Userが所有するClaimed Identifierの暗号化された証明(紹介状)を発行。
--&color(red){OpenID 2.0};からはOpenID Provider(OP)とも呼ばれる。
***認証(Authentication) [#s73253e0]
-本人性を確認する
-ID/パスワード認証、生体認証、ワンタイム・パスワード認証

-&color(red){OpenID 2.0};から追加されたOpenID Provider(OP)用語
***認可(Authorization) [#c769bfc2]
あるリソースへアクセスするための権限を与える(認証後のアクセス制御)

--OP Identifier~
OPを表すIdentifier
**ID連携(IDフェデレーション) [#i5c2d8e8]

--OP EndPoint URL~
OPのエンドポイントのURL
***意味 [#d20b62f2]
フェデレーションは、「連携」の意味。

--OP-Local Identifier
---使用するOPが内部的に使用するユーザID。
---OPがOP上の認証処理等で使用する。
-[[SAML]]、OpenIDなどの認証・認可に関わるプロトコルやその仕組みの総称として使われることがある。
-IDやパスワードの発行者(IdP:Identity Provider)と、IDの利用者(RP:Relying Party)の2つに役割を分担する。
-ID連携(IDフェデレーション)
--IdP と SP の間でユーザーアカウントを紐付けることを意味する。
--IdP と SP は信頼関係を結んだ後、アカウント連携を行う必要がある。

***[[OAuth]] [#qa5b24ca]
***利点 [#secb0045]
それによって、以下の様な利点が発生する。

***[[OpenID Connect]] [#q37553ef]
-サービス・プロバイダ側で直接認証(IDやパスワードの入力)を行っていない。~
∴ サービス・プロバイダへのネットワーク経路上をパスワードが流れない。
-サービス・プロバイダが直接アイデンティティ・プロバイダと通信を行っていない。~
∴ アイデンティティ・プロバイダとサービス・プロバイダは別々のネットワークに存在してもよい。~
イントラネット上のアイデンティティ・プロバイダを利用して、
--クラウド上のサービス・プロバイダへセキュアなアクセスを行うといったことが可能になり、~
--イントラネット上の社内アプリケーションにも同様の仕組みを導入することにより、~
セキュアなシングル・サインオンという非常に利便性の高いシステムを構築できる。

*種類 [#pa0ef406]
**認証連携(IDフェデレーション) [#z111c7bd]
***特徴 [#j361796e]
**[[アサーション(Assertions)>トークン#xbeb945f]] [#c536655a]
クレームベース認証界隈のコンテキストでは、~
[[SAML]]や[[JWT]]などのフォーマットが使用される。

-OpenAM、[[ADFS>フェデレーション サービス (AD FS)]]
などの実績のあるSSOをサポートする認証連携(IDフェデレーション)基盤
***トークン [#v1041482]
IdP/STSが発行する認証・認可の情報~
(認証情報やユーザーや属性、アクセス権限等の情報)。

-異なるベンダのアクセス制御製品間の相互運用性を推進し、~
企業間の独立したサービスをグローバルなSSOで連携させることが可能。
***クレームセット [#l27f5914]
[[認証連携(IDフェデレーション)>#i5c2d8e8]]で連携されるユーザ属性情報

-認証されたアカウントを偽装するにはカスタムの実装が必要。
**プロトコル [#wb1614f3]

-認証連携(IDフェデレーション)の利点~
http://www.atmarkit.co.jp/fwin2k/operation/adfs2sso02/adfs2sso02_01.html
--上記のフェデレーションの動作におけるポイントの1つとしては、サービス・プロバイダ側で直接認証(IDやパスワードの入力)を行っていないので、サービス・プロバイダへのネットワーク経路上をパスワードが流れないという点がある。~
もう1つ、サービス・プロバイダが直接アイデンティティ・プロバイダと通信を行っていないので、アイデンティティ・プロバイダとサービス・プロバイダは別々のネットワークに存在してもよいという点も挙げられる。
--これらにより、イントラネット上のアイデンティティ・プロバイダを利用して、クラウド上のサービス・プロバイダへセキュアなアクセスを行うといったことが可能になる。~
また同時に、イントラネット上の社内アプリケーションにも同様の仕組みを導入することにより、イントラネットとクラウドにまたがったセキュアなシングル・サインオンという非常に利便性の高いシステムを構築できる。
***[[SAML / WS-FED>SAML / WS-FED#p6153af7]] [#o0d18ba5]

***プロトコル [#sa6cf928]
***[[OpenID / OAuth / OpenID Connect>OpenID / OAuth / OpenID Connect#cf76f7e0]] [#sdca2e87]

-クッキー認証チケットを使用しない。
--クッキーを第三者が不正使用してなりすましを許す可能性がある。
--クッキーはクッキードメインの中でしか有効ではない。
**役割関連用語の対応表 [#c44e4a44]
紛らわしい、クレームベース認証の役割関連用語の対応表をまとめてみた。

-[[SAML]]
|#|>|XML系|>|>|OpenID系|>|OAuth2.0/OIDC系|h
|~|SAML|WS-FED|OpenID1.0|OpenID2.0|OAuth1.0|認可の4役割|OIDCの認証を考慮した呼称|h
|1|>|Subject|>|End User|User|>|Resource Owner|
|2|>|SP (Service Provider), RP (Relying Party)|RP (Relying Party)|Consumer|OAuth Consumer|Client (Public Client, Confidential Client)|Client, RP (Relying Party)|
|3|>|IdP (Identity Provider), CP (Claim Provider)&br;STS (Security Token Service )|IdP (Identity Provider)|OP (OpenID Provider)|OAuth Service Provider|Authorization Server (AuthZ)|Authentication Server (AuthN)、&br;若しくは、IdP/STS(OP:OpenID Provider)|
|4|>|>|>|-認証のみなので対応する概念が存在しない-|~|>|Resource Server|

--SAML Core
---SAML Assertions
---SAML Protocols
-一般向けには、SAML系の用語が良く使われる(IdP/STS、SP、RP辺りは、結局OIDCでも使われているので)。
-最近は、OAuth2/OIDCの隆盛に伴い、上記表中の「認可の4役割」用語も利用される。
-説明資料によって、上記表中の横並びの役割は混同されていることが多い(意味も同じ)。
-「#3」は、ユーザストア機能とトークン発行機能に分けて表現されることがある(IdP/STSなど、CPも≒STSか。)。

--SAML Bindings
*詳細 [#pa0ef406]

--SAML Profiles
---SAML Assertions
---SAML Protocols
---SAML Bindings
**プロトコル [#b5162084]

--SAML Metadata
***[[SAML / WS-FED>SAML / WS-FED#n6b097e6]] [#z111c7bd]

-[[WS-Federation]]
***[[OpenID / OAuth / OpenID Connect>OpenID / OAuth / OpenID Connect#cf72e401]] [#bd876705]

--Assertionsには、SAML Assertionsを使用。
**[[STS系ミドルウェア]] [#u214f5ce]

--以下のプロファイルがある。~
パッシブリクエスタプロファイル(Webアプリ用)~
アクティブリクエスタプロファイル(Webサービス用)
*選定 [#uc590139]

***製品 [#ccf56f5a]
-OpenAM
-[[ADFS>フェデレーション サービス (AD FS)]]
**プロトコル [#te1570ea]
-SAMLとOAuth/OpenID Connect:~
新たな「アイデンティティ戦争」とIdMaaSとしてのSalesforce - @IT~
http://www.atmarkit.co.jp/ait/articles/1402/10/news074.html

**[[OpenID]] / [[OAuth]] / [[OpenID Connect]] [#bd876705]
中央集権型でない、分散ID認証システム
***[[SAML / WS-FED>SAML / WS-FED#s5929af2]] [#tf6b40d2]

-ブラウザベースの認証APIの標準化から始まった。
-認可するクレーム(トークン)として、~
***[[OpenID / OAuth / OpenID Connect>OpenID / OAuth / OpenID Connect#i71c7e02]] [#h2bbea7c]

紹介状を受け取るか、合鍵を受け取るかの違いがある。
**[[STS系ミドルウェア]] [#j7ac4e77]

***[[OpenID]] [#td7a8a84]
紹介状を受け取る。
*その他 [#fbe42215]

-[[OpenID]]では、Consumer経由で紹介状を作成して送信する公証人をIdentity Provider(Idp)を呼び出す。
-[[OpenID]]の仕様上、誰でもConsumerやIdentity Provider(Idp)になれるという点から、~
特にConsumerはどのIdentity Provider(Idp)を信用したらよいかという問題が残る。
**[[SCIM]] [#e9117bfd]

***[[OAuth]] [#k66961ce]
合鍵を受け取る。
-[[OAuth]]で合鍵を作成して送信するXをYと呼ぶ。
-合鍵をもらったほうが色々とサービス提供したり悪さをしたりするのに便利。
-[[OpenID]]よりもOAuth認証をしたいというサイトが増えてきている。
-合鍵として、JSON Web Token というAccess Tokenを使用する。
**[[PPID]] [#n98fbf85]

***[[OpenID Connect]] [#ya3d2a7b]
[[OAuth]]で正しく認証する。
-サイトにアクセスする方法は[[OAuth]]のResource Access と同じ。
-違いは、紹介状のコピーだけが入っているロッカーの鍵を渡す所。
--紹介状:OpenIDトークン
--ロッカー:UserInfo (ユーザ情報)Endpoint
--鍵は、[[OAuth]]と異なり、UserInfo Endpoint が発行する。
--SP(Service Provider)はこの鍵の発行者を信頼し、鍵の正統性の検証が可能。
*参考 [#g91780b4]
-オッス!オラ認証周りをまとめてみた - どんまいこのネタ帳~
http://mnakajima18.hatenablog.com/entry/2016/05/04/205713

***参考 [#z1b67156]
-OpenIDの仕様と技術 連載インデックス - @IT~
http://www.atmarkit.co.jp/fsecurity/index/index_openid.html
-非技術者のためのOAuth認証()とOpenIDの違い入門~
@_Nat Zone - Identity, Privacy and Music~
http://www.sakimura.org/2011/05/1087/
-アイデンティティ管理技術解説:IPA 独立行政法人 情報処理推進機構~
https://www.ipa.go.jp/security/idm/
--アイデンティティ管理技術解説 PDFファイル (PDFファイル 10.1MB)
--アイデンティティ管理技術解説 ZIPファイル (ZIPファイル 8.70MB)

*選定 [#uc590139]
**デジタル・アイデンティティ [#ra858f1a]
-デジタルアイデンティティ - Wikipedia~
https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E3%82%A2%E3%82%A4%E3%83%87%E3%83%B3%E3%83%86%E3%82%A3%E3%83%86%E3%82%A3

**[[認証連携(IDフェデレーション)>#z111c7bd]] [#tf6b40d2]
-デジタルアイデンティティ Digital Identity~
http://shop.oreilly.com/product/9780596008789.do

***SAML [#j6f22d8d]
**slideshare.net/matake [#tc8ff194]
-SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014~
http://www.slideshare.net/matake/idit-2014

***WS-Federation [#fa1f759b]
**Identity | @_Nat Zone [#h35c4901]
http://www.sakimura.org/category/identity/

**[[OpenID / OAuth / OpenID Connect>#bd876705]] [#h2bbea7c]
-非技術者のためのデジタル・アイデンティティ入門~
http://www.sakimura.org/2011/06/1124/

***[[OpenID]] [#m176502c]
**Windowsで構築する、クラウド・サービスと社内システムのSSO環境 [#j88d036c]
-Windowsで構築する、クラウド・サービスと社内システムのSSO環境 - @IT
--第1回 クラウド・コンピューティングとアイデンティティ管理の概要~
http://www.atmarkit.co.jp/fwin2k/operation/adfs2sso02/adfs2sso02_01.html
--第2回 クラウド・コンピューティング時代の認証技術~
http://www.atmarkit.co.jp/fwin2k/operation/adfs2sso02/adfs2sso02_01.html
--第3回 クラウド・サービスと社内ADとのSSOを実現する(前)~
http://www.atmarkit.co.jp/fwin2k/operation/adfs2sso03/adfs2sso03_01.html
--第4回 クラウド・サービスと社内ADとのSSOを実現する(後)~
http://www.atmarkit.co.jp/fwin2k/operation/adfs2sso04/adfs2sso04_01.html

***[[OAuth]] [#o4faf978]
----
Tags: [[:認証基盤]], [[:クレームベース認証]]

***[[OpenID Connect]] [#ad991e4a]


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