Community

コミュニティをご利用の際は 【ガイドライン】を確認・同意いただいた上でご利用ください。

  • 投稿

    アバターwada

    パブリッククライアントでの運用

    パブリッククライアントでの運用を想定しています。

    チュートリアル「アプリケーションを作成する」の「2.アプリケーションの登録」に「ID/Secretは他のユーザーに知られることが無いよう管理して下さい。」との記述があります。

    パブリッククライアントなので、Authorization Code Grantを使用すると、他のユーザーに知られることが無いよう管理できません。
    「他のユーザー」は、アプリケーション開発関係者以外だと解釈しています。

    3点確認させてください。

    1.freee API では、パブリッククライアントでの運用を想定していますか?

    想定しているのであれば、

    2.「ID/Secretは他のユーザーに知られることが無いよう管理して下さい。」は、コンフィデンシャルクライントを対象にした記述ということでしょうか?

    いや、パブリッククライアントも対象だということであれば、

    3.パブリッククライアントでは、Implicit Grantを推奨しているということでしょうか?

    よろしくお願いします。

    回答

    アバターyakumo

    自分の解釈になってしまいますが参考までに。

    > 1.freee API では、パブリッククライアントでの運用を想定していますか?

    implicit grant も提供されているので想定していると思われます。

    > 2.「ID/Secretは他のユーザーに知られることが無いよう管理して下さい。」は、コンフィデンシャルクライントを対象にした記述ということでしょうか?

    こちらは完全にコンフィデンシャルクライアント想定かと思います。
    implicit grant 自体が Deprecated のため、推奨しているのは Authorization code grant かなと思います。
    ※ コンフィデンシャルクライアントを利用

    3.パブリッククライアントでは、Implicit Grantを推奨しているということでしょうか?

    パブリッククライアントで Authorization code grant にしてしまうと Client Secret が漏れるので、
    Implicit Grant を使うことになるとおもいます。

    アバターkome

    2.「ID/Secretは他のユーザーに知られることが無いよう管理して下さい。」は、コンフィデンシャルクライントを対象にした記述ということでしょうか?

    たしかに、Public Client だとこの注意文は不要ですね。

    とはいえ、Public Client の場合 Implicit Grant を推奨というわけではなく、Implicit Grant しか選択肢が無いので使うのではなかろうかと。

    アバターwada

    回答待ちの間に、Implicit Grantでの動作確認もできました。
    が、セキュリティのことも考えると、パブリッククライアントは扱いづらいですね。
    リスク評価しながら、どう対応するか考えたいと思います。

    という流れで、
    RFC 7636 (Proof Key for Code Exchange by OAuth Public Clients)
    の実装を要望させていただきます。

    freee dev-supportfreee dev-support

    ご要望ありがとうございます。
    PKCE対応に関して開発チームへフィードバックいたします。

    ご迷惑おかけしてしまいますが、
    引き続きどうぞよろしくお願いいたします。