mixi Developer Center (ミクシィ デベロッパーセンター)

mixiアプリ

mixiアプリ » 技術仕様(旧方式) » スマートフォン » アクセスユーザの取得と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-----
MIICdzCCAeCgAwIBAgIJAL1PPQYXg2doMA0GCSqGSIb3DQEBBQUAMDIxCzAJBgNV
BAYTAkpQMREwDwYDVQQKEwhtaXhpIEluYzEQMA4GA1UEAxMHbWl4aS5qcDAeFw0x
MDA2MTQwNzE4MDFaFw0xMjA2MTMwNzE4MDFaMDIxCzAJBgNVBAYTAkpQMREwDwYD
VQQKEwhtaXhpIEluYzEQMA4GA1UEAxMHbWl4aS5qcDCBnzANBgkqhkiG9w0BAQEF
AAOBjQAwgYkCgYEAyLv0jHJHboDJn8yUeAoQhE94HBfu9c1hfjPVkJ6czmD0fW4x
H/TGsExmIIPBG8FS5/dJNl8Fgm63X9drsTZEAPmWVFr0mrPkP2n2pRW7y0marYmH
SNgpFeAD/C0fMFPS2HZ05jjwJJi62+xjnseHfX3V5o3JJ1gOuTUhqFN6njUCAwEA
AaOBlDCBkTAdBgNVHQ4EFgQU7UzxLRDMxmgBPsJvE6HjWJMk4g4wYgYDVR0jBFsw
WYAU7UzxLRDMxmgBPsJvE6HjWJMk4g6hNqQ0MDIxCzAJBgNVBAYTAkpQMREwDwYD
VQQKEwhtaXhpIEluYzEQMA4GA1UEAxMHbWl4aS5qcIIJAL1PPQYXg2doMAwGA1Ud
EwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAWzi3Co9uJ62iGOtriC4JUpDWNYo3
EkHIIZ4xa95kKEn2MKRUqEHYpyavWeFhdE3bpqfwN0QmFMOQHwuYmh3E8aiMBCyQ
CF/Y1KPB1kxMsJ0HDr7gPx/nE5y1GB8ZxhhRqHNLmQeQkXNKKEr+k8TWruiRrcn3
8fCjc9qX8/yby/U=
-----END CERTIFICATE-----

このページの上部へ