Blogical

AWS/Salesforceを中心に様々な情報を配信していきます(/・ω・)/

Salesforceを用いたシングルサインオンについて(1) - axiom(IDP)とSalesforce(SP)のシングルサインオン

おはようございます。ロジカル・アーツ株式会社のSE 輪島 幸治です。

axiomからSalesforceSAMLシングルサインオンで連携するSalesforceインテグレーションの記事を執筆させて頂きます。

この記事は、Salesforceとaxiomを使用します。初心者向けに、axiomに値を設定して、シングルサインオンで、 ユーザ名・パスワードを使用せずにSalesforceにログインする連携方法をご紹介させて頂きます。

ブログ記事の範囲としては、axiomの入力項目値、Salesforce側の連携設定を画像で紹介するところまでです。 axiomからSalesforce組織にSAMLシングルサインオンを実行して、その結果、Salesforceにログイン出来れば目標達成としています。

はじめに

Salesforceは、ID管理の機能があり、SalesforceがIDプロバイダーとして他システムのID管理をする役割を担うことができます。 その一方で、他のシステムがログインIDを管理した場合に、Salesforceがサービスプロバイダーとして他システムにID管理をしてもらうこともできます。 この記事では、初心者向けにSAMLを用いたシングルサインオンのうち、Salesforceがサービスプロバイダーである場合について記載させて頂きます。

エンジニアの皆様は、合わせて関連する公式のドキュメントもご参照下さい。 シングルサインオンについては、 公式のSalesforce 開発者サイトに、ドキュメントが用意されています。 また、公式のTrailheadにモジュールも用意されています。

この記事では、IDプロバイダーにaxiomを使用します。

公式Trailhead: 内部ユーザのシングルサインオンの設定

SAMLについて: Identity の基本 - ID に関する用語

SAML プロトコル

ユーザが繰り返しログインせずに Salesforce 組織とアプリケーションの間をシームレスに移動できるようにするには、シングルサインオン (SSO) を設定します。Security Assertion Markup Language (SAML) は、SSO を可能にするプロトコルです。

この記事の目的

対象者

この記事では、他システムのログインIDをSalesforceと連携するシステム基盤の構築などで、 技術検証でSAMLのインテグレーションを行う方向け。 あるいはSalesforceを使用していて、 初めて他システムとのシングルサインオンを検討する場合を想定しています。

目標

SAMLシングルサインオンSalesforceを用いる場合に、他システム連携の設定理解を目標とした記事です。 Salesforceの設定をする時間がないので、画像だけで設定概要を知りたいという方に設定方法を知って頂くことを目標としています。 公式のTrailheadを補足する記事として、Salesforceとaxiom側の設定について、画像付きでご紹介させて頂きます。

概要

こちらの記事で紹介させて頂くSAMLシングルサインオンは、axiomからSalesforceに、ログインを行います。

f:id:logicalarts:20210519164625p:plain

シングルサインオン(Single Sign-On/SSO)自体は、 一度の認証で連携システムにアクセスが行える仕組みです。複数のアプリケーションなどにも対応しています。

この記事では、IDプロバイダーをIDP、サービスプロバイダーをSPと表記しています。

axiomとSalesforceについて

axiomは、Heroku Web アプリケーションのシングルサインオンツールです。

axiom: Axiom

axiomでは、SAML IDプロバイダーとして、SAMLシングルサインオンを使用して 他システムへのSAMLシングルサインオンをすることができます。

Salesforceは、すぐに使えるクラウドサービスとして、 官公庁などでも使用されているクラウドアプリケーションプラットフォームです。

SEC・JASA共催セミナー大阪 - 第1部 - クラウド・コンピューティングとIT経営

(P.36) クラウド・コンピューティングの利点 5

臨時に発生する業務への即応性 その2

[総務省経産省環境庁] エコポイント管理システムにSalesForce.ComのSaaSを利用 制度確定から約1カ月で稼働開始 想定利用者は1500万人から2000万人

さて、近年では、情報化社会の発展に伴い、教育のオンライン化なども進んでいます。 一般社会では、ニューノーマルやテレワークが進む中、オンライン環境のアーキテクチャの再構築も急務であり、多くの議論がされています。

一般社団法人情報処理学会 - 会誌「情報処理」 - 情報化社会のニューノーマル:0.編集にあたって

axiomとSalesforceなどでの設定概要が分かると、他のWebアプリケーションがIDPの場合のシングルサインオン設定が理解しやすいと思います。参考にしてみて下さい。

設定手順

シングルサインオンの設定手順ですが、 SP側の設定とIDP側の設定を交互に行う必要があります。

各手順について、順に説明させて頂きます。

統合IDの設定(Salesforce)

まず、SP側Salesforce組織でシングルサインオンで使用する統合IDの設定を行います。 設定した統合IDは、今回、IDPにて使用するaxiomでSAML Responseを生成するために使用します。 Salesforce組織の設定箇所は、ユーザの管理にある各ユーザの詳細画面にて設定することができます。

[設定] > [ユーザの管理] > [ユーザ]

f:id:logicalarts:20210519103452p:plain
統合IDの設定画面(ユーザの詳細画面)

項目名 項目値
統合ID logical2021webapp@gmail.com.axiomsso01.sp

※SalesforceIDと同じでもOK。

Identity Provider Certificate(IDプロバイダー証明書)のダウンロード(axiom)

次に、IDP側のaxiomにて、IDプロバイダー証明書をダウンロードします。

[Download the Identity Provider Certificate]を押下することでファイルを取得できます。

IDプロバイダー証明書は、SP側のSalesforce組織にて、 SAMLシングルサインオン構成を行い、シングルサインオンの設定を行う際に、Salesforceにアップロードして使用します。

axiom - SAML Identity Provider & Tester

f:id:logicalarts:20210519105405p:plain
Axiom - SAML Identity Provider & Tester画面

axiomからダウンロードできるファイルは、"Axiom-IdpCert.cer"というファイル名の.cer拡張子ファイルです。

f:id:logicalarts:20210519110304p:plain

SP側シングルサインオン設定(Salesforce)

シングルサインオン設定 - SAML を使用した統合シングルサインオン

axiomでIDプロバイダー証明書をダウンロードしたら、SPにて使用するSalesforce組織にログインして、 SAMLの有効化設定を行います。シングルサインオンでのSAMLの有効化設定は、"シングルサインオン設定 - SAMLを有効化"という設定項目にチェックを入れるのみです。

[設定] > [セキュリティのコントロール] > [シングルサインオン設定]

f:id:logicalarts:20210519111228p:plain
シングルサインオン設定 - SAML を使用した統合シングルサインオン

シングルサインオン設定 - SAML シングルサインオン構成

SAMLシングルサインオンの設定は、SAMLの有効化設定と同じページにある SAML シングルサインオン構成にある[新規]を押下して作成します。

[設定] > [セキュリティのコントロール] > [シングルサインオン設定]

f:id:logicalarts:20210519112602p:plain
シングルサインオン設定 - SAML シングルサインオン構成

f:id:logicalarts:20210519114533p:plain
SAML シングルサインオン構成 - 入力前

IDPがaxiomの場合は、SAMLシングルサインオンを行う設定値は、 赤枠で囲った8箇所を設定頂くことで、シングルサインオン設定を行うことができます。

f:id:logicalarts:20210519114610p:plain
SAML シングルサインオン構成 - 入力後

設定項目の参考値は、下記の通りです。

項目名 項目値
名前 Axiom Test App
発行者 http://axiomsso.herokuapp.com
ID プロバイダの証明書 Axiom-IdpCert.cer
*axiomからダウンロードしたIDプロバイダー証明書ファイルです。
SAML ID 種別 アサーションには、ユーザオブジェクトの統合 ID が含まれます
SAML ID の場所 ID は、Subject ステートメントの NameIdentifier 要素にあります
サービスプロバイダの起動要求バインド HTTP リダイレクト
API 参照名 Axiom_Test_App
エンティティ ID https://gmailcomaxiomsso01sp-dev-ed.my.salesforce.com/

設定項目を入力して保存すると、SP側のSalesforce組織の設定は完了です。

IDP側シングルサインオン設定(axiom)

Axiom - SAML Identity Provider & Tester

SP側のSalesforce組織の設定が完了したので、IDPとなるAxiomからシングルサインオンにてログインします。

まず、Axiomの[SAML Identity Provider & Tester]のページを開き、Generateセクションにある[generate a SAML Response]のリンクを押下します。

Axiom - SAML Identity Provider & Tester

f:id:logicalarts:20210519115143p:plain
axiom - SAML Identity Provider & Tester画面

[generate a SAML Response]を開くと、ログイン情報となるSAML Responseを作成するための項目設定画面が表示されます。

Axiom - SAML Response Requester

f:id:logicalarts:20210519115529p:plain
axiom - generate a SAML Response画面 - 入力前

SP側のSalesforce組織で[SAML シングルサインオン構成]にて設定した項目値をaxiomの入力フォームに設定して、 [Request SAML Response]を押下してログインに使用するSAML Responseを作成します。

入力フォームの具体的な設定値としては、SP側のSalesforce組織でシングルサインオンのログインユーザ向けに設定した統合IDや SAML シングルサインオン構成にて設定したEntity Idなどです。 Entity Idは、設定項目内にスラッシュ"/"がない場合には、エラーが発生する場合もあります。

f:id:logicalarts:20210519115911p:plain
axiom - generate a SAML Response画面 - 入力後

項目名 項目値
SAML Version 2.0
Username OR Federated ID http://axiomsso.herokuapp.com
Issuer logical2021webapp@gmail.com.axiomsso01.sp
Recipient URL http://axiomsso.herokuapp.com
Recipient URL https://gmailcomaxiomsso01sp-dev-ed.my.salesforce.com
Entity Id https://gmailcomaxiomsso01sp-dev-ed.my.salesforce.com/
*スラッシュ必要
SSO Start Page http://axiomsso.herokuapp.com/RequestSamlResponse.action

入力フォームに項目値を設定したら、[Request SAML Response]を押下します。

Axiom - SAML HTTP POST Binder

[Request SAML Response]を押下すると、入力フォームに入力した情報から、SAMLでログインするためのSAML Responseが生成されます。今回は、SAMLを用いたシングルサインオンの検証なので、画面右下の[Login]を押下します。

f:id:logicalarts:20210519134503p:plain
Axiom - SAML HTTP POST Binder

Salesforce ログイン

SAMLシングルサインオンでのログイン確認

axiomのSAML HTTP POST Binderで[Login]を押下するとaxiomからSalesforceに遷移して、統合IDを設定して、axiomにてSAML Responseを作成したログインユーザでログインできていることが確認できます。

f:id:logicalarts:20210519134717p:plain
axiomのシングルサインオンSalesforceにログイン

ユーザの管理から、統合IDを設定したユーザのログイン履歴を確認すると、 [SAML Idp Initiated SSO]というログイン履歴を確認することができ、SAML認証のシングルサインオンを用いてSalesforceにログインしたことが分かります。

[設定] > [ユーザの管理] > [ユーザ]

f:id:logicalarts:20210519135050p:plain
ユーザ画面 - ログイン履歴

まとめ

以上が、axiomからSalesforceにログインするSAMLシングルサインオン連携するSalesforceインテグレーションの設定方法です。

この記事の範囲であるaxiomからSalesforceにログインできました。 ログインでは、統合IDを使用することにより、ユーザ名とパスワードを使用していないことがわかると思います。

この記事で紹介させて頂いた手順を理解することで、 外部IDPからSalesforceにログインするインテグレーションパターンを検討することができます。

皆様もシステムIDの共通化のようなプロジェクトでSalesforceを連携先として検討する際に、 Salesforceをサービスプロバイダーという役割で使用するSAMLシングルサインオンを検討してみて下さい。

関連する公式ヘルプ:

サービスプロバイダとして Salesforce を使用した SAML シングルサインオン

Microsoft AD FS を ID プロバイダとして使用した Salesforce への SSO の設定

ジャストインタイムプロビジョニングの要件および SAML アサーション項目

よろしくお願い致します。

備考

  • この記事は、著者が独自に調査した結果を、ロジカル・アーツ株式会社のブログにて記事化したものです。 記載されている手順やアドレスなどは、予告なく変更される場合もあります。

  • この記事に記載されている会社名、商品名などは一般に各社の商標または登録商標です。なお、本文中には、™、®を明記しておりません。

  • クラウドアプリケーションは、成長が著しいため、機能更新も早いです。至らない箇所もあると思いますが、お気付きの点がありましたらお問い合わせ下さい。

クラウドアプリケーショントレンド(参考)

Stack Overflow Insights - Stack Overflow Trends

f:id:logicalarts:20210602204449p:plain
Stack Overflow Trends(2009-2021)

Yahoo Finance - Salesforce.com Inc (CRM) Interactive Stock Chart

f:id:logicalarts:20210602204418p:plain
Yahoo Finance Chart(2009-2021)

よろしくお願い致します。