Best Practices for Secure Applications

トップに戻る

HPでは、メンバーのプライバシーを重視しています。HPからAPIアクセスを取得した開発者の皆様にも、メンバーのプライバシーを重視していただくようお願いいたします。OAuth 2.0認証プロトコルを使用することで、弊社はアプリケーションにアナリティクスデータへのアクセス権を許可しながら、メンバーの認証情報を保護することができます。このプロトコルを使用することで、プラットフォーム上のアプリケーションをメンバーが安全かつ容易に使用できるようになります。しかしながら、安全な操作性を確保するには、開発者の皆様が実行する必要のあるセキュリティ関連のステップがいくつかあります。

以下のガイドをお読みになり、アプリケーションがこれらのベストプラクティスに準拠していることをご確認ください。

 

 

クライアントIDに関連付けられたクライアントシークレットをリセットする

 

HPでは、クライアントIDに関連付けられたクライアントシークレット値を、90日ごとにリセットすることを推奨しています。開始日と終了日を記録して、クライアントシークレットの経過日数を確認できるようにしてください。クライアントシークレット値の90日の有効期限が近づいたら、クライアントシークレット値をリセットして、アプリケーションを更新してください。 以下の場合には、クライアントシークレット値を更新してください。
● 現在のクライアントシークレットの経過日数が90日に近づいている。
● クライアントシークレット値のセキュリティが侵害された。

 

クライアントシークレットを更新するには:

  • [Login] (ログイン) をクリックし、プロアクティブ管理のログイン/パスワードを使用して、HP Developersポータルにログインします。HP Developersポータルのアカウントをまだお持ちでない場合は、[Register] (登録) リンクをクリックして、アカウントを作成します。
  • メールアドレスの下にあるドロップダウンメニューを展開し、[My Apps] (マイアプリ) をクリックします。
  • アプリを開きます
  • [Reset Secret] (シークレットをリセット) をクリックします。

 

 

アクセストークン

 

アクセストークンを使用することで、開発者は弊社のAPI経由でアナリティクスデータにアクセスできます。アクセストークンを安全に保管するため、安全性の低い場所や、簡単にアクセスできる場所には保管しないでください。
JavaScriptやHTMLファイルなどのクライアント側のファイルは、容易にアクセスできるため、機密情報の保存には使用しないでください。また、Native iOS、Android、Windows Applicationコードファイルのような逆コンパイルが可能なコードファイルには、アクセストークンを保管しないでください。HP Analytics APIに呼び出しを行う場合、アクセストークンはセキュアな (HTTPS) 接続経由で常に渡す必要があります。
開発者は常に、必要最小限の範囲をリクエストし、アプリケーションの機能に必要な権限のみをリクエストするようにしてください。

 

 

APIキーとシークレットキー

 

Analytics APIに呼び出しを行う場合、APIキー (クライアントIDと呼ばれることもある) とシークレットキー (またはクライアントシークレット).という2つの識別可能情報を使用します。
APIキーはアプリケーションの公開識別子であり、シークレットキーは機密で、Analytics APIでアプリケーションの認証を行うためにのみ使用します。
アプリケーションの識別情報を確認するには、APIキーとシークレットキーの両方が必要であるため、シークレットキーは決して開示しないことが重要です。OAuth 2.0承認コードをアクセストークンと交換する際には、リクエストの一部としてシークレットキーが渡されることに注意してください。このリクエストは公開しないでください。

 

 

セキュアなエンドポイント

 

リクエストが他者に読み取られたり、中間者攻撃を受けたりすることを防ぐため、認証サーバーへのすべてのリクエストはHTTPS経由で行う必要があります。また、アプリケーションはセキュアなサーバーでホストすることが強く推奨されます。特に、メンバーが非公開情報 (サイトのパスワードなど) を入力するページや、OAuth承認フローの一環として、HP DaaSでメンバーをリダイレクトする先のURLでは、これが重要になります。
OAuth 2.0リクエストでは、HTTPSの使用が必須になります。

 

 

フィッシング対策

 

サイバー犯罪者は多くの場合、ユーザー認証情報を盗む目的で、本物に見えるものの、実際には偽装されたレプリカであるWebサイトを作成します。疑わしい点がないことを確認し、必ず本物のHP DaaSアプリケーションで認証情報を入力するようにユーザーに注意を喚起してください。ブラウザでは表示が異なる場合もあり、このような方法ではフィッシングサイトと区別することが難しくなることがあります。確証が持てない場合は認証情報を入力せず、不審なアクティビティが疑われる場合はアプリケーションの提供元に問い合わせるように、ユーザーに警告してください。
 
 

クロスサイトリクエストフォージェリ (CSRF)

 

承認時にCSRFを防止するため、stateクエリパラメーターを渡す必要があります。これには、推測の困難な、(リクエストごとに) 一意の文字列値である必要があり、非公開情報または機密情報を含めてはなりません。
state値のサンプル

state=760iz0bjh9gy71asfFqa

 

承認に成功した場合、リダイレクトURLは次のようになります。
コールバックURLのサンプル

https://OAUTH2_REDIRECT_URI/?code=AUTH_CODE&state=760iz0bjh9gy71asfFqa

 

このレスポンスに含まれるstateパラメーターが、承認リクエストで渡したstateパラメーターと一致することを確認します。stateパラメーターが一致しない場合は、リクエストがCSRFによるものである可能性があり、拒否する必要があります。

 

 

サードパーティライブラリ

 

サードパーティライブラリを使用して、HP DaaSとやり取りを行う場合には、ライブラリが信頼できる提供元のものであることを慎重に判断してください。提供元のレビューを読み、コードに目を通し、背景調査を行って、これが悪意のあるライブラリではなく、予期しない動作を行わないことを確認してください。HP DaaSでは、サードパーティライブラリを公式にサポートしていません。そのため、技術的な質問や懸念がある場合には、ライブラリの開発チームに直接お問い合わせください。

 

 

エラー処理

 

Cloud APIの性質上、開発者またはHP DaaSの制御の及ばない理由で、サービスが一時的に利用できなくなることがあります。HP DaaSまたはサードパーティのAPIに呼び出しを行う際には、これが動作しなかった場合を想定し、リクエストにエラー処理ロジックを常に含めることが推奨されます。これには、次のようなリクエストを含めることができます。
 
GET https://daas.api.hp.com/oauth/v1/authorize

 

POST https://daas.api.hp.com/oauth/v1/token