OAuth を使用して Salesforce SSO を実装する方法
公開: 2023-11-23SSO (サインオンとも呼ばれます) を使用すると、ユーザーがすべてのシステムにログインする必要がなくなります。 これは、あるシステムが別のシステムに依存してユーザーを認証するように構成します。 ユーザーを認証するシステムはアイデンティティ プロバイダーと呼ばれ、認証のためにアイデンティティ プロバイダーを信頼するシステムはサービス プロバイダーと呼ばれます。
ユーザーは 1 日に 1 回ログインするだけで 1 セットの認証情報を使用するだけなので、Salesforce SSO を実装して攻撃対象領域の数を減らすこともできます。 また、ログインを 1 セットの認証情報に減らすことで、企業のセキュリティが強化されます。
サードパーティの ID プロバイダー、委任認証、OAuth などを使用して Salesforce SSO を実装できます。 組織の現在のインフラストラクチャ、ユーザー管理の実践、およびセキュリティ要件に応じて、任意の方法を選択できます。 プロセスを理解してから徹底的に進める必要があります。
この投稿では、OAuth (トークン交換を通じて、クライアント アプリケーションが保護されたリソースのデータにアクセスすることを承認するオープン プロトコル) を使用して Salesforce SSO を実装します。
目次
Salesforce SSO を実装する – プロセスを始めましょう
まず、Salesforce SSO 用の Connect App を作成する必要があります。 接続アプリケーションは、API や標準プロトコル (SAML、OAuth、OpenID Connect など) を使用して外部アプリケーションを Salesforce と統合できるようにするフレームワークです。 さらに、接続されたアプリはこれらのプロトコルを使用して認証、認可を行い、外部アプリにシングル サインオン (SSO) を提供します。 このようなアプリケーションは、SSO を有効にするか、セキュリティ ポリシーを設定して、サードパーティ アプリケーションが組織からアクセスできるデータを制限します。

Salesforce と統合された外部アプリケーションは、カスタマー サクセス プラットフォーム、他のプラットフォーム、デバイス、または SaaS サブスクリプション上で実行できます。
たとえば、Salesforce モバイルアプリケーションにログインして Salesforce 組織のデータを表示するときは、接続アプリケーションを使用していることになります。
接続アプリケーションは、外部アプリケーションに関するメタデータをキャプチャすることにより、外部アプリケーションがどのプロトコル (SAML、OAuth、OpenID Connect) を使用するか、および外部アプリケーションが実行される場所を Salesforce に伝えます。 その後、Salesforce は外部アプリケーションにそのデータへのアクセスを許可し、アプリケーションのアクセス期限が切れるときなどのアクセス制限を定義するポリシーをアタッチできます。 Salesforce は接続アプリケーションの使用状況を監査することもできます。
Salesforce.Org で接続アプリケーションを使用するにはどうすればよいですか?
- API統合によるデータへのアクセス
- サービスプロバイダーとSalesforceを統合する
API 統合によるデータへのアクセス:
開発者または独立系ソフトウェアベンダー (ISV) が、Salesforce 組織からデータを取得する必要がある Web ベースまたはモバイルアプリケーションを構築する場合、接続アプリケーションをクライアントとして使用してこのデータをリクエストできます。 これを行うには、Salesforce API と統合する接続アプリケーションを作成します。
こちらもお読みください: Pipedrive と Salesforce の統合を接続する方法
サービスプロバイダーと Salesforce を統合します。
Salesforce が ID プロバイダとして機能する場合、接続アプリケーションを使用してサービスプロバイダを組織と統合できます。 組織の設定に応じて、次のいずれかの方法を使用できます。
SAML 2.0 を備えた接続アプリケーションを使用して、サービスプロバイダーを組織と統合します。 Salesforce は、サービスプロバイダまたは ID プロバイダがフローを開始するときに SAML シングルサインオン (SSO) をサポートします。
接続されたアプリでどのような役割を果たしますか?
簡単に言うと、開発者は接続アプリの承認フローを作成および構成し、管理者は接続アプリの使用を制御するためのポリシーと権限を設定します。 しかし、それぞれの役割にはそれだけではありません。
- コネクテッドアプリ開発者
- 接続されたアプリの管理者
接続されたアプリを使用する手順は次のとおりです。
従う必要がある手順がいくつかあります。 これらの手順を以下に説明します。
- 1. ドメインの設定
- 2. プロファイルはユーザー オブジェクトにアクセスする必要があります
- 3. 接続されたアプリのセットアップ
ドメインのセットアップ手順:

[設定] -> [クイック検索] ボックス -> [ドメイン管理] -> [ドメイン] をクリック -> [新しいドメインの作成] (まだ存在しない場合) に移動します。
私の場合、ドメイン名はgst-idp-dev-edです。
プロファイルアクセスユーザーオブジェクト
任意のユーザーに使用するプロファイルは、ユーザーにアクセスできる任意のユーザーにすることができます。
- たとえば、ここに 1 つのプロファイル「標準ユーザー」があります。 このプロファイルをクリックすると、このプロファイルにユーザーを追加できます。
[セットアップ] -> [クイック検索ボックス] -> [プロファイル] -> [標準ユーザー プロファイル] -> [標準ユーザー] またはその他のプロファイルをクリックします。


外部ユーザーを任意のプロファイルに追加します。たとえば、私は標準ユーザーで作業しています。
- または、ユーザーの作成中に、このプロファイルをユーザーに割り当てることができます。
「割り当てられたユーザー」をクリックします
「新規ユーザー」をクリックしてユーザーを追加します
- または、ユーザー オブジェクトにアクセスしてそれを使用する必要がある新しいカスタム プロファイルを作成することもできます。
[セットアップ] -> [クイック検索ボックス] -> [新しいユーザーの作成] または [既存のユーザーの編集] -> [標準ユーザー プロファイル] または作成したカスタム プロファイルを割り当てます。
カスタムの場合は、次の場所に移動します。

[セットアップ] -> [クイック検索ボックス] -> [プロファイル] -> [ユーザーのアクセス許可を持つ新しいプロファイルを作成]
接続されたアプリのセットアップ手順:

セットアップ -> クイック検索ボックス -> アプリの管理 -> 接続されたアプリ -> 接続されたアプリの作成

私の場合、アプリのラベルはGST_IDPで、任意の名前とバージョンを指定できます。
接続アプリ内の詳細: 
Consumer Key と Consumer Secret は Salesforce 自体によって生成されます。

GST システム呼び出し API
基本情報(ID、プロフィール、メールアドレス、住所、電話番号)にアクセスします。
フルアクセス (フル)
この URL は GST システムによって使用されます。
選択された OAuth スコープ:
コールバック URL:
http://{ドメイン名}/Account/ExternalLoginCallback
ドメイン名はサイト URL に置き換えられ、それを使用してアプリケーションにアクセスします。
元:
https://gme-gst-test.bp.com/Account/ExternalLoginCallback

1. これにより、コンシューマ キーとコンシューマ シークレットが返されます。

2. 次に、コンシューマ キー、コンシューマ シークレット、およびドメイン名をパラメータとして .net API に渡す必要があります。

注: API を使用して他のサイトと統合する場合は、リモート サイト設定でサイト URL を設定する必要があります。
Salesforce 開発サービスの経験豊富な Salesforce コンサルタントをお探しの場合は、当社までご連絡ください。
こちらもお読みください: Salesforce Commerce Cloud 導入のメリット
重要なポイント
これで、OAuth を使用して SSO を実装し、ユーザーの各システムへのログインを容易にする方法がわかりました。 これを達成するのは簡単だと思われるかもしれませんが、専門知識が必要ですのでご安心ください。 プラットフォームを最大限に活用するための完璧なガイダンスを提供する、大手 Salesforce コンサルティング会社に連絡できます。
Emizentech が最高のサービスを提供するためにここに来れば、最高の会社を見つけるためにあちこちに行く必要はありません。 当社には、世界中のクライアントが Salesforce プロジェクトを達成できるよう支援する、経験豊富な Salesforce コンサルタントのチームがいます。