ChatterのFeedTrackChangeを簡単に削除するBookmarklet

by Mitsuhiro Okamoto on 11月 30, 2011 at 11:55 午前

ChatterChatterの開発や運用、デモ作成等をしていると、「岡本 充洋 さんがこの〇〇を作成しました。」とか「〇〇 さんが 自己紹介 を変更しました。」といったようなデータが沢山出来てしまい消したいなという瞬間があると思います。

システム管理者(Chatterモデレータ)であれば、全ユーザのPostやCommentをUI上から簡単に削除出来るのですが、上記のFeedTrackedChangeの内容は、API経由であれば削除できますがUIからは削除することは出来ません。

そこで、簡単に削除が出来るようになるBookmarkletが役に立ちます。下記のBookMarkletをロードすると、FeedTrackedChangeのデータの横に"Delete"ボタンが出てくるので簡単に削除が出来ます。お試し下さい。

FeedTrackedChange削除Bookmarklet

HerokuのSlugとその動き

by Mitsuhiro Okamoto on 11月 29, 2011 at 03:21 午後

Heroku_logo2purple_rgb

みなさんHerokuはどの言語でお使いですか?個人的にはNode.jsが一番好きですが、古くからサポートされているRubyが一番多いでしょうか。

Herokuでは現在、Cedarスタック(Beta)上では公式に6つのプラログラム言語をサポートしています。

各言語は、RubyGem(Ruby)やnpm(Node.js)、pip(Python)といったパッケージマネージャーと合わせて利用するようにデザインされています。そしてPlay!の様にフレームワークをプラットフォームレベルでサポートしている点も大きな特徴です。

これらの言語やフレームワークで作られたアプリケーションをGit pushで受け取ると(正確にはpre-receive hook)、Dynos間に素早く展開出来るようにプログラムをSlugと呼ぶ塊にします。いわゆるHerokuの世界でのアプリケーションのパッケージです。

このSlugを作る際に、あらかじめアプリケーションがどの言語を使って作成されたの判断することでマルチ言語を実現しています。各言語の判断には、その言語固有のファイルがあるかどうかと優先順位で判断します。

各言語の判断基準と優先順位は以下の通りです。(こちらBlog記載時の実動作をベースとしており、今後変更される可能性があります)

例えばGemfileとpackage.jsonが両方あった場合には、Gemfileが優先されてRubyアプリケーションだと認識されます。

優先度言語 / FW判断ファイル
1 Ruby /Gemfile
2 Node.js /package.json
3 Clojure /project.clj
4 Python /requirements.txt
5 Java /pom.xml
6 Scala /Bulit.sbt
7 Play! /conf/application.conf
- PHP 上記ファイル無し(未アナウンス)

 

アプリケーションを構築する際のご参考になれば幸いです。

 

多言語プラットフォームに関してはAdamのBlog postもご参照下さい。
http://blog.heroku.com/archives/2011/8/3/polyglot_platform/

 
Slugの詳細については以下の記事もご参照下さい。
http://devcenter.heroku.com/articles/slug-compiler

Cloudforce New York 開催間近!! 2011年11月30日 9:30 〜 (東部時間)

by Mitsuhiro Okamoto on 11月 28, 2011 at 10:40 午後

Cft11detailslogo Cloudforce 2011 Japanは12月14、15日に開催されますが、一足先の11月30日10:00よりCloudforce 2011 New Yorkが開催されます。(日本時間では11月30日24:00からです)Cloudforce 2011 New Yrokも基調講演にはMarc Benioffが登壇し、Salesforce.com Live にてストリーミング配信がされる予定です。

8月末のDreamforceから約3ヶ月、新たに増えたソーシャルエンタープライズの事例や、Herokuを活用した大規模なシステムの紹介など、開発者や先進ユーザにも興味深い内容となっています。ご興味の方は深夜ですが是非御覧ください。

Force.com Labs Application ~ Milestones PM ~

by Mitsuhiro Okamoto on 11月 26, 2011 at 03:12 午後

Milestoneセールスフォース・ドットコムのスタッフがデモや提案用に作成したアプリケーションを公開して共有する為のプロジェクト、「Force.com Labs」から、Coolなプロジェクト、タスク、予算管理アプリケーション"Milestones-PM"がAppExchangeに公開されています。

アプリケーションのUIは現在英語のみですが、無料のアプリケーションですのでAppExchangeサイトからどなたでもインストールが可能です。Alohaパッケージ版であればProfessional Editionでも動作します。

Milestones-PM - Unmanaged Package
http://appexchange.salesforce.com/listingDetail?listingId=a0N30000003ItrEEAS


Milestones-PM - Aloha Package
http://appexchange.salesforce.com/listingDetail?listingId=a0N30000005tvt6EAA

またMilestones PMのはオープンソースで開発されており、ソースコードはGithubにすべて公開されています。

ForceDotComLabs / Milestones-PM
https://github.com/ForceDotComLabs/Milestones-PM

 

ご興味のある方は是非お試し下さい。

また現在Visualforceページ等は直接テキストが記述されてますが、日本語化パッチなどもご興味ある方はチャレンジしてみて下さい!

12月2日15:00より、Winter '12新機能 Webinar開催します

by Mitsuhiro Okamoto on 11月 24, 2011 at 12:45 午後

Winter_12IdeaExchangeでは既にSpring '12のロゴが決定していますが、皆様Winter '12でリリースされた新機能はもうお使いでしょうか?

Winter '12の新機能説明会では、開発者の方に限らずSalesforceの新機能全般をご紹介いたしました。
http://www.ustream.tv/recorded/17724274


この度ひと通りの新機能も全て有効化しましたので、Winter '12でリリースの中から、開発者向けのものにフォーカスして改めてご紹介するWebinarを開催致します。

Cloudforce 20111 Japanを前に、ソーシャルエンタープライズを構成する新しい機能について確認しておく良い機会となりますので、是非ご参加下さい。

開発者向けWinter '12新機能リリースWebinar
http://www.developerforce.com/events/jp_winter_12_webinar/registration.php

Herokuの新しい成功事例 ~ Project Zebra ~

by Mitsuhiro Okamoto on 11月 22, 2011 at 11:59 午後

  

HerokuのWebサイト新しい成功事例が掲載されました。Project Zebra社のモバイル&ソーシャルアプリケーションでHerokuが使われています。

このProject Zebra社では映画「トランスフォーマー/ダークサイド・ムーン」のDVD&ブルーレイディスク版のリリースプロモーション用のアプリケーションをわずか8週間でリリースしました。

TF3 Battle Zone(Facebook)
https://apps.facebook.com/tfthreebattlezone/

TF3 BATTLE ZONE (iPhone)
http://itunes.apple.com/us/app/tf3-battle-zone/id467964134?mt=8

TF3 BATTLE ZONE (Android)
https://market.android.com/details?id=de.imagineon.tfms

このアプリケーションはユーザはAUTOBOT™かDECEPTICONS™のどちらかを選択してバトルを行いながらゲームを進めていくものですが、サーバサイドのコードはほぼ全てHeroku上のRuby on Railsで記述されているそうです。

またFacebookアプリケーションにはPythonが使われていますが、Project Zebra社にはPythonに慣れ親しんだエンジニアが在籍していたため、Herokuという多言語プラットフォームによって迅速にFacebookアプリケーションを開発できたそうです。

リリース時にはトラフィックが殺到しましたが、Herokuのscaleコマンド一発ですぐにスケールさせることに成功しました。またアプリケーションの監視はHeroku Add-onでも提供されるNewRelicを使って簡単に行え、アプリケーションそのものの開発に集中することが出来ました。

映画提供元のパラマウント社は1000万を超えるトランスフォーマーへのLikeを集め、現在アプリケーションは1週間に5万人以上ものユーザが利用しています。

 

こちらはHerokuによって、記録的な速さでの大規模スケーラビリティを発揮した事例の一つですね。原文は英語となっていますが、Herokuを活用した成功事例にご興味がある方是非御覧ください。 

Heroku | Success | Project Zebra
http://success.heroku.com/Project_Zebra

 

また、日本でもHerokuを使って大きな成功を収めたいという方は、是非セールスフォース・ドットコムにご相談下さい。

Siteforceの日本語ビデオが公開されました

by Mitsuhiro Okamoto on 11月 21, 2011 at 11:00 午後

Siteforceの日本語ビデオがYoutubeに公開されました。

こちらのビデオは開発者向けと言うより、コードを書くことが無いマーケティング担当者でも簡単にサイトを作成できることが説明がされていますが、Siteforceを開発者が使えば、カスタマイズしたスタイルシートを記述したり、高度なJavascriptを使ってよりダイナミックなページをすぐに作成できます。

DeveloperEditionではSiteforceが既に有効化されていますので、これを機会に是非Siteforceを試してみて下さい。

新バージョンSpring 12' のロゴ投票が始まっています!!

by Mitsuhiro Okamoto on 11月 18, 2011 at 02:59 午後

ideaExchangeサイトで次のSalesforce.comのバージョンであるSpring '12のロゴ投票が始まっています。是非お気に入りのロゴに投票してみて下さい。もし気に食わなければご自身でロゴを作って投稿しても良いかも!?

Leaf

 

Rainboots

 

Flowers

 

個人的にはRainbootsなんですが、現在Leafが人気みたいですね。

今週のForce.com & Herokuな方々のTweet 〜 2011/11/17号 〜

by Mitsuhiro Okamoto on 11月 17, 2011 at 11:02 午後

Socialbird_2 こちらのポストでは、ソーシャルメデイア内、とりあわけ主にTwitter上にて日本語で言及されているForce.com及びHerokuな内容を定期的にご紹介していきます。

ソーシャルメディアのプライバシー設定をオープンにしている方のみを対象にしていますが、掲載に問題がある場合は@DeveloperForceJまでお知らせください。すぐに対応させて頂きます。

 

しんやさん @shinyaa31 - 11月17日のtweet

こうしてみるとHeroku魅力的すなぁ。GAE/Heroku/EC2/レンタルVPS...環境面も色々と勉強せねば。 / HerokuでWebアプリ開発を始めるなら知っておきたい10のこと - アインシュタインの電話番号☎http://goo.gl/J8wcA

 

HerokuはEC2に比べて手軽に使える上、GAEに比べて使える言語が豊富かつ無料の範囲でも色々できるのも一つの魅力ですね。

 

Hiroshi Yoshitaさん @xlouder - 11月17日のtweet

日経新聞読んで初めて知った。Force.comって”フォース・コム”だったのね。”フォース・ドットコム”だっと思ってた。。。 だってセールスフォース・ドットコムだから。

Herokuに引き続き名称ネタですね。正式にはフォース・ドットコムです。仰るとおりです。こちらを御覧ください。https://www.salesforce.com/jp/dictionary/words/force_dot_com.jsp


ふーかわしょうさん @furupi2007 - 10月29日のtweet

@szk924 @micci0610 セールスフォースでいいじゃん。俺も毎日使うけど、セールスフォースはマジですげーーーーサービスだよ。そりゃ売れるわ的な。なんか近々セールスフォースカンファレンス2011みたいなのやるんしゃなかったかなあ

はい、やります。Cloudforce 2011 Japan申し込まれましたか?まだの場合は是非こちらからお申し込み下さい。http://cloudforcejapan.com/


他にも多くのTweetがありましたが、今後も定期的にピックアップしてご紹介して行けたらと思います。

Matz(まつもとゆきひろ氏) Cloudforce 2011 Japanで登壇します

by Mitsuhiro Okamoto on 11月 16, 2011 at 01:34 午後

Rcl

Rubyの生みの親でもあるMatz(まつもとゆきひろ氏)のCloudforce 2011 Japanでの講演が決定しました!!

C-3セッション 「RubyとHerokuに見るソフトウェア開発のこれから

このセッションに参加すれば、なぜクラウドではRubyがよく使われているのか、なぜCEOのMarc BenioffがRubyとHerokuに注目し、MatzをHerokuに向かい入れたのかが分かると思います。まだお申し込みがお済みでない方は、お席に限りがありますのでお早めにどうぞ。お申し込みはこちらです。

先日のポストにもあるDo.comは、Heroku上でRuby on Railsを使って構築しているという話にもある通り、今日のクラウドアプリケーション開発において、Rubyはますますその存在感を高めています。

Matzのセッションをお見逃しなく!!

資本提携 〜 株式会社シャノン & デジタルコースト株式会社 〜

by Mitsuhiro Okamoto on 11月 15, 2011 at 02:57 午後

Appx 本日2つの米セールスフォース・ドットコムとの資本提携のニュースが発表されました。

 

株式会社シャノン、セールスフォース・ドットコムと資本提携を締結~クラウドプラットフォームHEROKU(ヘロク)上で「バーチャルイベントプラットフォーム」を開発~
http://www.shanon.co.jp/corporation/news/2011/11/heroku.html

 

デジタルコースト、セールスフォース・ドットコムと資本提携を締結 ~「Force.com」専業ベンダーとして、国内初の資本提携~
http://www.digitalcoast.co.jp/spirit/2011/1115_000044

 

両社は資本提携以前より、セールスフォース・ドットコムのAppExchangeパートナーとしてマーケットプレイスにアプリケーションを掲載していました。ここでは簡単に両社とそのアプリケーションをご紹介をさせて頂きます。

 

 

株式会社シャノン 

 

今回の資本提携でシャノン社はHeroku上でのバーチャルイベントプラットフォームの構築を発表していますが、以前よりリアルイベントも含めたイベント・セミナー管理サービス「SHANON MARKETING PLATFORM」を提供しています。

MARKETING PLATFORMで集客した見込み客は、AppExchangeアプリケーションによってそのままSalesforce CRM上のリードとしてシームレスに取りこめます。今後は前出のバーチャルイベントプラットフォームと合わせて、より強力なマーケティングエコシステムを構築していく事になります。

 

Shanon SHANON MARKETING PLATFORM
http://appexchangejp.salesforce.com/listingDetail?listingId=a0N300000016bX7EAI

 

 

デジタルコースト株式会社

 

デジタルコースト社は、2010年にセールスフォース・ドットコムのAppExchangeパートナーとして、勤怠管理アプリケーション「アッと@勤務 Free」をリリースしました(現在はVerUpし、Free2となっています)。その後原価管理、勤怠管理、経費精算など、ERPのフロントエンド業務が全てForce.com上で可能な「チームスピリット4e」を2011年3月にリリースしています。

アプリケーションはForce.comネイティブに作成されているため、顧客はこのアプリケーションを利用するのに追加のリソース等は全く必要ありません。トライアルを使ったマーケティングや顧客への新バージョンの配信・通知にはISVForceを利用しており、デジタルコースト社自身もオンプレミスなサーバを全く用いずにこのビジネスをハンドリングしています。今後はさらにチームスピリットの機能を拡充して、Force.comアプリケーション群の中で重要な一角を担うようになります。
 

Team チームスピリット4e
http://appexchangejp.salesforce.com/listingDetail?listingId=a0N30000003J6KhEAK

Heroku Schedulerアドオンがリリース

by Mitsuhiro Okamoto on 11月 15, 2011 at 12:03 午後

Cron Heroku Blogにアナウンスがありましたが、Heroku Schedulerがリリースされました。このAdd-onは以前からあったCron Add-onの代替品にあたりますが、より高機能でフレキシブルに使えるものとなっています。そしてなにより無料(one-off Admin Processes としてDynosの稼働時間を計上)です。

Heroku Schedulerではダッシュボード上で、10分ごとから、1時間ごと、毎日の間隔で自由に実行するように設定でき、そしてCron Add-onとは違い(Cronの場合はAdd-onを有効化した時間に依存していた)いつに実行されるかを10分単位で指定できます。

Scheduler Dashboard

 

マルチ言語対応(Polyglot)タスク

 

タスクにはアプリケーション内で動作するものか、Unixシェル上から起動するものが利用できます。

例えばRailsの場合はrakeタスクとして実行します。スケジュールタスクをRailsアプリケーションの中に作成するには、以下のコードをlib/tasks/scheduler.rakeに入れて、カスタマイズすれば良いでしょう。

desc "This task is called by the Heroku scheduler add-on"
task :update_feed => :environment do
    puts "Updating feed..."
    NewsFeed.update
    puts "done."
end

task :send_reminders => :environment do
    User.send_reminders
end

 

もしPythonをFabricの様なデプロイメントツールとともに使っている場合は、fab clean_sessionsの様にタスクを定義することも可能です:

from fabric.api import task

@task def clean_sessions():
    url = urlparse(os.environ.get('REDISTOGO_URL'))
    db = redis.Redis(host=url.hostname, port=url.port, password=url.password)
    db.delete('myapp:sessions')
    print 'done.'

 

その他の言語やフレームワークの場合は、例えば bin/updater.xxxの様に、bin/ フォルダ以下にそのタスクを行う処理を置くようにします。 


ジョブのスケジューリング

 

ジョブのスケジュールを設定したい場合は、アプリケーションのスケジューラダッシュボードを開いて"General Info"から"Scheduler"を右側のAdd-onドロップダウンメニューから選択します。

スケジューラダッシュボード上で、"Add Job..."をクリックし、タスク名および実行頻度、次の実行開始時間を設定します。

注意 : 次の実行時間はUTC(協定世界時)となっています。日本時間に合わせるには、実施したい時間よりも9時間速く設定して下さい。

例えば上記スクリーンショットの様に、rake update_feedをスケジューラへ追加して、"Hourly"と":30"を選択すると、毎時30分の時に実行されます。次にrake send_remindersを、"Daily"と"00:00"で設定すればリマインダが毎晩0:00に送信されるようになります。

 

Cron Add-onからマイグレーションする場合

 

既存のCron Add-onユーザは可能なかぎり速くHeroku Schedular Add-onに移行するほうが良いでしょう。より高機能かつ簡単に使える上に無料です。Cronでは単一のreke cronコマンドの実行のみ制限されている上に、日毎や時間毎でのコントロールする術がありません。ShedulerではCron Add-onができた全ての事とそれ以上の事ができます。

もし新しいジョブをできるだけ今までのCronジョブの実行スケジュールに近い様に設定したい場合は、Cron Add-onのダッシュボードから"Scheduled for"情報を見ます。そしてSchedulerダッシュボードに行き、新しいタスクを日毎か時間毎で作成し、Next RunフィールドにCronのジョブに近い値を入力します。タスクにはrake cronを入力します。

Winter ’12リリースノート – 10月31日及び11月7日更新最新

by Mitsuhiro Okamoto on 11月 14, 2011 at 11:44 午後

Chatter

Winter ’12リリースノート(英語) が11月7日に最新版としてアップデートされていますが、以下の新機能について追記されました。

主にリリーススケジュールの変更ですが、Chatter関連のリリースは顧客とのグループの共有や、プライベートメッセージ等、アプリケーションの利用やプラットフォームとしての可能性を広げる物ですので、是非今一度ご確認下さい。日本語版のリリースノートはプレビュー版ですがこちらにあります:

 

Chatterグループの顧客– リリーススケジュールの変更

リリース次期が変更となりお待たせしておりましたが、下記のスケジュールこの新機能はリリースされました。

NA0, NA2, NA3, NA4 — 2011年11月9日にデプロイされました
AP0, AP1, EU0, EU1, NA5, NA10, NA11, NA12 — 2011年11月11日にデプロイされました

 

Free Chatterデータストレージ

Winter ‘12より、Chatterのフィードポスト、トラック変更及びコメントはデータストレージに計上されなくなりました。アップロードされたファイルや写真については引き続きファイルストレージで計上される点はご注意下さい。

 

Salesforce Chatterは今後もアプリケーションとしても、ソーシャルプラットフォームとしても進化し続けます。

Force.com APIをGoogle OAuth 2.0 Playgroundから呼び出す

by Mitsuhiro Okamoto on 11月 11, 2011 at 11:43 午後

米国BlogのPostにもありますが、先日Googleから「OAuth 2.0 Playground」というForce.com REST APIの様なOAuth 2.0プロトコルを使ったAPIを簡単に試すためのサービスがアナウンスされました。Apigeeの様にREST API及びChatter APIがプリセットされているわけではないですが、少し設定を行えばOAuth 2.0PlaygroundからもForce.comのAPIを呼び出すことが可能です。

方法は以下の通りです。

1. リモートアクセス設定の作成

Developer Editionにログインし、<設定> - <開発> - <リモートアクセス>からリモートアクセス設定を作成しOAuthのkey及びsecretを生成します。この際、Callback URLには「https://code.google.com/oauthplayground/」をセットします。

De_2

するとすぐにConsumer key及びConsumer secretが発行されます。

 

2. OAuth 2.0 Playgroundの設定

OAuth 2.0 PlaygroundはデフォルトではGoogleのAPI群を利用するように設定されているので、変更する必要があります。右上のOAuth 2.0 Configrationをクリックし以下の様に設定します。

OAuth authorization endpoint : https://login.salesforce.com/services/oauth2/authorize

OAuth token endpoint : https://login.salesforce.com/services/oauth2/token

OAuth Client ID : Force.comで設定したConsumer key

OAuth Client Secret : Force.comで設定したConsumer secret

Config_2

3. OAuth 2.0 Playgroundでauthorization codeを取得

次に実際にForce.comに OAuth2.0 Playgroundからアクセスしてみます。左下のscopeフィールドに、デフォルト値でもある「id api refresh_token」を入力して、「Authorize APIs」ボタンを押下します。

Id1

 

すると、Force.com側で認可を促す画面が現れます。

Oauth

 

4. OAuth 2.0 Playgroundでtokenを取得

Force.comの画面から認可を行えばAuthorization codeが帰ってきますので、このコードを元にトークンを取得するため、「Exchange Authorization for tokens」ボタンを押下します。Refresh token及びAccess tokenが帰ってきます。

Exchange2

 

5.OAuth 2.0 Playfroundからアクセス 

ここでaccess tokenを取得した際のJSONデータを見てみると IDキーの部分にURLが入っています。

First

まずはそちらのURLを使ってリクエストを送信してみましょう。この際、HeaderにX-Prettyprint:1を入れておくとJSONを可読性が高い様に整形して返却してくれるので設定しておきましょう。返却されるデータにはユーザー情報や組織情報の他にも、利用可能なAPIの一覧が表示されます。

Result1

 

6.OAuth 2.0 PlayfroundからSOQLを発行してみる

例えば以下の様なクエリをURLに入れてSend the Requestボタンを押してみましょう。すると、JSON形式で組織内の取引先の名称が取得出来るのが分かります。

https://mokamoto-developer-edition.my.salesforce.com/services/data/v23.0/query?q=SELECT+Name+FROM+Account

Result2  

如何でしょうか?その他にも、chatter APIへのアクセスやsobjectのDescribe、最近使ったデータの参照(recent)など、様々な事がREST APIから出来るようになっています。

 

このようにGoogle OAuth2.0 Playgroundでは多少設定が必要なですが、OAuth2.0プロトコルがどの様に動作しているかを理解し、Force.com APIの使い方を調べるには有用なサービスですので是非ご自身で試してみてください。

また「Salesforce.comのOAuth 2.0を掘り下げてみよう」にもOAuth2.0の入門記事が載っていますので、こちらもぜひご覧下さい。

なおこの手順は英語ですが動画でも見ることができますので、こちらもご確認下さい。

Ruby on Rails on HerokuのWebinarが開催されます

by Mitsuhiro Okamoto on 11月 10, 2011 at 11:55 午後

Herokuwebinar

こちら英語となってしまいますが、Ruby on Railsで作成したアプリケーションをHeroku上にデプロイし、スケールさせるまでの手順を実際に解説するWebinarが開催される予定です。

いつものWebinarと同様に、既にDeveloperForceメンバー(Developer Editionアカウントをお持ちの方)であれば、すぐに参加登録することが出来ます。

開催は日本時間で11月17日の24:00と27:00とちょっと深夜になってしまいますが、ご興味ある方はぜひご参加ください。

Developing and Deploying with Ruby on Rails on Heroku
http://www.developerforce.com/events/heroku_rails_webinar/registration.php

Do.com招待制ベータでリリース

by Mitsuhiro Okamoto on 11月 9, 2011 at 11:50 午後

Do Salesforce.comが昨年買収したManymoonの買収後の成果として、Do.comが招待制のベータリリースを行いました。

Do.comはmanymoonの単なる焼き直しでなく、Heroku+ Ruby on Railsを使って完全に書きなおされた、HTML5ベースのソーシャル対応プロダクティビティ(タスク、プロジェクト、ノート)管理サービスです。

Do.comは小規模なチームがすぐに使い始められるSalesforce CRMをはじめとしてFacebookやGoogle Apps、Dropbox等のサービスとのインテグレーションをはじめ、Gmailガジェットや、iOS用のクライアントアプリなど、フットプリントの軽い新サービスらしいモダンな機能を取り揃えてます。

Invitationコードをお持ちでない方はまだ利用できませんが、Do.comは近い将来に正式リリースされどなたでもお使い頂けるようになりますので、是非ご期待下さい。

Do and it's done.
https://do.com/ 

Force.comのセキュリティとサブドメイン

by Mitsuhiro Okamoto on 11月 8, 2011 at 08:27 午後

Goku_2 先日、何故このような事を聞かれたのか皆目検討が付かないのですが、「ログインページがサブドメインになってないと脆弱性なの?」と不安がっている方にお会いしました。

ご安心下さい。もちろんForce.comでも、一年以上前にリリースされたMydomainと呼ばれる機能で任意のサブドメインを設定することは簡単に可能です。

しかし、サブドメインであればセキュリティが強固という概念自体が新たな脆弱性を生みかねません。

視認上見分けがつくだけでセキュリティが守られるほど甘くは有りません。攻撃者は孫悟空の様に攻撃サイトを変化(へんげ)させ、視認上見分けがつかないように騙してくるからフィッシングされてしまうのです。フィッシング対策には、万が一フィッシングされても問題が無い様な、もう少しCoolな方法が必要です。

Force.comではサブドメインだけに頼らない強力なセキュリティ機能を持っています。今回はそちらも合わせて紹介したいと思います。 

 

サブドメインの設定方法

まずサブドメインについてですが、設定画面より管理者設定 -> 組織プロファイル ->私のドメイン にていつでも設定できます。

また、サブドメインとlogin.salesforce.comの並行運用や、Podドメイン(ap.salesforce.comなど)のリンクをクリックした場合の挙動なども規定できます。

Mydomain

 

Identity Confirmation

Force.comにはIdentity Confirmationという機能がデフォルトで備わっています。これはいわゆる2ファクタ認証(2-factor authentication)と呼ばれるもので、異なる複数の認証方式を用いてセキュリティを高めたものです。

そのため、万が一にフィッシング等でForce.comのユーザ名及びパスワードが漏洩してしまう事態となっても、攻撃者はForce.comにログインすることは出来ません。Identity Confirmationによって初めてアクセスする端末や、今までアクセスの無かったIPアドレスからログインが行われた場合、登録されているメールアドレスや電話番号/SMS(現在パイロット)に送られる確認コードで別途認証を行わなければログイン出来ない様になっているためです。

Phone

SAML

またForce.comではSAML2.0を使ったシングルサインオンに対応(IdP,SP双方)しています。自身がIdPとなって別のサービスの認証を一元管理したり、逆にSPとなることで、他のIdPの認証ポリシーに沿ってForce.comへのログインを許可するといった事も柔軟にできます。Microsoft Active Directory Federation ServicesとのSSO等も可能です。

Force.comとADFSでシングルサインオン

 

その他のセキュリティ機能

その他にもForce.comには、ユーザのプロファイルごとのIPアドレス制限や、詳細なパスワードポリシー設定、ログイン履歴の監査など、数多くの機能を備えています。

 

サブドメインや見た目のカスタマイズだけでは、セキュリティを確保し金融機関や名立たるIT企業の信頼を得る事はできません。Force.comではこのように強固なセキュリティ機能と柔軟な設定によって、様々な企業の個別のセキュリティ要件を満たしているのです。

#CFJ11 開発者向けお勧めセッション C-5 〜 Adaptive Development Methodology (ADM) 〜

by Mitsuhiro Okamoto on 11月 7, 2011 at 11:50 午後

Adm CloudForce Japan 2011の参加申し込みが始まっていますが、皆様既にご登録されていますでしょうか?まだの方は既に残席僅かのセッションも出てきておりますので早めにご登録下さい。


開発者向けのトラックはCトラックとなっていますが、こちらではCトラックのセッションを随時ご紹介させて頂きます。

 

まずはC-5「Adaptive Development Methodology (ADM) ~ Salesforce.com R&Dの大規模アジャイル開発 ~」です。

 

Salesforce.comでは新機能のリリースをほぼ一定期間(4ヶ月)毎に行っていますが、この様なリリースサイクルを可能にしている秘密が、ADM(Adaptive Development Methodology)と呼ばれるScrumをベースとした独自のアジャイル開発手法です。

今回のCloudforce Japanでは米国R&Dで働くエンジニア(日本人です!!)が来日し、現在実際にR&Dで行われている最新の手法をご紹介致します。ADMはScrumベースである事以外にも、CI(Continuous Integration:継続的インテグレーション)、AutoBuild、Lock the Code Lineなど、様々な特徴を持っています。

エンタープライズにおけるAgile開発の事例や、Salesforce.com R&Dが実際に行なっている手法についてご興味ある方は是非ご参加下さい。特にソフトウェアアーキテクト、プロジェクトマネージャの方々にお勧めです。

Time Table|Cloudforce 2011 Japan

Force.com REST とStreaming API 〜 Winter '12リリース 〜

by Mitsuhiro Okamoto on 11月 4, 2011 at 10:03 午後

55x55integration Spring '11で正式リリースされたREST APIと、現在パイロットリリース中のStreaming APIですが、Winter '12ではいくつかの機能追加及び変更がありました。以下詳細です。

 

 

REST APIでバイナリデータサポート改善

REST APIでのバイナリデータ(Blob)アップロードは従来50MBまででしたが(base64エンコード後のサイズ)、Winter '12リリースでは、multipartタイプを使用して500MBまでのblobファイルをアップロード出来るようになりました。

multipart/form-dataで送信されるデータの構造はEmailのraw dataと似た構成になっています。

--boundary_string
Content-Disposition: form-data; name="entity_document";
Content-Type: application/json
{
    "Description" : "Marketing brochure for Q1 2011",
    "Keywords" : "marketing,sales,update",
    "FolderId" : "005D0000001GiU7",
    "Name" : "Marketing Brochure Q1",
     "Type" : "pdf"
}

--boundary_string
Content-Type: application/pdf
Content-Disposition: form-data; name="Body";
filename="2011Q1MktgBrochure.pdf"

ここにバイナリデータが入る

--boundary_string--

 

より詳しい情報は最新のREST APIドキュメント(英語)を御覧ください。

 

Streaming APIのOAuth tokenの扱い変更

Streaming APIのSummer '11リリースでは OAuth Tokenのやりとりにcookieを利用していましたが、Winter '12リリースではHTTP Authorizationヘッダに付与するように変更されました。

Authorization: OAuth sessionId

 
この変更によってCookieではなくJavascriptによって自由にAuthorizationヘッダを設定できるので、REST APIとの共存がより簡単になりました。

 

Streaming APIのcannelのprefixに"/topic/"が付与

Streaming APIのWinter '12でのもうひとつの大きな変更として、Bayeux(CometD)プロトコルで送信されるデータのcannel名には、"/topic/" + PushTopic名が用いられるようになりました。これによって、例えばjQueryのCometDバインドを使った例では以下の様に記述するようになります。

var cometdUrl = 'https://' + window.location.hostname + '/cometd/23.0/';
var auth = 'OAuth {!$Api.Session_ID}';
$.cometd.init({
    url: cometdUrl,
    requestHeaders: { Authorization: auth }
});

$.cometd.subscribe('/topic/AccountTopic', function(message) {
    //ここに受信時の処理を記述
});

 

Streaming APIにおけるタイムアウトの変更 

最後のWinter '12における大きな変更は、セッションタイムアウト値がhandshakes、connects、subscribesのたびにリセットされるようになりました。詳細は最新のSreaming APIドキュメント(英語)に記載されています。

 

Streaming APIはWinter '12の時点ではパイロットリリースとなっています。実際にDeveloper Editionで試してみたい方はセールスフォース・ドットコムへお問合せ下さい。

Streaming APIはまだ開発途中の機能ですが、リアルタイムなPush通知が実装できるようになるなど、非常に大きな可能性を秘めています。Database.comでも使えるようになる予定ですので、是非ご期待下さい。

今週のForce.com & Herokuファンの方々のTweet

by Mitsuhiro Okamoto on 11月 2, 2011 at 10:34 午後

Social

米国Force.com Blogで連載されている「Tweets of the Week」ですが、ソーシャルメデイア内で、日本語で言及されているTweetも定期的に紹介していこうかと思います。

 

Twitterをオープンにしている方のみを対象にしていますが、掲載に問題がある場合は@DeveloperForceJまでお知らせください。すぐに対応させて頂きます。

 

Tatsuo Kudoさん @tkudos - 10月28日のtweet

Seamless Single SignOn with SAML | Dreamforce '11http://developer.force.com/dreamforce/11/session/Seamless-Single-SignOn-with-SAML 16:00 あたり、なんかおもしろいことやってるっぽい。「はい、セッションクッキーどうぞ(会場どっかんどっかん)」とか

PatとChuckが講演しているSAMLのセッションで、実際に自分たちをIdPやSPに見立てて演技しているみたいですね。音声だけなのが悔しい所です。

 

さんさんさんこ さん @terasan0426 - 10月28日のtweet

自戒も含めて。 研修で同じクラスになった人で、やたらとDBとしてのセールスフォースが変だとか、テクニカルな部分を気にしている人がいる。問題は、そこよりもCRMとしてどうすぐれているとか、業務で想定してる使い方をするのに、ネックになるのはどこかとかそういうとこじゃないだろーか。

素晴らしい考察です!!既知の古いテクノロジとの"違い"ではなく、生産性や要件・業務にどうフィットするかが重要だと私たちも考えています。


きしだ さん @kis - 10月29日のtweet

「Heroku(ヘロク)社の買収について」お!公式にヘロクっぽい 「セールスフォース・ドットコム、Heroku社買収の最終合意に署名」http://www.salesforce.com/jp/company/news-press/press-releases/2010/12/101210-1.jsp

はい。セールスフォース・ドットコム社で使っている公式な日本語名は「ヘロク」です。買収前より古くからHerokuをお使い頂いている方々に色々思いはあるでしょうが、あえて日本語表記する際は「ヘロク」で統一して頂けると幸いです。


他にも多くのTweetがありましたが、今後も定期的にピックアップしてご紹介して行けたらと思います。

Cloudforce 2011 Japan 開催 - 申し込み開始しました

by Mitsuhiro Okamoto on 11月 1, 2011 at 07:11 午後

Cfj 今年もこの季節がやってまいりました!

2011年12月14-15日、ザ・プリンスパークタワー東京にて、「Cloudforce 2011 Japan」が開催されます。基調講演には米国セールスフォース・ドットコム 会長兼CEOであるマーク・ベニオフが登壇する予定です。

ブレイクアウトセッションでは、Force.comやDatabase.comの開発者向けセッションや、Herokuのエンタープライズ利用に関するセッション、Salesforce.com R&Dが実践するアジャイルメソトロジであるADMについてなど、開発者の方にも有用な内容となっております。

またDeveloper Labと呼ばれるスペースでは、開発者がワークブックを使って実際にコードを確認しながら学べるワークスペース、最新テクノロジをご紹介するデモステーションなどをご用意致します。

Force.com開発者の方、Herokuを実業務で利用したいと考えている方、アジャイル開発の導入を検討するアーキテクトの方などはぜひご参加下さい!!

Cloudforce 2011 Japan
http://cloudforcejapan.com/