46692


現在開発しているAPIサービスの認証をOAuth2.0で行っているのですが、  
アクセスできるスコープによって2種類のgrant_typeを使い分けるのはOAuth2.0仕様上問題ないでしょうか。  
使用したいgrant_typeは"password"と"client_credentials"です。

RFC 6749は一通り見たのですが、読み取ることができませんでした。  
ご存知の方がいましたら、ご教示願いします。


CC BY-SA 4.0
2018-07-17T08:11:59.453
46675
2018-07-18T08:29:51.427
2018-07-17T11:32:41.303
29344
29344
question
python api oauth
OAuth2.0を使用しているAPIでgrant_typeを使い分ける


`grant_type`は、grant（認可）の方法の話なので、複数の`grant_type`を実装して動作させても問題になるようなことはないと思います。現にGoogleのAPIにOAuth2を使ってアクセスする場合、サーバーからの場合は"client_credentials"が使えるし、ブラウザーからの場は"Authorization
Code"を使って`grant`できます。

PythonでOAuth2を実装する場合、自分で一から書くのは大変なので、[`authlib`というライブラリー](https://github.com/lepture/authlib)を使う場合が多いと思うのですが、`authlib`は、`ResourceOwnerPasswordGrant`にも`ClientCredentialsGrant`にも対応しています。後は、両方が問題無く動作するようにサーバーとクライアント側を実装したらいいだけのことだと思います。そうはいっても結構手間がかかるので「Firebase
Authentication」のようなサービスを使う場合も多いのですが。。。


CC BY-SA 4.0
2018-07-18T08:29:51.427
46692
2018-07-18T08:29:51.427
15171
46675
answer