Skip to content

Omniauth and force com

shunter1112 edited this page Sep 14, 2013 · 2 revisions
この記事は不正確か古くなった情報が含まれていることがわかっています。私たちはこの問題を解決しようとしています。

このチュートリアルはHerokuで作るRubyアプリケーションにおけるサードパーティからのSalesforce.comをつかった認証について扱います。このアプリケーションの目的の為に私たちは前提として、今日古来のユーザ名/パスワードを使ったサインアップの代わりに、多くのアプリケーションが今日FacebookやGoogleでの認証を提供するように、それぞれのユーザが"Salesforceにサインイン"できることが必要であることを前提とします。

このアプローチの有利な点としては、アプリケーションデベロッパであるあなたを、あらゆる人のユーザ名やパスワード、貴重なデータを保持したり管理したりする必要性から解放してくれること、そしてより厳格な方法でユーザの認証を提供してくれることです。

より短い時間で新しいアカウントを登録して作りながらも、ユーザはSalesforceのデータやもしくは彼らのChatterのフィードへのアクセス、内部システムやサードパーティ製アプリのスムーズな統合、そして企業向けのソーシャルアプリを作る格好の機会への権限を与え(そして嫌なら無効化す)ることができます。

OAuthに関する完全な議論はこのチュートリアルの範囲を越えていますが、もしOAuthの方法に関する深い議論に興味があるならば[Digging Deeper into OAuth2 at Salesforce.com](http://wiki.developerforce.com/index.php/Digging_Deeper_into_OAuth_2.0_at_Salesforce.com)をチェックしてください。

この処理を選択した私たちにとっての武器は、とても強健でよくメンテナンスされているRubyで書かれたOmniauthというライブラリです。Omniauthの根底には、Rubyでの「複数プロバイダからの認証」を作る上での処理の標準になろうとしているところがあります。最たる部分で言うとRailsとの相性がとてもよく、そして最も人気のある認証ライブラリです。:Omniauth.

Omniauthを使って、例えばFacebookやGoogle…または(そうです)Salesforce.comなどの特定の私有化されているサービスを使って認証する「作戦」を練ることができるようになりました。幸いな事に、このようなライブラリは既に存在しており、それはここでメンテナンスされています。認証をSalesforceに委譲したRails4の簡単なアプリケーションを作る過程はとてもわかりやすいです。以下に大筋を載せています。

リモートアクセスプロバイダの設定

Setting up your Remote Access provider

他のTwitterやFacebookなどのプロバイダと違い、Force.comのプラットフォームは自分のリモートアクセスプロバイダの設定を許可しています。ここでは、Force.comについて少し知っておかなければならず、そして開発者バージョンの環境を設定してもらう必要があります。もしこれらの物をもっていなければ、無料アカウントをここで作ることができます。Force.comのプラットフォームの素晴らしい点として、あなたのリモートアクセスプロバイダをすばやく作る事ができることがあります。これはもしあなたが例えば複数のモバイルアプリケーションを作っていて、そして認証とクラウドから全て得られるデータアクセスを一元化したいと思った場合にとても役立ちます。

一度、開発者バージョンの環境を取得し、ログインしたら、Digging Deeper into OAuth2 at Salesforce.comの記事に戻って、"Configuring OAuth2.0 access in your Application"とタイトルが付いているセクションの説明に従ってみてください。以下のようなURLをコールバックURLとして使います。(callbackURLについてはまもなく説明するつもりです。)

https://localhost:4567/auth/forcedotcom/callback

私たちのリモートアクセエスプロバイダの設定を使って、動かすための作戦を実行する時がきました。

Railsプロジェクトの準備

最初に新しいRails4アプリを作ります。

gem install rails -v 4.0.0.rc1 --pre
rails new omgwow-salesforce && cd omgwow-salesforce

ライブラリの追加

次に、必要なライブラリ(DeviseとOmniauth-Salesforce)を追加して行きます。以下の物をGemfileに足してください :

gem 'devise'
gem 'omniauth-salesforce'

概要

カスタマイズされたOmniauthの作戦を書く事は、OAuthの全てのリクエスト/コールバックのやり取りを実装しようとするのに比べてとても簡単です。一度私たちのプロバイダインスタンスを使ってForce.comとOAuthできるようになったら、すぐに素敵なアプリを作り始めることができます。なぜなら低レベルでの構造を気にせずに、必要としていることに集中できるようになるからです。自分のカスタムプロバイダの作成、スケーラブルなクラウドデータベースの利用、そしてデプロイの単純化ができる能力を使ってみてください。そうすればすばらしいCloud2アプリケーションのための全ての素材が手に入ります。githubからコードを手に入れ、作り始めてみましょう。

余計な時間がかからないように、Githubから落とせるサンプルアプリはあなたのアプリのスタートとして使う事ができます。もしサンプルアプリをつかうならば、config/initializers/omniauth.rbの中にある、consumer-keyconsumer-secretを変更し、ローカルで作業する用に自分の証明書を発行して、HerokuにデプロイするときにはPiggyback SSL アドオンを使う必要があります。

Clone this wiki locally