mixiアプリ » 技術仕様(RESTful API方式) » スマートフォン » アクセスユーザの取得とOAuth Signatureの検証
アクセスユーザの取得とOAuth Signatureの検証
SAPサーバへのリクエストには、実行中アプリケーションやユーザに関する情報や改ざん防止のための署名等の各種パラメータが付加されています。これらを適切に利用することにより、ソーシャルアプリケーションを安全かつ簡単に作成することができます。
リクエスト例
実際に送信されるリクエストのサンプルがこちらです。アプリケーションに最初にアクセスしたとき、スタートURLに設定した「http://example.com/hello.html」に対して各種パラメータが付加され、以下のようなリクエストがSAPサーバに対して送信されることになります。
http://example.com/hello.html?oauth_consumer_key=mixi.jp&oauth_nonce=8edf6cde90a 884f2d1af&oauth_signature=ZhzLCBAzeDm5NNr65AUooc6n0ber2sVUl3ccze%2B%2BH4k3gCMJ8S 9gDX2oTAKkAJZ5xKU66Nk9nb4c%0A2JXt7KWV5pJK0TJ3Cjl%2FSDuqB%2F2cpv6zwgsuNtATzMoFgbc rx%2BWKiO1Q15hOdGjuY%2B0dhjQUyB2l%0AM4MMCPxn5Cj14n%2Fo%2BVA%3D&oauth_signature_m ethod=RSA-SHA1&oauth_timestamp=1277104016&oauth_version=1.0&opensocial_app_id=39 4&opensocial_owner_id=xxxxxxxx&opensocial_viewer_id=xxxxxxxx
※署名は実際のものとは異なります
アクセスユーザの取得
SAPサーバへのリクエストに付加されたQueryStringパラメータを参照することにより、現在実行中のアプリやユーザに関する情報を識別することができます。各種パラメータの意味は、以下のようになっています。
- opensocial_app_id … アプリケーションID
- opensocial_owner_id … アプリを登録しているユーザのID
- opensocial_viewer_id … アプリを実行しているユーザのID
なお、mixiアプリ for TouchではCANVASビューのみのサポートとなるため、opensocial_owner_id と opensocial_viewer_id は常に同一の値となります。
OAuth Signatureの検証
SAPサーバへのリクエストには、アプリやユーザに関する情報の他に改ざん防止を目的としたOAuth Signatureが付加されています。mixiアプリ以外からの不正アクセスを防ぐために、必ずこのSignatureの検証を行うようにしてください。この処理を怠ると、悪意を持ったユーザによる不正アクセスが容易になってしまいます。正しく検証を行うことにより、以下のチェックを行うことが可能です。
- mixi Platformから送信されたリクエストであること
- リクエストの内容が改ざんされていないこと
署名方式にはRSA-SHA1を利用していて、検証方法はPC版mixiアプリの署名付きリクエストと同じです。実際の検証方法については、署名付きリクエストの検証に関するドキュメントを参照してください。
公開鍵
署名検証に使用する公開鍵を以下に掲載します。セキュリティ向上の観点から、PC版mixiアプリの署名付きリクエストとは異なるものが使われていますのでご注意ください。
-----BEGIN CERTIFICATE----- MIIEKDCCApACCQCaEk7HB4ReBjANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJK UDEOMAwGA1UECAwFVG9reW8xEDAOBgNVBAcMB1NoaWJ1eWExEzARBgNVBAoMCk1J WEksIEluYy4xEDAOBgNVBAMMB21peGkuanAwHhcNMjMwNjAyMDYzNjQ2WhcNMzMx MTAxMDYzNjQ2WjBWMQswCQYDVQQGEwJKUDEOMAwGA1UECAwFVG9reW8xEDAOBgNV BAcMB1NoaWJ1eWExEzARBgNVBAoMCk1JWEksIEluYy4xEDAOBgNVBAMMB21peGku anAwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC9wYRKJs/mAdF3TizN DfzqcQ11QUBA/+sKBff7gD+Yntq/IuhfGmahxiGjvDJiZ93bU4MBFOVMd5coLLk/ lNWgx36mCyyTIGoZKfujAsdD7wToELO3sZ2XsL0rfb39APXyYGKNsD7zFJPaPBVZ 3IeEuPZG21d8g/fbBs/2osiVWzWmmDwfgt6zAgePFBrqaVwAle4TbMjm4lfo9VEL KlIBb5mgU9m+SAG6pNzbh71daT3VibrMCVS8r9UJUIssjTnQ/G9ADo+AoRvdE5UM s+5hBBWQWjCU1gioZ+RoyxeuiS7yqb9OdB8e0n5tIEya3Pcm4O4oHy7F96mg9Wsv uREQg2qAfxyHqi6pEt7HPkxunRptWUAbpby6pUMnSgS1uYo8L/Rnqsv/ZKvMdLsx mq/4PE9bl/R6zTENWQX0mL9E3+gGItLP7kTpbgo0m5ghJ/EYozmDR0G0TMYzhPLR RIJaSMDo/Hu//zvOR2I/wmZwA3+iGmR/HDFoDhg7pHcefzcCAwEAATANBgkqhkiG 9w0BAQsFAAOCAYEAfLNRKqhBzitAEW2C0fccbTDlXH7YOTeDdLSVf+ZWz7pdEKUW 8Vxdtl27Yeqs8CsARj+Zk/wOzee32+mAHxzWtdS1NkPwAMufCV/48GXPXMFJSa30 Ay+QGjNWJVubGGa51eKL3iaK0M3VA+MLCP7nvVZ0/CS4YlpS8qeYymZolH7bsv5p blK3ivVPP7i4BM9VYB5V1TyuTs5gkSwz1n4KJ7saOBionubLXlsBu2xW80fcRFT8 FQ1sDllHBaitOXPfFCkjAin1DUyZKpTPqe3cLv0NAeMVBPReLKX75kqvZKVagfJ1 kjdk4tGAYAb0LIvoJ0Vpt82iVSGmv5eTERR7mWwiFrbRFVD5mIhYxpj+Uw9NYcvm Fh7I8CCAUJEdSq2cb2U8/BmUE7rvXu9Yz9QxJl+owtq4hU1nGohjqWS1WgvPlfeS 16jpiV4ml0vV5e+08xTgMTNarj0rDuqq5L+Lq+gq8vIdJXzDk5ZeecgrboMxZkZx EIIZhxvntbLMRufG -----END CERTIFICATE-----