OAuthによる外部ログイン(認証)の研究
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>OAuth 2.0]]
* 目次 [#ba45eec0]
#contents
*概要 [#nf08aeca]
-外部ログイン(認証)の仕様の調査。
-前提知識に、[[OAuth 2.0]] の知識を要する。
*外部ログイン(認証)の仕様 [#m5ae941c]
外部ログインは、[[OAuth 2.0]]「Authorization Codeグラント...
-通常、[[OAuth 2.0]]では、Redirectエンドポイントには、仲...
仲介コードをサーバ側でAccess Tokenに変換した後、Resources...
必要なResources(ここでは認証されたユーザのクレーム)を取...
-しかし、外部ログインでは、Redirectエンドポイントに直接、...
(外部ログイン・ライブラリ上で、仲介コード → Access Token...
**ASP.NET Identity用のMicrosoftアカウントの外部ログイン・...
動作を分析した所、
-実際のRedirectエンドポイントは、~
http://localhost:nnnnn/signin-microsoft
-アプリケーションのCallbackのエンドポイントが、~
/Account/ExternalLoginCallback
となっている。
HTTPSのため、仲介コード → Access Tokenの、Responseを確認...
[[OpenID Connect]]で実装されてる可能性もあると考えたが、~
scopeパラメタに「openid」の値を確認できなかったので、[[OA...
***Redirectエンドポイント [#yd211b3f]
仲介コード → Access Token → クレームへの変換処理を行って...
-GET http://localhost:nnnnn/signin-microsoft?code=AAAAA&s...
-Cookie:
--ASP.NET_SessionId=XXXXX
--__RequestVerificationToken=YYYYY
--.AspNet.Correlation.Microsoft=ZZZZZ1
***Callbackのエンドポイント [#mc069e8d]
この時点で情報は全て、.AspNet.ExternalCookieに同梱される...
(恐らく、クレームなどの情報の露見を防ぐためと思われる)
-GET http://localhost:nnnnn/Account/ExternalLoginCallback...
-Cookie:
--ASP.NET_SessionId=XXXXX
--__RequestVerificationToken=YYYYY
--.AspNet.ExternalCookie=ZZZZZ2
***遷移元への遷移 [#z6e7095a]
認証後、遷移元へ遷移した後には、外部ログインの形跡は綺麗...
-GET http://localhost:nnnnn/ HTTP/1.1
-Cookie:
--ASP.NET_SessionId=XXXXX
--__RequestVerificationToken=YYYYY
--.AspNet.TwoFactorRememberBrowser=ZZZZZ3
--.AspNet.ApplicationCookie=ZZZZZ4
***セキュリティに関する考慮点 [#j218c1c3]
以下をライブラリ内で処理することで、セキュリティを高くし...
-外部ログインを、ライブラリ内部で処理して、
--ユーザの実装ミスによる仲介コード、Access Token等の露見...
--長目のRequestVerificationToken値を使用している。
-Redirectエンドポイント→Callbackのエンドポイント間で、
--仲介コード、Access Token等が露見しないよう、エンドポイ...
--エンドポイント間のインターフェイスにCookie(ExternalCook...
*参考 [#r94c89b0]
**[[ASP.NET Identityの外部ログイン]] [#r38b834a]
----
Tags: [[:IT国際標準]], [[:認証基盤]], [[:ASP.NET Identity...
終了行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>OAuth 2.0]]
* 目次 [#ba45eec0]
#contents
*概要 [#nf08aeca]
-外部ログイン(認証)の仕様の調査。
-前提知識に、[[OAuth 2.0]] の知識を要する。
*外部ログイン(認証)の仕様 [#m5ae941c]
外部ログインは、[[OAuth 2.0]]「Authorization Codeグラント...
-通常、[[OAuth 2.0]]では、Redirectエンドポイントには、仲...
仲介コードをサーバ側でAccess Tokenに変換した後、Resources...
必要なResources(ここでは認証されたユーザのクレーム)を取...
-しかし、外部ログインでは、Redirectエンドポイントに直接、...
(外部ログイン・ライブラリ上で、仲介コード → Access Token...
**ASP.NET Identity用のMicrosoftアカウントの外部ログイン・...
動作を分析した所、
-実際のRedirectエンドポイントは、~
http://localhost:nnnnn/signin-microsoft
-アプリケーションのCallbackのエンドポイントが、~
/Account/ExternalLoginCallback
となっている。
HTTPSのため、仲介コード → Access Tokenの、Responseを確認...
[[OpenID Connect]]で実装されてる可能性もあると考えたが、~
scopeパラメタに「openid」の値を確認できなかったので、[[OA...
***Redirectエンドポイント [#yd211b3f]
仲介コード → Access Token → クレームへの変換処理を行って...
-GET http://localhost:nnnnn/signin-microsoft?code=AAAAA&s...
-Cookie:
--ASP.NET_SessionId=XXXXX
--__RequestVerificationToken=YYYYY
--.AspNet.Correlation.Microsoft=ZZZZZ1
***Callbackのエンドポイント [#mc069e8d]
この時点で情報は全て、.AspNet.ExternalCookieに同梱される...
(恐らく、クレームなどの情報の露見を防ぐためと思われる)
-GET http://localhost:nnnnn/Account/ExternalLoginCallback...
-Cookie:
--ASP.NET_SessionId=XXXXX
--__RequestVerificationToken=YYYYY
--.AspNet.ExternalCookie=ZZZZZ2
***遷移元への遷移 [#z6e7095a]
認証後、遷移元へ遷移した後には、外部ログインの形跡は綺麗...
-GET http://localhost:nnnnn/ HTTP/1.1
-Cookie:
--ASP.NET_SessionId=XXXXX
--__RequestVerificationToken=YYYYY
--.AspNet.TwoFactorRememberBrowser=ZZZZZ3
--.AspNet.ApplicationCookie=ZZZZZ4
***セキュリティに関する考慮点 [#j218c1c3]
以下をライブラリ内で処理することで、セキュリティを高くし...
-外部ログインを、ライブラリ内部で処理して、
--ユーザの実装ミスによる仲介コード、Access Token等の露見...
--長目のRequestVerificationToken値を使用している。
-Redirectエンドポイント→Callbackのエンドポイント間で、
--仲介コード、Access Token等が露見しないよう、エンドポイ...
--エンドポイント間のインターフェイスにCookie(ExternalCook...
*参考 [#r94c89b0]
**[[ASP.NET Identityの外部ログイン]] [#r38b834a]
----
Tags: [[:IT国際標準]], [[:認証基盤]], [[:ASP.NET Identity...
ページ名: