SalesforceだけでSSO(OAuth2.0)を試す:事前準備編

はじめに

テラスカイでは社内勉強会がそこそこ頻繁に開催されています。今回はその勉強会で実施した内容をブログでご紹介したいと思います。

SSO(Single Sign-On)ですが、ニーズはよく聞くのでインターネットなどで調べてみたものの、何となく分かったような分からないような、正しく理解できているか不安に感じている方もいらっしゃることでしょう。 (私もご多分に洩れずそんな感じでした!)

そこで、実際に動くものを作って試すのが理解を深めるには手っ取り早いだろうということで、SalesforceのDeveloper Editionを2つ使って、2回連載で「OAuth2.0」を試してみたいと思います。 ※Developer Edition1つでも試すことはできます。

なお、標準化団体OASISによって策定された、認証情報を表現するためのXML仕様「SAML」もSalesforceはサポートしており、こちらもSalesforceだけを使って試すことができます。機会があればSAMLも紹介したいと思います。

SalesforceでOAuth2.0

OAuth2.0については本家サイト(Salesforce.comのOAuth 2.0を掘り下げてみよう)にて詳しく以下の4つのフローが説明されていますので、合わせてご覧になるとよいと思います。

  • ● Webサーバフロー
  • ● User-Agentフロー
  • ● SAMLアサーションフロー
  • ● ユーザ名-パスワードフロー

今回扱うのは「Webサーバフロー」です。 本家サイトで説明されているフローを簡単なVisualforceとApexだけで実装してみます。

実装前の設定概要

最終的にはOAuth2.0を使って、別Developer組織にある取引先をRest APIで取得し、取引先を一覧表示するアプリを作ります。 VisualforceとApexの実装に入る前に図に示した3つの設定を行っておきます。

事前設定の概要

最終的な完成イメージ

2つのDeveloper Editionを使った完成後のイメージです。(次回掲載予定の実装編も含む) 最終的な完成イメージ

1.ドメイン登録

1.1.ドメイン登録

Sitesを使って試すのでドメインを登録します。 ドメイン取得

1.2.Site新規作成

Siteを新規に作成します。 Siteの作成

1.3.公開アクセス設定

公開アクセス設定からSitesユーザ用のプロファイルに取引先への参照権限を与えておきます。 公開アクセス設定

2.リモートサイトの設定

2.1.リモートサイトの設定

認証サーバとリソースサーバをリモートサイトに登録します。リモートサイトは、アクセストークンの取得や取引先のデータ取得にApexでCalloutするため、設定しておかないとSalesforceがエラーを出します。 2.1.リモートサイトの設定

3.接続アプリケーションの設定

3.1.接続アプリケーションの設定

OAuthを使用するための必要な設定を行います。 接続アプリケーション設定

おわりに

SalesforceだけでSSO(OAuth2.0)を試すための準備編でした。次回では、OAuth2.0を使ったSSOを行うための実装をVisualforce、Apexで開発していきます。

実際に動くコードを書き、動作を体験して頂ければきっと理解が深まると思います。