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

-[[戻る>OpenID / OAuth / OpenID Connect]]

* 目次 [#j5ff9e92]
#contents

*概要 [#sbb490d1]
[[OAuth]] / [[OpenID Connect]]のコンサルティング・ノウハウ
-[[OAuth]] / [[OpenID Connect]]の課題解決ノウハウをまとめています。

-説明を始めると、
>「単に「ユーザストアでアプリが認証する。」ということではない。」

というトコロから説明が必要。
>というトコロからの説明が必要になります。

*導入 [#m4c226b6]
**要件の確認 [#n410df59]

***SSO(Single Sign-On)のサポート [#g6a5175e]
-基本的に、

--[[OpenID Connect]]
--[[OAuth]] 2.0のBearer Tokenの[[JWT]]化

>が必要。

-スマホ認証の場合は、[[OAuth PKCE]]が必要。

***認証 / 認可フレームワーク [#u480f8e2]
-認証 / 認可フレームワークとはなにか?
-フレームワーク中で[[各登場人物>#w20e53f4]]はどのようなロールを担うか?

***(Web)APIエコノミーのサポート [#l209c71d]
-認証 / 認可フレームワーク
システム間を連携させるAPI(Application Programing Interface)を通じて、~
既存のサービスやデータをつなぎ、新たなビジネスや価値を生み出す仕組み。

-認証連携とシステム間連系
-SPA、モバイルなどのUserAgent対応
-[[SPA、スマホへの露出>UserAgentでOAuth2のTokenを取得するベスト・プラクティス]]
-管理の一元化([[API Gateway]]の導入)

**4つの登場人物 [#w20e53f4]
-「[[OAuth2の4つの登場人物>OAuth#zb38b595]]」についての説明が必要。
-コレらの登場人物が、プラットフォームや言語に依存せずプロトコル・レベルで連携する。
「[[OAuth2の4つの登場人物>OAuth#zb38b595]]」についての説明が必要。

***Resource Owner [#ue54d411]
ユーザー

***Authorization Server [#x2b3bde9]
認証 / 認可の根幹となる機能を提供するプログラム。

***Resource Server [#bf1f74a5]
Authorization Serverに対応したWebAPIを提供するプログラム。

***Client [#rd84ff2c]
上記の認証基盤を使用してWebAPIにアクセスするプログラム。

*詳細 [#wd05a75f]

**クロスプラットフォーム & コンパチブル [#r3e76c2d]
-オープンなプロトコルを使用しているため、クロスプラットフォーム。
-また、4つの登場人物がクロスプラットフォーム & コンパチブルであることが求められる。
-オープンなプロトコルを使用しているため、~
クロスプラットフォーム対応可能であること。

-故に、4つの登場人物がプラットフォームや言語に依存せず、~
クロスプラットフォーム & コンパチブルであることが求められる。

***Authorization Serverからの視点 [#j163495b]
Authorization Server提供者は、

-様々なユーザストアに対応する必要がある。
-[[OAuth]] 2.0のBearer Tokenの[[JWT]]化が必要。
-[[OAuth]] 2.0拡張 / [[OpenID Connect]]のサポートについて検討が必要。

***Resource Serverからの視点 [#z6ae8ab9]
Resource Server提供者は、

-様々なAuthorization Serverと連携可能な提案を行う必要がある。

-従って、Tokenの検証方法を検討する必要がある
--[[JWT]] -> [[JWS]]の署名検証
--[[OAuth 2.0 Token Introspection]]

-上記2つをまとめて解決する、[[API Gateway]]の導入を検討しても良い。

***Clientからの視点 [#m1423689]
Client提供者は、
-使用するAuthorization Server、Resource Serverを選択する。
-この場合、サポートされるFlowやTokenのフォーマットを理解する必要がある。

**[[ASP.NET Identity]]の生の実装ではダメ [#o71994b3]
-[[OAuth]] 2.0拡張 / [[OpenID Connect]]をサポートしない。
**[[ASP.NET Identity]]の生の実装ダケではダメ [#o71994b3]
[[ASP.NET Identity]]を使うダケで頑張れるか?と言えばそんなこともありません。

-また、[[ASP.NET Identity]]のBearer Tokenは、
--[[ASP.NET Identity]]しか理解しない。
--他のプラットフォームや言語で処理可能なように[[JWT]]化が必要。
***カスタマイズ [#g952bfed]
[[ASP.NET Identity]]を覚えるダケでも、ある程度、大変ですが、~
更に、IdP & STSは、カスタマイズが必要となるケースが多い。

***Bearer Token [#hc89dbc7]
-また、[[ASP.NET Identity]]のBearer Tokenは、[[ASP.NET Identity]]しか理解しないので、
-他のプラットフォームや言語で処理可能なように[[JWT化>JWTとOAuth2.0#k0b22c52]]が必要になってくる。

***プロトコル [#kba6cccb]
-生の[[ASP.NET Identity]]は、[[OAuth]] 2.0拡張 / [[OpenID Connect]]をサポートしない。
-このため、既定の実装では、安全な認証や、SPA、スマホへの露出ができない。


*参考 [#cb9c0a10]
説明に使用した図。~
※ 説明しながら伝導活動の重要性を感じた次第です。

#ref(temp.png,left,nowrap,OAuth / OpenID Connectによる課題解決)

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


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