2

統計やその他のタスクのために Web サイトにアクセスできるサービスに取り組んでいますが、使用の大部分はクライアントの gem と rake タスクを介して行われます。両方の部分の認証を処理する最良の方法は何ですか?

Fiveruns_tuneup、getexceptional、New Relic などにはユーザー名とパスを使用する Web サイトがあるようですが、./config/serviceName.yml に格納されている API キーを使用します多くの場合、キーは SCM にチェックインされ、プロジェクト全体で使用されますが、私たちのキーはチェックインされず、ユーザーごとの設定になるため、キーを使用します)

GitHub では公開鍵を github サーバーに置いて使用していますが、git はデフォルトで公開鍵/秘密鍵をサポートしていると思います。

./config/serviceName.yml を保持することをお勧めしますか、それとも他の情報を含むサブディレクトリを作成する必要があるため、./serviceName/config.yml を保持することをお勧めしますか? (SCMに保存されていないユーザーごとに、すべてを1つの除外ディレクトリに保持する方がよいということですか?)

実装を開始する前に、ベスト プラクティスに関するいくつかの考えやアイデアを探しています。

4

3 に答える 3

1

できる限り user/pass を使用しないでください。セキュリティの問題は恐ろしいです。ユーザー/パスが漏洩した場合は、パスワードを変更する必要があります。そうしないと、アカウント全体にアクセスできなくなります。

API キーは変更が容易であり、API を使用してアクセスする必要がある部分のみに制限できるため、より優れています (つまり、誰かがあなたのパスワードを知っている場合、その人はあなたのパスワードを変更できます。API を持っているだけでは変更できません)。鍵)。

クライアントごとに異なる API キーまたは安全なトークン交換 (OAuth など) は、API に複数のクライアントがある場合に最適なソリューションです。

于 2008-12-11T15:12:38.363 に答える
1

Web サイト アカウントにはユーザー名とパスワードの組み合わせを使用し、Web サービスには API キーを使用することをお勧めします。この手法の利点は次のとおりです。

  1. API キーをアカウントにリンクすることで、同じユーザーに対して多数の API キーを持つことができます。おそらく、これは、このデータ サービスを使用する多くのリモート Web サーバーや、一意の追跡を実行するために使用できます。
  2. API キーをアカウントにアタッチすると、API キーにはユーザー名とパスワードが含まれないため、ユーザーのユーザー名とパスワードが侵害されないようにすることもできます。多くのユーザーが多くのサービスで同じユーザー名とパスワードを使用しているため、それらを保護するのに役立ちます。
  3. 各 API キーの機能の一部へのアクセスを制限できますが、アカウントがアクセスできる必要があるすべてのものへのユーザー名アクセスを許可します。さらに、API キーが持つ可能性のあるアクセスの量を制限する機能を提供することもできます.

主要なサービス (Yahoo! API、Flickr、Google API など) のほとんどは、Web アカウントにログインするためのユーザー名とパスワード、および統合ポイントの API キーを持つアカウントを使用します。

于 2008-12-09T05:08:17.227 に答える
0

github アプローチは、既存の git プラクティスの上にブートストラップしますが、中央機関で公開されている公開鍵と一致する独自の秘密鍵をおそらく各ユーザーが持っているため、これは悪い考えではありません。key-agent はすでに安全な認証手段を提供しているため、これは非常に安全なアプローチのように思えます。公開鍵/秘密鍵はよく考え抜かれた認証スキームですが、残念ながら何度も再発明されて成功は限られています。

API キーの問題は、API キーのコピーを取得した人は誰でも、許可された操作を実行できることです。API キーをプロジェクトのどこかに保存すると、ユーザーはキーを共有するようになります。公開鍵をユーザーに関連付ける場合、ユーザーごとにクライアントに権限を付与することが可能であり、適切な鍵エージェントのアプローチでは、それらが SCM のどこにも格納されないことが示唆されます。

config/serviceName.yml と serviceName/config.yml の違いを理解しているかどうかはわかりません。クライアントの認証方法として公開鍵/秘密鍵を使用している場合、それは適切ではないようです。

于 2008-12-08T22:33:17.600 に答える