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

-[[戻る>OAuth#jec853e3]]

* 目次 [#v8b8e49a]
#contents

*概要 [#d531ad5d]
UserAgentでOAuth2のTokenを取得するベスト・プラクティス~
(UserAgentから、直接、Resource ServerのWebAPIにアクセスする)

*詳細 [#l33d0f36]

**SPA [#q18ff74d]

***Implicitが使用できる。 [#g8b68319]

-[[Implicitグラント種別>OAuth#m5c2d510]]

-[[Implicit Flow>OpenID Connect#e7adf5c2]]

***[[Hybrid>OpenID Connect#l565139a]]でセキュリティが強化される。 [#ya921110]

-codeとtokenのscope(認可された権限)を変える。~
※ [[Financial API (FAPI)>#q58a3e42]]では、token:参照系、code:更新系などとなっている。

-入手したcodeはClientのServer側にポストして使用する。~
※ Publicクライアントにclient_id、client_secretを持たせてはダメなので。

***[[Financial API (FAPI)>#q58a3e42]]も策定中。 [#x3cf1768]

**スマホ [#m0aacf50]

***Implicitは使用できない。 [#ubdf2972]

-[[Implicitグラント種別>OAuth#m5c2d510]]

-[[Implicit Flow>OpenID Connect#e7adf5c2]]

***以下のどちらかを使用する。 [#jefeac9f]
-使用可能なフロー
--[[OAuth PKCE]]
--[[Hybrid Flow>OpenID Connect#l565139a]]
***[[Hybrid>OpenID Connect#l565139a]]も使用できない。 [#ya921110]
codeとtokenが、private-use URL Scheme上書き攻撃から保護されないため。

-ポイント
--入手したcodeはClientのServer側にポストして使用
--[[Hybrid Flow>OpenID Connect#l565139a]]では、
---codeとtokenのscope(認可された権限)を変える。
---FAPIでは、token:参照系、code:更新系などとなっている。
***[[OAuth PKCE]] [#x48308e1]

-private-use URL Scheme上書き攻撃から保護される。

-入手したcodeはClientのServer側にポストして使用する。~
※ Publicクライアントにclient_id、client_secretを持たせてはダメなので。

***[[Financial API (FAPI)>#q58a3e42]]も策定中。 [#q58a3e42]

**[[Financial API (FAPI)]] [#q58a3e42]

-金融向け規格なので、前述よりさらにセキュリティ・レベルが強化される。

-現時点では、まだドラフト段階だが、スマホ、SPA、共に、この規格の導入を検討してイイ。

*参考 [#t3d9eecd]
-OAuth for Native Apps | GREE Engineers' Blog~
http://labs.gree.jp/blog/2015/12/14831/

-知っておきたい7つのID連携実装パターン - Yahoo! JAPAN Tech Blog~
https://techblog.yahoo.co.jp/web/auth/id_federation_impl_patterns/
>
+スタンダードなブラウザーパターン
+推奨したいネイティブアプリとブラウザーパターン
+画面遷移がシンプルなネイティブアプリとWebViewパターン
+フィッシング防止なWebViewアプリとブラウザーパターン
+WebViewアプリ完結パターン
+実装が大変だけどより汎用的なハイブリッドアプリとブラウザーパターン
+汎用的なハイブリッドアプリとWebViewパターン

-OAuth2/OIDCの認証にWebViewはダメっぽい。

--OAuthなプラットフォームの中の人が椅子を投げたくなるアプリの実装 - r-weblife~
http://d.hatena.ne.jp/ritou/20120619/1340101421
--Google、WebViewからのOAuth認証リクエストをブロックへ | スラド セキュリティ~
https://security.srad.jp/story/16/08/30/0636245/
---WebViewでGoogleアカウントのOAuth認証が使えなくなる問題~
https://techracho.bpsinc.jp/hachi8833/2016_09_01/25471
---AndroidからGoogle Service OAuth2.0の利用で詰んでいる~
http://awwa500.blogspot.jp/2012/12/androidgoogle-service-oauth20.html

--代替の提案としては、以下のモノがある。~
---Chrome Custom Tabs(Android向け)~
https://developer.chrome.com/multidevice/android/customtabs
---SFSafariViewController(iOS向け)~
https://developer.apple.com/library/ios/documentation/SafariServices/Reference/SFSafariViewController_Ref/

**仕様 [#yba7af6f]

***[[スマホ向けベストプラクティス (RFC 8252 ... OAuth 2.0 for Native Apps)>OAuth 2.0 for Native Apps]] [#q93a1734]

***[[認可コード横取り攻撃への対抗策 (RFC 7636 ... OAuth PKCE)>OAuth PKCE]] [#h47e1abd]

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


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