2016-06-27 6 views
10

APIキーでOAuthを使用することを提案している記事が多数あります。私の理解から、OAuthでは、最終的にアクセストークンを取得しており、それは何日も有効です。たとえば、QuickBooksのオンラインOAuthトークンは6ヶ月間有効です。OAuth(アクセストークン)Vs APIキー

したがって、アクセストークンはAPIキーと同等です。誰でもそれを得るには、APIキーのように安全にする必要があります。また、OAuthの呼び出しはAPIキーベースの呼び出しと同様にHTTPS経由で行う必要があります。

OAuthを上回るもう1つの利点は認証です。しかし、API Keyモデルでも同じことができます。たとえば、データベースには、APIキーのようなルールを定義して、APIにアクセスすることができます。

今、OAuthの本当のメリットは何ですか? OAuthを実装する場合は、すべてのクライアントにOAuthをサポートするライブラリをサーバーにインストールするように依頼する必要があります。そして、彼らにとっても、私たちにとっても、複雑な仕事です。一方、APIキーモデルでは、他のライブラリや複雑さがなくシンプルなWeb呼び出しです。

私の意図は、OAuthをより良く理解することであり、&とAPI Keyモデルを比較することではありません。

注:
私は、ユーザーが権限を確認して与える必要があり、モデルのGoogleの& LinkedInの種類の話ではありません。私は自分の顧客に提供するAPIについて話しています。

ご協力いただきありがとうございます。

+1

誰かが既にこの質問をしていると思います。http://stackoverflow.com/questions/6767813/api-keys-vs-http-authentication-vs-oauth-in-a-restful-api –

+0

はい。その答えの説明はすべて私の質問です。では、なぜOAuthはまだですか?これはGoogle - LinkedInのようなアプローチにのみ本当に便利ですか?そして、それは小規模の顧客基盤に実質的な利益をもたらさないのですか? – user10

答えて

12

OAuthが必要なのは、サードパーティのクライアントアプリケーションが、資格情報(ID &パスワード)をアプリケーションに公開することなく、サービスでホストされているデータにアクセスできるようにする場合のみです。

APIシークレットでできるAPIキーのペアは、クライアントアプリケーションの認証だけです。認証されたクライアントアプリケーションがユーザーの明示的な同意なしにユーザーのデータにアクセスできるようにすることができれば、OAuthを使用する必要はありません。

+0

完璧。ありがとうございました。 – user10

+0

APIキーとシークレットなしでOAuthを使用するとどうなりますか? OAuthの資格情報が何とかクライアントID(api key)に関連するのではないでしょうか? – mko

関連する問題