web-dev-qa-db-ja.com

独自のAPIを使用するための設計

そのため、ホストアプリにAPIを使用することを計画しています。ただし、APIは、リクエストごとにセッションキーを必要とするように構築されています。

だから私の質問は、APIをどのようにドッグフードするのかということです。原因、どうやら私はホストアプリ用の「特別な」キーを作成することを考えているようです(私自身が使用するためにキーを要求することは意味がないため)が、要求のヘッダーを調べる人は誰でもこれを見つけることができますキーと文字通りそれを使用し、独自のキーの要求をバイパスします。

特別なキーを使用せずに独自のAPIをドッグフードするためのベストプラクティスがあるか、リクエストがホストアプリからのものかパブリックからのものかを区別するためのベストプラクティスがあるかもしれません。

IPを使用して区別することもできませんでした。これは、一般の人々が同じサーバーを使用してAPIを呼び出す可能性があるためです。それはまさにその通りであり、心に留めておくべき制約の1つです。

3
resting

APIに関する重要なレッスンを学習しようとしています。 「他の人が利用できない特別なものが必要です」と自分が言っていることに気付いたときはいつでも、あなたは間違っています。それは特に識別と認証に関しては真実です。

13
Ross Patterson

ヘッダーが解析されてキーが見つかる可能性があることにも言及したため、ライブAPIサーバーには特別なキーがあってはなりません。同様の状況で行ったのは、サンドボックスまたは別の環境(開発チームだけが知っている別のURL)を作成し、特別なキーを受け入れるようにコードを変更することでした。

質問のポイントはスキップすることだと思います認証。安全な通信の盗聴を回避することが解決策です。つまり、HTTPSを介して通信します。

1
Abdullah Shoaib

あなたにはいくつかの選択肢がありますが、どれも特別なものではありません。

  • セッションベースの認証システム

  • リクエストごとに認証

ユーザー名とパスワードを置き換えるには、
次のような方法を選択または組み合わせることができます。

  • sSHキーなどのデジタル資格情報を使用した認証

  • rSAトークン、SMS、PHONE CALL、またはいくつかのバイオメソッドなどの1回限りの認証

0
Ryan Wong