Open棟梁Project - マイクロソフト系技術情報 Wiki
目次 †
概要 †
認証連携(IDフェデレーション)とか、OpenID / OAuth / OpenID Connectとか、
大体、認証で発行するクレーム(トークン)的なものを使用して認可する仕掛けになっている。
- 認証は、Idp(Identity Provider)が行う。
- クレーム(トークン)の発行はSTS(Security Token Service)が行う。
- 認可は、SP(Service Provider)が行う。
このSTS(Security Token Service)が発行する
クレーム(トークン)的なものにより、認証(Idp)と認可(SP)を分離できるのが醍醐味。
従って、分散型の認証方式を提供するオープンな認証システムと言える。
用語 †
各用語については下記を参照。
Microsoft Platform †
Active Directory Federation ServicesやWIF(Windows Identity Foundation)に関連する用語。
- WIF
Windows Identity Foundation
- ADDS
Active Directory Domain Services
- ADFS
Active Directory Federation Services
- AZAD
Azure Active Directory
Claims-based identity term definitions †
- IdP & CP
- IdP : Identity Provider ( = ADDS )
- CP : Claim Provider( = Idp at WS-Federation model)
- STS : Security Token Service ( = ADFS or AZAD )
- SP & RP
- SP : Service Provider( = ASP.NET WebSite?)
- RP : Relying Party( = SP at WS-Federation model)
その他 †
- Federation Trust
- 要求プロバイダー信頼
Claim Provider Trust(CP Trust)
- 証明書利用者信頼
Relying Party Trust(RP Trust)
- Consumer
- End Userが入力したID(Identifier)を使用し、IdP(Identify Provider)に対して認証要求するWebサービス
- ConsumerはいずれのIdP(Identify Provider)に対しても認証要求を遂行する必要がある。
- OpenID 2.0からはRelying Party(RP)と名称が変更されている。
OpenIDでは、STS相当が独立しておらず、当該機能がRPとIdp内に同梱されている。
- End User
- Consumerに対して自分のIdentityの認証を要求しようとするユーザ
- 自分のIdentityを認証しConsumerに紹介状を送るIdPに加入する必要がある。
- Identifier
- End Userが所有するURL(httpまたはhttpsをschemeとするURI)を使用して認証
- OpenID 2.0からはXRIというURIを拡張した形式で表されたものを指す。
- Claimed Identifier
- End Userが自分で所有していると主張するIdentifier
- Consumerによってまだ確認されていないIdentifier
- Verified Identifier
ConsumerがEnd Userが所有していると認めたIdentifier
- User-Supplied Identifier
OpenID 2.0からの用語で、
- End UserによってRPに対して提示されるIdentifier
- Claimed IdentifierまたはOP Identifierの総称
- Identify Provider(Idp)
- End Userが所有するClaimed Identifierの暗号化された証明(紹介状)を発行。
- OpenID 2.0からはOpenID Provider(OP)とも呼ばれる。
- OpenID 2.0から追加されたOpenID Provider(OP)用語
- OP Identifier
OPを表すIdentifier
- OP EndPoint? URL
OPのエンドポイントのURL
- OP-Local Identifier
- 代理認証で使用するIdentifier。
- エンドユーザーを識別するためにローカルに用いられる。
種類 †
認証連携(IDフェデレーション) †
特徴 †
- OpenAM、ADFS
などの実績のあるSSOをサポートする認証連携(IDフェデレーション)基盤
- 異なるベンダのアクセス制御製品間の相互運用性を推進し、
企業間の独立したサービスをグローバルなSSOで連携させることが可能。
- 認証されたアカウントを偽装するにはカスタムの実装が必要。
- 認証連携(IDフェデレーション)の利点
http://www.atmarkit.co.jp/fwin2k/operation/adfs2sso02/adfs2sso02_01.html
- 上記のフェデレーションの動作におけるポイントの1つとしては、サービス・プロバイダ側で直接認証(IDやパスワードの入力)を行っていないので、サービス・プロバイダへのネットワーク経路上をパスワードが流れないという点がある。
もう1つ、サービス・プロバイダが直接アイデンティティ・プロバイダと通信を行っていないので、アイデンティティ・プロバイダとサービス・プロバイダは別々のネットワークに存在してもよいという点も挙げられる。
- これらにより、イントラネット上のアイデンティティ・プロバイダを利用して、クラウド上のサービス・プロバイダへセキュアなアクセスを行うといったことが可能になる。
また同時に、イントラネット上の社内アプリケーションにも同様の仕組みを導入することにより、イントラネットとクラウドにまたがったセキュアなシングル・サインオンという非常に利便性の高いシステムを構築できる。
プロトコル †
- クッキー認証チケットを使用しない。
- クッキーを第三者が不正使用してなりすましを許す可能性がある。
- クッキーはクッキードメインの中でしか有効ではない。
- SAML Core
- SAML Assertions
- SAML Protocols
- SAML Profiles
- SAML Assertions
- SAML Protocols
- SAML Bindings
- Assertionsには、SAML Assertionsを使用。
- 以下のプロファイルがある。
パッシブリクエスタプロファイル(Webアプリ用)
アクティブリクエスタプロファイル(Webサービス用)
製品 †
中央集権型でない、分散ID認証システム
- ブラウザベースの認証APIの標準化から始まった。
- 認可するクレーム(トークン)として、
紹介状を受け取るか、合鍵を受け取るかの違いがある。
紹介状を受け取る。
- OpenIDでは、Consumer経由で紹介状を作成して送信する公証人をIdentity Provider(Idp)を呼び出す。
- OpenIDの仕様上、誰でもConsumerやIdentity Provider(Idp)になれるという点から、
特にConsumerはどのIdentity Provider(Idp)を信用したらよいかという問題が残る。
合鍵を受け取る。
- OAuthで合鍵を作成して送信するXをYと呼ぶ。
- 合鍵をもらったほうが色々とサービス提供したり悪さをしたりするのに便利。
- OpenIDよりもOAuth認証をしたいというサイトが増えてきている。
- 合鍵として、JSON Web Token というAccess Tokenを使用する。
OAuthで正しく認証する。
- サイトにアクセスする方法はOAuthのResource Access と同じ。
- 違いは、紹介状のコピーだけが入っているロッカーの鍵を渡す所。
- 紹介状:OpenIDトークン
- ロッカー:UserInfo? (ユーザ情報)Endpoint
- 鍵は、OAuthと異なり、UserInfo? Endpoint が発行する。
- SP(Service Provider)はこの鍵の発行者を信頼し、鍵の正統性の検証が可能。
参考 †
選定 †