APIキーとは何ですか?[閉まっている]


109

この言葉は最近、ほとんどすべてのクロスサービスアプリケーションで見られます。

APIキーとは正確には何で、その用途は何ですか?

また、公開APIキーと秘密APIキーの違いは何ですか。

回答:


111

APIキーが「正確に」何に使用されるかは、それを発行するユーザーと、それが使用されるサービスに大きく依存します。ただし、概して、APIキーは、リクエストの発信元を識別するために、Webサービス(または同様の)リクエストとともに送信される何らかの形式のシークレットトークンに付けられた名前です。鍵を要求コンテンツの一部のダイジェストに含めて、出所をさらに検証し、値の改ざんを防ぐことができます。

通常、リクエストの送信元を明確に特定できる場合、それは認証の形式として機能し、アクセス制御につながる可能性があります。たとえば、リクエストを実行しているユーザーに基づいて、特定のAPIアクションへのアクセスを制限できます。そのようなサービスの販売からお金を稼ぐ企業にとって、それは請求目的でその物を誰が使用しているかを追跡する方法でもあります。さらに、キーをブロックすることで、リクエストの量が多すぎる場合の乱用を部分的に防ぐことができます。

一般に、公開APIキーと秘密APIキーの両方がある場合は、キー自体が、何らかの形式の非対称暗号化または関連するデジタル署名で使用される従来の公開キーと秘密キーのペアであることを示しています。これらは、リクエストのソースを明確に特定し、さらにリクエストのコンテンツを(改ざんに加えて)スヌーピングから保護するためのより安全なテクニックです。


12
よく置きます!ただし、私の限られた経験では、公開/秘密の区別は公開鍵暗号とは何の関係もありません。私が見た「公開」キーは通常「アクセスライト」です。つまり、王国にキーを渡さずに、機密ではないデータへのアクセスを第三者に許可するために配布できるキーです。
timdev 2009

2
@Rob +1の詳細な回答@tim +1の求愛
OrangeRind 2009

@tim-同意した。私が見た最も一般的なアプローチは、秘密のダイジェストキーを持つことだと思います。
Rob

24

非常に一般的に言えば:

APIキーは単にあなたを識別します。

公開/秘密の区別がある場合、公開鍵は他の人に配布できるものであり、APIからあなたに関する情報のサブセットを取得できます。秘密鍵はユーザー専用であり、すべてのデータへのアクセスを提供します。


ほとんどの場合、ハッシュのように見えます。私の観察は正しいですか?
OrangeRind 2009

が一意であれば、必要に応じてを生成できます。一部のデータのハッシュは、データを生成するための妥当な方法のようです、はい。
マシューシャーリー

はい、ハッシュのように見えます。結局のところ、簡単に推測されてほしくありません。
timdev 2009

1
多かれ少なかれ-ほとんどの沼地の標準APIキーは、いくつかの疑似ランダム値をハッシュし、結果に標準のプレーンテキストエンコードを実行することによって生成されます(例:base16、base64など)
Rob

18

多くの人々がAPIキーをセキュリティソリューションとして使用しているようです。一番下の行は次のとおりです。決して御馳走APIキー秘密としてそれはないです。httpsかどうかに関係なく、リクエストを読み取ることができる人は誰でもAPIキーを確認でき、必要な呼び出しを行うことができます。APIキーは、sslで使用する場合でも完全なセキュリティソリューションではないため、「ユーザー」識別子と同じである必要があります。

より適切な説明は、Eugene Osovetskyへのリンクにあります。ほとんどのAPIを使用する場合、なぜキーとシークレットの2種類の認証が必要なのですか。 または、http://nordicapis.com/why-api-keys-are-not-enough/を確認してください


2
ご覧のとおり、これは古い質問であり、現代のスタックオーバーフロー標準によれば、「広すぎる」(または「オフトピック」)と見なされる可能性があります。このような質問は、通常は反対票を投じられたり削除されたりする、有権者の回答を引き付ける傾向があります。そのような質問から離れることは、通常、最善の行動方針です。詳細については、ヘルプセンターをご覧ください。
Dev-iL 2017

10

APIキーは、このサービスのユーザーとして承認されたときにこのサービスのユーザーに割り当てられる一意の値です。

サービスは、発行されたすべてのキーを保持し、要求ごとにそれらをチェックします。

サービスは、リクエストで提供されたキーを確認することで、それが有効なキーであるかどうかを確認し、ユーザーにアクセスを許可するかどうかを決定します。


それで、公的および私的なものはどうですか?
OrangeRind 2009

1
公開鍵と秘密鍵は暗号化のドメインからのものであり、非対称暗号化と関係があります。APIキーの意味で使用されるこれらの用語を聞いたことがありません。

2

APIキーは、Webサービスのユーザーを認証する方法の1つにすぎません。


1

このように考えると、「パブリックAPIキー」は、データベースが検証サーバーへのログインとして使用しているユーザー名に似ています。その場合、「プライベートAPIキー」はパスワードに似ています。この方法を使用するサイト/データベースによって、サイト/データベースの投稿または編集の認証要求を行うために、サードパーティ/検証サーバーでセキュリティが維持されます。

API文字列は、確認サーバーに接続するためのサイト/データベースのログインのURLです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.