2017-04-10 8 views
1

RESTful APIに基づいてアプリケーションを構築しようとしています.JWTと0auth(ユーザーアクセスの場合はJWT、アプリケーションアクセスの場合は0auth)の認証方法を提供したいと思います。要するに
私がやりたい:JWTと0authの併用方法

User Access (Web App, Mobile App - JWT) 
------------------------>/
          -----------------------> /api/login 
          -----------------------> /api/logout 

Client's app (API KEY - 0auth) 
------------------------> /services/getInfo 
          /services/getProducts 

ユーザーがWebアプリケーションを使用することができますので、上のFacebook、GitHubのと同じように、私のサービスでそのアプリのいくつかの機能を統合することを望むことができる。..
大きなアプリケーションを設計するのは初めてのため、このアプローチについてはわかりません。次のように
質問は以下のとおりです。

  1. 私はまた、アプリによって認証にJWTを使用する必要がありますか?
  2. JWTを使用すると、アプリケーションのリクエスト数をトレースできますか?
  3. JWTトークンを取り消すことはできますか?
  4. アプリによる認証では、0authプロトコルがJWTより優れていますか?

答えて

0

Oauth 2.0は認証プロトコルであり、認証に使用しないでください。あなたのシナリオではOpenid Connectの使用を検討してください。それはoauthの上で動作するので、フローは認証のためのいくつかの即興と同一です。

この場合、アプリケーションを登録して、両方のエンドユーザーとアプリケーション内の呼び出しに同じプロトコルを使用することができます。

Webアプリケーションのアプリケーションアクセスと暗黙的/ハイブリッドフローのクライアントの資格情報フローを調べてください。

Openid connectは、認証と承認にjwtトークンを使用します。

アイデンティティ・サーバー3は、Openid connectの認証済み実装です。彼らのドキュメンテーションは良いですし、彼らはあなたの質問を助けるための積極的なサポートフォーラムを持っています。

参照してください。

https://www.safaribooksonline.com/library/view/identity-and-data/9781491937006/ch04.html

https://leastprivilege.com/2016/01/17/which-openid-connectoauth-2-o-flow-is-the-right-one/

https://github.com/IdentityServer/IdentityServer3

https://github.com/IdentityServer/IdentityServer3.Samples

関連する問題