Blogical

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

Salesforceを用いたシングルサインオンについて(3) - SAMLを用いたシングルサインオンのトラブルシューティング方法について

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

SAMLを用いたシングルサインオントラブルシューティング方法についての記事を執筆させて頂きます。

この記事は、SalesforceSAMLシングルサインオンする場合を例に、 トラブルシューティングをする方法を紹介させて頂きます。

ブログ記事の範囲としては、SAMLシングルサインオン時のSAML Responseのエラー確認をするところまでです。 初心者向けに、SAML-tracerを用いたSAML Responseの取得方法から、 SalesforceSAMLアサーションする方法までをご紹介させて頂きます。

この記事では、axiomからSalesforceシングルサインオンを実行する場合を例とします。 axiomからSalesforceシングルサインオンする際のSAML Responseを使用してトラブルシューティングする方法が分かれば目標達成とします。 この記事では、IDプロバイダーをIDP、サービスプロバイダーをSPと表記しています。

はじめに

この記事では、SAMLを用いたシングルサインオンの認証で、SAML Responseを取得する方法をご紹介させて頂きます。また、取得したSAML ResponseをSalesforceを用いてSalesforceSAML アサーション検証する方法について、簡単にご説明させて頂きます。

この記事の目的

対象者

この記事では、他システムのログインIDをSalesforceと連携するシステム基盤の構築などで、 SAMLシングルサインオンでエラーが発生した場合のトラブルシューティング方法する方向け。 あるいはこれから、SalesforceにてSAMLシングルサインオン環境を構築したい初心者向けに、 SAMLシングルサインオントラブルシューティング方法を知って頂くための記事です。

こちらの記事にでは、SAML-tracerを用いたトラブルシューティング方法をご紹介させて頂きます。

目標

SalesforceによるSAMLシングルサインオン環境でのトラブルシューティング方法を理解することを目標とした記事です。また、時間はないが、シングルサインオントラブルシューティング方法だけ画像で分かっておきたいという方も対象としています。

SAML-tracer

SAML-tracerは、シングルサインオンSAML認証を行うIDPとSP間のSAML Responseを取得するブラウザプラグインです。

f:id:logicalarts:20210521172243p:plain
SAML Tracer

プラグインとしては、シンプルなデザインで使い易いです。 2021年5月21日時点で、Google Chrome版のSAML-tracerも出ておりました。

SAML-tracer_Firefox版

SAML-tracer_Chrome版

SAML-tracerは、SAML認証の通信が行われている間、 [SAML]タブを押下することで、SAML Responseが取得できます。 このため、SAMLを用いた認証のトラブルシューティングに使用することができます。

SAML Responseの取得方法

この記事では、axiomの詳細な使用方法は割愛させて頂きます。 axiomの[generate a SAML Response]から、Salesforceシングルサインオンする場合におけるSAML-tracerを用いて、SAML Responseを取得する例を記載致します。

axiom: generate a SAML Response

axiomへの認証情報の設定とSAML-tracerの起動

axiomのaxiomの[generate a SAML Response]ページで、SAML認証を行う用の項目入力します。

今回は、SAML-tracerでトラブルシューティングを行うために、 エラーとなるSAML Responseが必要です。エラーとなる認証情報を入力します。

並行して、ブラウザプラグインの[SAML-Tracer]を開いておいて下さい。 そして、[Request SAML Response]を押下します。

f:id:logicalarts:20210521163808p:plain
(1)

ログインページの表示とSAML-tracerの表示

[Request SAML Response]を押下すると、[SAML HTTP POST Binder]に遷移して、 Salesforceのログインページが表示されます。 並行して、[SAML-Tracer]が起動している場合、画面遷移すると [SAML-Tracer]側に通信内容が記録されてます。このため、画面遷移の際に、 通信が行われていることをキャプチャー出来ていることがわかります。

キャプチャーできていることを確認して、[Login]を押下します。

今回は、トラブルシューティングを行うために、エラーとなる認証情報が入力されています。

f:id:logicalarts:20210521163827p:plain
(2)

SAML-tracerでのSAML Responseの表示確認(送信時点)

画面表示から、axiomからシングルサインオンを行った際に、 Salesforceのログインにて、Single Sign-On Errorが発生していることがわかります。 並行して起動している[SAML-Tracer]には、[SAML]のアイコンが表示されていることがわかります。

f:id:logicalarts:20210521163843p:plain
(3)

SAML-tracerでのSAML Responseの表示確認(レスポンスの確認)

[SAML-Tracer]には、[HTTP]タブでHTTP Responseが表示されているが、 [SAML]タブを押下することで、SAML Responseを表示することができます。

f:id:logicalarts:20210521163904p:plain
(4)

[SAML]タブを押下して、Salesforce宛に送信された[SAML Response]を確認します。 出力されたSAML Responseをコピーして、SAML アサーション検証を用いてトラブルシューティングを行います。

f:id:logicalarts:20210521163921p:plain
(5)

Salesforceを使用したSAML アサーション検証

SAML 検証とSAML Responseの使用箇所

シングルサインオン設定のページを表示して、 Salesforceシングルサインオン設定の[SAML アサーション検証]を押下します。

f:id:logicalarts:20210521163939p:plain
(6)

SAML アサーション検証のSAMLレスポンスの入力項目を確認します。

f:id:logicalarts:20210521163959p:plain
(7)

SAML アサーション検証を用いたトラブルシューティング

まず、[SAML-Tracer]で得られたSAML Responseをコピーします。

f:id:logicalarts:20210521164022p:plain
(8)

コピーしたSAML ResponseをSAML アサーション検証のSAMLレスポンスの入力項目に設定して、[Validate]を押下します。

f:id:logicalarts:20210521164040p:plain
(9)

[Validate]を押下すると、SAML アサーション検証が実行されて、SAMLのエラーとなっている箇所がわかります。 本番環境でのトラブルシューティングや構築案件などで使用してみて下さい。

f:id:logicalarts:20210521164106p:plain
(10)

SAML アサーション検証の結果で出力される項目一覧ですが、以下の通りです。

項目名 正常系の値
結果 前回記録されたSAML ログインの失敗:2021-04-07T10:34:04.831Z
1. 状況を検証しています OK
2. 認証ステートメントを検索しています OK
3. 条件ステートメントを検索しています OK
4. アサーションのタイムスタンプが有効か確認しています 現在の時刻が条件の notOnOrAfter の後になっています
現在の時刻:2021-04-07T10:38:39.611Z
ずれを調整した条件の期限:2021-04-07T10:37:07.693Z
5. 属性の名前空間が入力された場合は、一致するか確認しています 未指定
6. その他の形式の確認 OK
7. 発行者が一致するか確認しています レスポンスの発行者が[シングルサインオン設定]で設定した発行者と一致しませんでした。
アサーションからの発行者: logical2021webapp@gmail.com.axiomsso01.sp
設定の発行者: http://axiomsso.herokuapp.com
アサーションの発行者が[シングルサインオン設定]で設定した発行者と一致しませんでした。
アサーションからの発行者: logical2021webapp@gmail.com.axiomsso01.sp
設定の発行者: http://axiomsso.herokuapp.com
8. 件名確認が入力されたか、および有効なタイムスタンプが含まれているか確認しています OK
9. 利用者が一致するか確認しています 利用者に関する問題
アサーションにある利用者が、許可されている利用者と一致しませんでした。
許可される利用者:https://gmailcomaxiomsso01sp-dev-ed.my.salesforce.com
10. 受信者を確認しています OK
11. 署名を検証しています レスポンスに署名はありますか? true
アサーションに署名はありますか? false
レスポンスの署名の参照は有効です
重要情報に正しい証明書が提供されていますか
署名/証明書の問題
レスポンスの署名は無効です
12. サイトの URL 属性が入力された場合は、サイトの URL 属性に有効なサイト URL が含まれることを確認します 未指定
13. ポータルおよび組織が指定されている場合は、ポータルおよび組織 ID を検索 未指定
14. セッションセキュリティレベルが指定されている場合は、有効かどうかを確認 OK

正常時のSAML アサーション検証結果

SAML 認証が正常に行われている場合のSAML Tracerの表示とSAML アサーション検証についても、結果を載せておきます。

SAML Responseの取得

エラー時とSAML Responseの取得方法は変わりません。 この記事では、SAML-tracerを使用して、SAML Responseを取得します。

f:id:logicalarts:20210521180510p:plain
(11)

SAML アサーション検証

Salesforceにログインして、SAML アサーション検証を行うと、エラーが発生していないことが確認できます。

f:id:logicalarts:20210521180541p:plain
(12)

項目名 正常系の値
1. 状況を検証しています OK
2. 認証ステートメントを検索しています OK
3. 条件ステートメントを検索しています OK
4. アサーションのタイムスタンプが有効か確認しています OK
5. 属性の名前空間が入力された場合は、一致するか確認しています 未指定
6. その他の形式の確認 OK
7. 発行者が一致するか確認しています OK
8. 件名確認が入力されたか、および有効なタイムスタンプが含まれているか確認しています OK
9. 利用者が一致するか確認しています OK
10. 受信者を確認しています OK
11. 署名を検証しています レスポンスに署名はありますか? true
アサーションに署名はありますか? false
レスポンスの署名の参照は有効です
重要情報に正しい証明書が提供されていますか
署名/証明書の問題
レスポンスの署名は無効です
12. サイトの URL 属性が入力された場合は、サイトの URL 属性に有効なサイト URL が含まれることを確認します 未指定
13. ポータルおよび組織が指定されている場合は、ポータルおよび組織 ID を検索 未指定
14. セッションセキュリティレベルが指定されている場合は、有効かどうかを確認 OK

まとめ

以上が、SalesforceSAMLシングルサインオンを行う Salesforceインテグレーションの場合におけるトラブルシューティング方法の一つです。

この記事の範囲であるSAML Responseの取得とSalesforceSAML アサーション検証を使用して トラブルシューティングするところまではできたと言えます。

ブログ記事で紹介させて頂いた方法を用いることで、 Salesforceを用いたSAML認証のシングルサインオンでのトラブルシューティングは、平易に行うことができます。

Salesforceのインテグレーションプロジェクトで、シングルサインオンの認証エラーが発生した場合には、SAML TracerとSalesforceSAML アサーション検証を使用したトラブルシューティングをしてみて下さい。

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

備考

この記事は、著者が独自に調査した結果を、ロジカル・アーツ株式会社のブログにて記事化したものです。記載されている手順やアドレスなどは、予告なく変更される場合もあります。 この記事に記載されている会社名、商品名などは一般に各社の商標または登録商標です。なお、本文中には、™、®を明記しておりません。 クラウドアプリケーションは、成長が著しいため、機能更新も早いです。至らない箇所もあると思いますが、お気付きの点がありましたらお問い合わせ下さい。

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

Stack Overflow Insights - Stack Overflow Trends

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

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

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

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

付録 - SAMLレスポンス値の参考値

SAML 認証環境を構築しなくても、SAML Responseを見てみたい方がいらっしゃるかもしれませんので、SAML Responseを記載しておきます。 シングルサインオントラブルシューティングにてSAML ResponseでGoogle 検索した際に、トラブルシューティングに役立てば幸いです。

SAML Response自体は使用しないかもしれませんが、GUIで差分確認できるDiffツールなどもありますので、 検証で取得したSAML Responseなどと比較してみて下さい。

Diff text documents online with Mergely, an editor and HTML5 javascript library

Mergely - diff files online

Axiom->Salesforce(正常時)

<saml2p:Response xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
                 xmlns:xs="http://www.w3.org/2001/XMLSchema"
                 Destination="https://gmailcomaxiomsso01sp-dev-ed.my.salesforce.com"
                 ID="_75a5cef7-53884a5d"
                 IssueInstant="2021-04-07T11:11:03.162Z"
                 Version="2.0"
                 >
    <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">http://axiomsso.herokuapp.com</saml2:Issuer>
    <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:SignedInfo>
            <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
            <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" />
            <ds:Reference URI="#_75a5cef7-53884a5d">
                <ds:Transforms>
                    <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
                    <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
                        <ec:InclusiveNamespaces xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"
                                                PrefixList="xs"
                                                />
                    </ds:Transform>
                </ds:Transforms>
                <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                <ds:DigestValue>9/DaF14g6oTzHJ6VosSzO2Q/C1A=</ds:DigestValue>
            </ds:Reference>
        </ds:SignedInfo>
        <ds:SignatureValue>KIiYNSlUjIpdxsjWy6S5s2gUpv9a0baaykr8GBMvmwLS7BI8tXz6uQ==</ds:SignatureValue>
        <ds:KeyInfo>
            <ds:X509Data>
                <ds:X509Certificate>MIID0zCCA5GgAwIBAgIEF/uFITALBgcqhkjOOAQDBQAwgboxCzAJBgNVBAYTAlVTMQswCQYDVQQI
EwJDQTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzESMBAGA1UEChMJQXhpb20gU1NPMVEwTwYDVQQL
E0hGT1IgREVNT05TVFJBVElPTiBQVVJQT1NFUyBPTkxZLiBETyBOT1QgVVNFIEZPUiBQUk9EVUNU
SU9OIEVOVklST05NRU5UUy4xHzAdBgNVBAMTFkF4aW9tIERlbW8gQ2VydGlmaWNhdGUwHhcNMTQw
NjIwMDQzMDI3WhcNNDExMTA1MDQzMDI3WjCBujELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYw
FAYDVQQHEw1TYW4gRnJhbmNpc2NvMRIwEAYDVQQKEwlBeGlvbSBTU08xUTBPBgNVBAsTSEZPUiBE
RU1PTlNUUkFUSU9OIFBVUlBPU0VTIE9OTFkuIERPIE5PVCBVU0UgRk9SIFBST0RVQ1RJT04gRU5W
SVJPTk1FTlRTLjEfMB0GA1UEAxMWQXhpb20gRGVtbyBDZXJ0aWZpY2F0ZTCCAbgwggEsBgcqhkjO
OAQBMIIBHwKBgQD9f1OBHXUSKVLfSpwu7OTn9hG3UjzvRADDHj+AtlEmaUVdQCJR+1k9jVj6v8X1
ujD2y5tVbNeBO4AdNG/yZmC3a5lQpaSfn+gEexAiwk+7qdf+t8Yb+DtX58aophUPBPuD9tPFHsMC
NVQTWhaRMvZ1864rYdcq7/IiAxmd0UgBxwIVAJdgUI8VIwvMspK5gqLrhAvwWBz1AoGBAPfhoIXW
mz3ey7yrXDa4V7l5lK+7+jrqgvlXTAs9B4JnUVlXjrrUWU/mcQcQgYC0SRZxI+hMKBYTt88JMozI
puE8FnqLVHyNKOCjrh4rs6Z1kW6jfwv6ITVi8ftiegEkO8yk8b6oUZCJqIPf4VrlnwaSi2ZegHtV
JWQBTDv+z0kqA4GFAAKBgQCXr1mp4UvByY6dGbDOyq3wMs6O7MCxmEkU2x32AkEp6s7Xfiy3MYwK
wZQ4sL4BmQYzZ7QOXPP8dKgrKDQKLk9tXWOgvIoOCiNAdQDYlRm2sYgrI2SUcyM1bKDqLwDD8Z5O
oLeuQAtgMfAq/f1C6nREWrQudPxOwaoNdHkYcR+066MhMB8wHQYDVR0OBBYEFE2JAc97wfHK5b42
nKbANn4SMcqcMAsGByqGSM44BAMFAAMvADAsAhR+Cjvp8UwNgKHfx2PWJoRi0/1q8AIUNhTXWlGz
J3SdBlgRsdFgKyFtcxE=</ds:X509Certificate>
            </ds:X509Data>
        </ds:KeyInfo>
    </ds:Signature>
    <saml2p:Status>
        <saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
    </saml2p:Status>
    <saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
                     ID="_2b2caa7b-2b904402"
                     IssueInstant="2021-04-07T11:11:03.161Z"
                     Version="2.0"
                     >
        <saml2:Issuer>http://axiomsso.herokuapp.com</saml2:Issuer>
        <saml2:Subject>
            <saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">logical2021webapp@gmail.com.axiomsso01.sp</saml2:NameID>
            <saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
                <saml2:SubjectConfirmationData NotOnOrAfter="2021-04-07T11:12:03.161Z"
                                               Recipient="https://gmailcomaxiomsso01sp-dev-ed.my.salesforce.com"
                                               />
            </saml2:SubjectConfirmation>
        </saml2:Subject>
        <saml2:Conditions NotBefore="2021-04-07T11:11:03.161Z"
                          NotOnOrAfter="2021-04-07T11:12:03.161Z"
                          >
            <saml2:AudienceRestriction>
                <saml2:Audience>https://gmailcomaxiomsso01sp-dev-ed.my.salesforce.com/</saml2:Audience>
            </saml2:AudienceRestriction>
        </saml2:Conditions>
        <saml2:AuthnStatement AuthnInstant="2021-04-07T11:11:03.161Z">
            <saml2:AuthnContext>
                <saml2:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified</saml2:AuthnContextClassRef>
            </saml2:AuthnContext>
        </saml2:AuthnStatement>
        <saml2:AttributeStatement>
            <saml2:Attribute Name="ssoStartPage"
                             NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"
                             >
                <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                      xsi:type="xs:string"
                                      >http://axiomsso.herokuapp.com/RequestSamlResponse.action</saml2:AttributeValue>
            </saml2:Attribute>
            <saml2:Attribute Name="logoutURL"
                             NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"
                             >
                <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                      xsi:type="xs:string"
                                      />
            </saml2:Attribute>
        </saml2:AttributeStatement>
    </saml2:Assertion>
</saml2p:Response>

Axiom->Salesforce(エラー発生時)

<saml2p:Response xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
                 xmlns:xs="http://www.w3.org/2001/XMLSchema"
                 Destination="https://ssoerror01sp-dev-ed.my.salesforce.com"
                 ID="_275d88c1-57940ef6"
                 IssueInstant="2021-05-21T09:16:49.876Z"
                 Version="2.0"
                 >
    <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">http://axiomsso.herokuapp.com</saml2:Issuer>
    <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:SignedInfo>
            <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
            <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" />
            <ds:Reference URI="#_275d88c1-57940ef6">
                <ds:Transforms>
                    <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
                    <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
                        <ec:InclusiveNamespaces xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"
                                                PrefixList="xs"
                                                />
                    </ds:Transform>
                </ds:Transforms>
                <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                <ds:DigestValue>i/p2Zh2U92QrsiRnOHa5fSdx0QM=</ds:DigestValue>
            </ds:Reference>
        </ds:SignedInfo>
        <ds:SignatureValue>gK5SmlHeLJk7Oi+qc3KgLCHlMUsaZRMprn/OXAGnuKFjwSGiZzj/6w==</ds:SignatureValue>
        <ds:KeyInfo>
            <ds:X509Data>
                <ds:X509Certificate>MIID0zCCA5GgAwIBAgIEF/uFITALBgcqhkjOOAQDBQAwgboxCzAJBgNVBAYTAlVTMQswCQYDVQQI
EwJDQTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzESMBAGA1UEChMJQXhpb20gU1NPMVEwTwYDVQQL
E0hGT1IgREVNT05TVFJBVElPTiBQVVJQT1NFUyBPTkxZLiBETyBOT1QgVVNFIEZPUiBQUk9EVUNU
SU9OIEVOVklST05NRU5UUy4xHzAdBgNVBAMTFkF4aW9tIERlbW8gQ2VydGlmaWNhdGUwHhcNMTQw
NjIwMDQzMDI3WhcNNDExMTA1MDQzMDI3WjCBujELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYw
FAYDVQQHEw1TYW4gRnJhbmNpc2NvMRIwEAYDVQQKEwlBeGlvbSBTU08xUTBPBgNVBAsTSEZPUiBE
RU1PTlNUUkFUSU9OIFBVUlBPU0VTIE9OTFkuIERPIE5PVCBVU0UgRk9SIFBST0RVQ1RJT04gRU5W
SVJPTk1FTlRTLjEfMB0GA1UEAxMWQXhpb20gRGVtbyBDZXJ0aWZpY2F0ZTCCAbgwggEsBgcqhkjO
OAQBMIIBHwKBgQD9f1OBHXUSKVLfSpwu7OTn9hG3UjzvRADDHj+AtlEmaUVdQCJR+1k9jVj6v8X1
ujD2y5tVbNeBO4AdNG/yZmC3a5lQpaSfn+gEexAiwk+7qdf+t8Yb+DtX58aophUPBPuD9tPFHsMC
NVQTWhaRMvZ1864rYdcq7/IiAxmd0UgBxwIVAJdgUI8VIwvMspK5gqLrhAvwWBz1AoGBAPfhoIXW
mz3ey7yrXDa4V7l5lK+7+jrqgvlXTAs9B4JnUVlXjrrUWU/mcQcQgYC0SRZxI+hMKBYTt88JMozI
puE8FnqLVHyNKOCjrh4rs6Z1kW6jfwv6ITVi8ftiegEkO8yk8b6oUZCJqIPf4VrlnwaSi2ZegHtV
JWQBTDv+z0kqA4GFAAKBgQCXr1mp4UvByY6dGbDOyq3wMs6O7MCxmEkU2x32AkEp6s7Xfiy3MYwK
wZQ4sL4BmQYzZ7QOXPP8dKgrKDQKLk9tXWOgvIoOCiNAdQDYlRm2sYgrI2SUcyM1bKDqLwDD8Z5O
oLeuQAtgMfAq/f1C6nREWrQudPxOwaoNdHkYcR+066MhMB8wHQYDVR0OBBYEFE2JAc97wfHK5b42
nKbANn4SMcqcMAsGByqGSM44BAMFAAMvADAsAhR+Cjvp8UwNgKHfx2PWJoRi0/1q8AIUNhTXWlGz
J3SdBlgRsdFgKyFtcxE=</ds:X509Certificate>
            </ds:X509Data>
        </ds:KeyInfo>
    </ds:Signature>
    <saml2p:Status>
        <saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
    </saml2p:Status>
    <saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
                     ID="_4e469802-76209e68"
                     IssueInstant="2021-05-21T09:16:49.876Z"
                     Version="2.0"
                     >
        <saml2:Issuer>http://axiomsso.herokuapp.com</saml2:Issuer>
        <saml2:Subject>
            <saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">logical2021webapp@gmail.com.axiomsso01.sp</saml2:NameID>
            <saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
                <saml2:SubjectConfirmationData NotOnOrAfter="2021-05-21T09:17:49.876Z"
                                               Recipient="https://ssoerror01sp-dev-ed.my.salesforce.com"
                                               />
            </saml2:SubjectConfirmation>
        </saml2:Subject>
        <saml2:Conditions NotBefore="2021-05-21T09:16:49.875Z"
                          NotOnOrAfter="2021-05-21T09:17:49.875Z"
                          >
            <saml2:AudienceRestriction>
                <saml2:Audience>https://gmailcomaxiomsso01sp-dev-ed.my.salesforce.com/</saml2:Audience>
            </saml2:AudienceRestriction>
        </saml2:Conditions>
        <saml2:AuthnStatement AuthnInstant="2021-05-21T09:16:49.875Z">
            <saml2:AuthnContext>
                <saml2:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified</saml2:AuthnContextClassRef>
            </saml2:AuthnContext>
        </saml2:AuthnStatement>
        <saml2:AttributeStatement>
            <saml2:Attribute Name="ssoStartPage"
                             NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"
                             >
                <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                      xsi:type="xs:string"
                                      >http://axiomsso.herokuapp.com/RequestSamlResponse.action</saml2:AttributeValue>
            </saml2:Attribute>
            <saml2:Attribute Name="logoutURL"
                             NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"
                             >
                <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                      xsi:type="xs:string"
                                      />
            </saml2:Attribute>
        </saml2:AttributeStatement>
    </saml2:Assertion>
</saml2p:Response>

Salesforce->Salesforce(正常時)

<saml2p:Response xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
                 xmlns:xs="http://www.w3.org/2001/XMLSchema"
                 Destination="https://gmailcomaxiomsso01sp-dev-ed.my.salesforce.com"
                 ID="_75a5cef7-53884a5d"
                 IssueInstant="2021-04-07T11:11:03.162Z"
                 Version="2.0"
                 >
    <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">http://axiomsso.herokuapp.com</saml2:Issuer>
    <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:SignedInfo>
            <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
            <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" />
            <ds:Reference URI="#_75a5cef7-53884a5d">
                <ds:Transforms>
                    <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
                    <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
                        <ec:InclusiveNamespaces xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"
                                                PrefixList="xs"
                                                />
                    </ds:Transform>
                </ds:Transforms>
                <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                <ds:DigestValue>9/DaF14g6oTzHJ6VosSzO2Q/C1A=</ds:DigestValue>
            </ds:Reference>
        </ds:SignedInfo>
        <ds:SignatureValue>KIiYNSlUjIpdxsjWy6S5s2gUpv9a0baaykr8GBMvmwLS7BI8tXz6uQ==</ds:SignatureValue>
        <ds:KeyInfo>
            <ds:X509Data>
                <ds:X509Certificate>MIID0zCCA5GgAwIBAgIEF/uFITALBgcqhkjOOAQDBQAwgboxCzAJBgNVBAYTAlVTMQswCQYDVQQI
EwJDQTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzESMBAGA1UEChMJQXhpb20gU1NPMVEwTwYDVQQL
E0hGT1IgREVNT05TVFJBVElPTiBQVVJQT1NFUyBPTkxZLiBETyBOT1QgVVNFIEZPUiBQUk9EVUNU
SU9OIEVOVklST05NRU5UUy4xHzAdBgNVBAMTFkF4aW9tIERlbW8gQ2VydGlmaWNhdGUwHhcNMTQw
NjIwMDQzMDI3WhcNNDExMTA1MDQzMDI3WjCBujELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYw
FAYDVQQHEw1TYW4gRnJhbmNpc2NvMRIwEAYDVQQKEwlBeGlvbSBTU08xUTBPBgNVBAsTSEZPUiBE
RU1PTlNUUkFUSU9OIFBVUlBPU0VTIE9OTFkuIERPIE5PVCBVU0UgRk9SIFBST0RVQ1RJT04gRU5W
SVJPTk1FTlRTLjEfMB0GA1UEAxMWQXhpb20gRGVtbyBDZXJ0aWZpY2F0ZTCCAbgwggEsBgcqhkjO
OAQBMIIBHwKBgQD9f1OBHXUSKVLfSpwu7OTn9hG3UjzvRADDHj+AtlEmaUVdQCJR+1k9jVj6v8X1
ujD2y5tVbNeBO4AdNG/yZmC3a5lQpaSfn+gEexAiwk+7qdf+t8Yb+DtX58aophUPBPuD9tPFHsMC
NVQTWhaRMvZ1864rYdcq7/IiAxmd0UgBxwIVAJdgUI8VIwvMspK5gqLrhAvwWBz1AoGBAPfhoIXW
mz3ey7yrXDa4V7l5lK+7+jrqgvlXTAs9B4JnUVlXjrrUWU/mcQcQgYC0SRZxI+hMKBYTt88JMozI
puE8FnqLVHyNKOCjrh4rs6Z1kW6jfwv6ITVi8ftiegEkO8yk8b6oUZCJqIPf4VrlnwaSi2ZegHtV
JWQBTDv+z0kqA4GFAAKBgQCXr1mp4UvByY6dGbDOyq3wMs6O7MCxmEkU2x32AkEp6s7Xfiy3MYwK
wZQ4sL4BmQYzZ7QOXPP8dKgrKDQKLk9tXWOgvIoOCiNAdQDYlRm2sYgrI2SUcyM1bKDqLwDD8Z5O
oLeuQAtgMfAq/f1C6nREWrQudPxOwaoNdHkYcR+066MhMB8wHQYDVR0OBBYEFE2JAc97wfHK5b42
nKbANn4SMcqcMAsGByqGSM44BAMFAAMvADAsAhR+Cjvp8UwNgKHfx2PWJoRi0/1q8AIUNhTXWlGz
J3SdBlgRsdFgKyFtcxE=</ds:X509Certificate>
            </ds:X509Data>
        </ds:KeyInfo>
    </ds:Signature>
    <saml2p:Status>
        <saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
    </saml2p:Status>
    <saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
                     ID="_2b2caa7b-2b904402"
                     IssueInstant="2021-04-07T11:11:03.161Z"
                     Version="2.0"
                     >
        <saml2:Issuer>http://axiomsso.herokuapp.com</saml2:Issuer>
        <saml2:Subject>
            <saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">logical2021webapp@gmail.com.axiomsso01.sp</saml2:NameID>
            <saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
                <saml2:SubjectConfirmationData NotOnOrAfter="2021-04-07T11:12:03.161Z"
                                               Recipient="https://gmailcomaxiomsso01sp-dev-ed.my.salesforce.com"
                                               />
            </saml2:SubjectConfirmation>
        </saml2:Subject>
        <saml2:Conditions NotBefore="2021-04-07T11:11:03.161Z"
                          NotOnOrAfter="2021-04-07T11:12:03.161Z"
                          >
            <saml2:AudienceRestriction>
                <saml2:Audience>https://gmailcomaxiomsso01sp-dev-ed.my.salesforce.com/</saml2:Audience>
            </saml2:AudienceRestriction>
        </saml2:Conditions>
        <saml2:AuthnStatement AuthnInstant="2021-04-07T11:11:03.161Z">
            <saml2:AuthnContext>
                <saml2:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified</saml2:AuthnContextClassRef>
            </saml2:AuthnContext>
        </saml2:AuthnStatement>
        <saml2:AttributeStatement>
            <saml2:Attribute Name="ssoStartPage"
                             NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"
                             >
                <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                      xsi:type="xs:string"
                                      >http://axiomsso.herokuapp.com/RequestSamlResponse.action</saml2:AttributeValue>
            </saml2:Attribute>
            <saml2:Attribute Name="logoutURL"
                             NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"
                             >
                <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                      xsi:type="xs:string"
                                      />
            </saml2:Attribute>
        </saml2:AttributeStatement>
    </saml2:Assertion>
</saml2p:Response>