-
Notifications
You must be signed in to change notification settings - Fork 9
Omniauth and force com
このチュートリアルはHerokuで作るRubyアプリケーションにおけるサードパーティからのSalesforce.comをつかった認証について扱います。このアプリケーションの目的の為に私たちは前提として、今日古来のユーザ名/パスワードを使ったサインアップの代わりに、多くのアプリケーションが今日FacebookやGoogleでの認証を提供するように、それぞれのユーザが"Salesforceにサインイン"できることが必要であることを前提とします。
このアプローチの有利な点としては、アプリケーションデベロッパであるあなたを、あらゆる人のユーザ名やパスワード、貴重なデータを保持したり管理したりする必要性から解放してくれること、そしてより厳格な方法でユーザの認証を提供してくれることです。
より短い時間で新しいアカウントを登録して作りながらも、ユーザはSalesforceのデータやもしくは彼らのChatterのフィードへのアクセス、内部システムやサードパーティ製アプリのスムーズな統合、そして企業向けのソーシャルアプリを作る格好の機会への権限を与え(そして嫌なら無効化す)ることができます。
この処理を選択した私たちにとっての武器は、とても強健でよくメンテナンスされているRubyで書かれたOmniauthというライブラリです。Omniauthの根底には、Rubyでの「複数プロバイダからの認証」を作る上での処理の標準になろうとしているところがあります。最たる部分で言うとRailsとの相性がとてもよく、そして最も人気のある認証ライブラリです。:Omniauth.
Omniauthを使って、例えばFacebookやGoogle…または(そうです)Salesforce.comなどの特定の私有化されているサービスを使って認証する「作戦」を練ることができるようになりました。幸いな事に、このようなライブラリは既に存在しており、それはここでメンテナンスされています。認証をSalesforceに委譲したRails4の簡単なアプリケーションを作る過程はとてもわかりやすいです。以下に大筋を載せています。
他の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
私たちのリモートアクセエスプロバイダの設定を使って、動かすための作戦を実行する時がきました。
最初に新しい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-key
とconsumer-secret
を変更し、ローカルで作業する用に自分の証明書を発行して、HerokuにデプロイするときにはPiggyback SSL アドオンを使う必要があります。