分ついに最終回を迎えた本連載ですが,最後に最も重要ながらも,なかなか理解しにくい,パーミッションモデルについて解説します。思いついた面白いガジェットのアイディアも,これによって実現可否が分かれてしまうことがあるくらい,重要です。この機会にしっかり理解してしまいましょう。パーミッションモデルとは何を指すのかSNSでパーミッションと言ってパッと思いつくものに,情報の公開範囲が挙げられるでしょう。mixiの日記には「全体に公開⁠」⁠,「⁠友達まで公開⁠」⁠,「⁠友達の友達まで公開⁠」⁠,「⁠グループを指定して公開」といった選択肢があります。この機能により,ユーザーは自分が書いた日記を誰が見ることができるか,決めることができます。他にも自分の本名や年齢,誕生日等についても,公開範囲を指定できるSNSは少なくありません。このようなSNSのネイティブ機能の場合,登場人物は「SNS(コンテナ⁠)⁠」⁠「⁠持ち主ユーザー(オーナー⁠)⁠」⁠「⁠相手ユーザー(ビューアー⁠)⁠」です。通常のSNSにおけるパーミッション関係しかし,OpenSocialガジェットの場合,これらに加えて「ガジェットディベロッパー」が登場人物として加わってくることで,話が複雑になってきます。内容によってはとても困った状況に陥るかもしれません。何かSNSの機能に不具合があったか,友達の誰かが流すしかありえない,と思うでしょう。日記を見れるのはコンテナか,友達のビューアーしかいないのですから。この話にディベロッパーが加わるとどうなるでしょう?例えば,先ほど例に挙げたOpenSocialガジェットが,日記の情報にアクセスすることができたと仮定しましょう。その場合,ユーザーはあくまで他のユーザーに対しての日記の公開範囲を設定したに過ぎず,ガジェットがその設定を超えて日記の情報を取得できるとしたら,その段階でプライバシーとして保護されていない状況と言えるでしょう。これまでの連載でお気づきと思いますが,ガジェットはJavaScriptとHTMLでできているとはいえ,ディベロッパーの実装次第では,取得した個人情報を外部サーバーに送信することは容易です。悪意のあるガジェットディベロッパーなら,SNSの持つあらゆる情報を盗み出し,プライバシーを蹂躙することができてしまうのです。先ほどの例で言えば,ネットの掲示板にあなたの友達まで公開の日記がさらされている原因に,ガジェットディベロッパーが容疑者として加わることになります。コンテナは個人情報の流出を2つの理由から防がなければなりません。ひとつはユーザーのプライバシーを守るというモラルのため。ひとつは個人情報保護法を遵守するコンプライアンスのため。ソーシャルグラフという重要な資産を守るという意味もあるかもしれません。コンテナが打てる対策はいくつかあります。信頼できるディベロッパーのみがガジェットを提供可能な仕組みを導入する規約に同意することでユーザーにリスクを受け入れてもらうシステム的な制約を設け,ディベロッパーが取得できる個人情報を限定するgooホームで取られている対策は,これら3つすべてです。ここですべて説明することは出来ませんので,システム的制約の部分に絞って話を進めます。基本ルール※以下で言う「個人情報」は,アクティビティやアプリデータを含む,あらゆるユーザーにまつわるデータを指します。対象が同じガジェットをインストールしていることガジェットをインストールすることで,ユーザーがガジェットディベロッパーに個人情報の提供を同意したものと見なすことから,ガジェットをインストールしていれば,公開されている個人情報を取得することができる,というルールになっています。逆に言うと,ガジェットをインストールしていないユーザーの個人情報は,基本的に取得することができません。ニックネーム,プロフィール画像url,プロフィールurl)に限り,取得することができます。更新・削除は対象がビューアーの場合のみガジェットをインストールしているからと言って,他人の個人情報を変更できるのでは困ります。個人情報の更新や削除については対象がビューアーの場合,つまりガジェットを操作している人の場合のみ行うことができます。ここで解説した基本ルールはgooホームのものですが,orkutでも同様のルールが適用されます。mixiアプリについてはまだ仕様が揺れている状態のようですが,おそらくは似たようなものになるでしょう。hi5のように誰の情報でも取得できるし,好きなように書き換えることができてしまう何でもアリな環境も存在したりしますので,一概にこれがOpenSocialのルールである,とは言い切れないことは覚えておいてください。Kitchenの解説をご覧ください。繰り返しになりますが,パーミッションモデルはOpenSocialにおいて,欠くことのできない要素です。OpenSocialガジェットを作ることはそれほど難しいものではありませんし,ガジェット全体からすればOpenSocial固有のAPIを利用する部分など,知れています。本当にOpenSocialガジェットや,ソーシャルウェブアプリケーションが書けるかどうかは,パーミッションモデルを理解しているかどうかである,とあえて断言します。最後にはてブチェッカーというガジェットとgooホームを題材に,これまで8回に渡りOpenSocialガジェットの実装方法を解説してきましたが,いかがでしたでしょうか?筆者としては,実は書き足りないことが山ほどあります。Japanコミュニティに投稿してください。私や共著者の田中洋一郎を含め,OpenSocial好きが集まっているコミュニティですので,きっと誰かが回答してくれるはずです。Hackathonという勉強会が開かれています。Hackathonはその場で実装を行うことを通じ,実践的にAPIを学んで行こうという試みです。次回はgoo,mixiの共同開催を計画しています。それでは,ご愛読ありがとうございました。ガジェット著者プロフィール北村英志(きたむらえいじ)NTTレゾナントでgooのソーシャル化にコンセプトから携わる。OpenSocialCommunityへの仕様提案だけでなく,Shindigへのコード提供も行っている。Expert(OpenSocial)。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。