はじめに
Salesforceが提供するSSO(Single Sign-On)を使ったことありますか?
今回は、認証プロバイダにWinter'15から追加サポートされたTwitterとの認証を実際に試してみたいと思います。Twitterによる認証は主にコミュニティへのログインで使われることが多いと思いますので、コミュニティでログインできるところまでを紹介します。
設定の流れ
認証プロバイダを設定する上での大まかな流れです。
1.Twitterアプリケーションの設定
2.Salesforce組織で認証プロバイダを設定
3.登録ハンドラ(RegistrationHandler:Apexコード)を編集
4.Twitterアプリケーションを更新(Callback URLの設定)
5.シングルサインオン接続をテスト 6.コミュニティのログインページにTwitterアイコンを追加
1.Twitterアプリケーションの設定
1.1. https://apps.twitter.com/ から Create New App でアプリケーションを登録します
1.2. 登録したアプリケーションの Consumer Key(API Key)、Consumer Secret(API Secret)を控えておきます
2.Salesforce組織で認証プロバイダを設定
2.1 設定 > セキュリティのコントロール > 認証プロバイダ の画面を開き、新規作成します
2.2 プロバイダタイプに Twitter を選択、その他の情報を入力し保存します。
2.3 保存後の設定情報は以下のようになります。
3.登録ハンドラ(RegistrationHandler:Apexコード)を編集
3.1 自動生成された登録ハンドラをテストを行う環境に応じて一部修正します
自動生成されたコードを見ると以下で構成されていることがわかります。
・canCreateUser: ユーザを作成するかの判定メソッド
・createUser: ユーザを作成するためのメソッド
・updateUser: ユーザを更新するためのメソッド
なお、サンプルコードは、著者Dev環境でエラー無く動くように限定的に修正したものです。
4.Twitterアプリケーションを更新(Callback URLの設定)
4.1 認証プロバイダのCallback URLをTwitterアプリに登録します
5.シングルサインオンのテスト
5.1 認証プロバイダのテスト初期化URLを開きます。図のようにTwitterの認証画面が表示されます。 5.2 認証プロバイダのシングルサインオン初期化URLを開きます ※コミュニティにログインする場合、URLに対してcommunityパラメータを付加して開きます https://login.salesforce.com/services/auth/sso/orgID/URLsuffix?community=https://jima-dev.na7.force.com/testcommunity orgID:組織ID URLsuffix:認証プロバイダを設定した時のSuffix communityパラメータ:ログインするコミュニティのURL
6.コミュニティのログインページにTwitterによるログインアイコンを追加
6.1 設定を行うコミュニティの管理設定を開きます
6.2 ログイン&登録を選択します
6.5 Twitterのアイコンが追加され、そこから認証を行いコミュニティが開くことを確認します。
おわりに
SSOのニーズはよく聞くのでインターネットなどでSSOを調べてみたものの、何となく分かったような分からないような、正しく理解できているか不安に感じている方もいらっしゃることと思います。
今回の記事等を通じて、実際に動かして体感されることにより、きっと理解も深まることと思います。
今回の記事は「Salesforce1 Advent Calendar 2014」の16日目に参加しています!