Skip to main content

SAMLアサーションの暗号化

SAMLアサーションとは

SAMLアサーションは、IDプロバイダー(IdP)とサービスプロバイダー(SP)との間でユーザー認証の詳細を伝達するために交換される構造化されたメッセージです。ユーザーの本人確認を安全に行い、関連する属性(名前やEメールなど)を含め、ユーザーの権限や資格を定義します。サービスプロバイダーのAssertion Consumer Service (ACS)エンドポイントは、IdPからSAML応答を受信して検証し、アサーションの信頼性と整合性を確認してから、要求されたリソースへのアクセスをユーザーに許可します。

サービスプロバイダーのAssertion Consumer Service (ACS)は、IdPからSAML応答を受信し、検証します。この検証により、ユーザーから要求されたサービスへのアクセスを許可する前に、アサーションの整合性と信頼性を確認できます。

アサーションの例

SAMLアサーションには、一般的に次の要素が含まれます。

  • 属性: 名、姓、Eメールアドレスなどのユーザーに関する情報です。

  • X509証明書: デジタル署名と暗号化に使用され、アサーションを保護します。

  • 条件: 開始時間や有効期限などのSAML応答の有効期間です。

認証局(CA)署名付きの証明書を使用すると、これらの値が暗号化、署名され、診断ツール(FiddlerやSAML Tracerなど)で機密データが漏洩しないように保護され、追加のセキュリティ層が提供されます。

パブリック/プライベートのキーペアは、次の目的で使用されます。

  • IdP側のアサーションコンテンツを暗号化します。

  • 認証と権限付与を実行するためにAssertion Consumer Service (ACS)によって解析される前に、SP側のアサーションを復号化します。

以下は、すべてのアサーション値を含むAzure SAML応答の一般的な例です。アサーションとユーザー属性を表す強調表示された要素に注目してください。

<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
                ID="_b3056067-2c4e-4986-a339-f3e72f7561f7"
                Version="2.0"
                IssueInstant="2025-05-20T11:19:16.579Z"
                Destination="https://win-8a4sosipqnt.ayx.ayx/webapi/Saml2/Acs"
                InResponseTo="ide3c324bff3394b07b01bb3b05a72ef4f">
    <Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion"><Sign in to your account 
    samlp:Status
        <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
    </samlp:Status>
    <Assertion xmlns="urn:oasis:names:tc:SAML:2.0:assertion"
               ID="_d0455c45-8e67-4251-bcdb-a28a3d980100"
               IssueInstant="2025-05-20T11:19:16.575Z"
               Version="2.0">
        <Issuer><Sign in to your account 
        <Signature xmlns="XML-Signature Syntax and Processing ">
            <SignedInfo>
                <CanonicalizationMethod Algorithm="Exclusive XML Canonicalization Version 1.0 " />
                <SignatureMethod Algorithm="xmldsig-more namespace " />
                <Reference URI="#_d0455c45-8e67-4251-bcdb-a28a3d980100">
                    <Transforms>
                        <Transform Algorithm="XML-Signature Syntax and Processing " />
                        <Transform Algorithm="Exclusive XML Canonicalization Version 1.0 " />
                    </Transforms>
                    <DigestMethod Algorithm="XML Encryption Syntax and Processing " />
                    <DigestValue>nifYJfcwJS9/12BHIQIRTkxYfiacs0VuFCKse3BB8/o=</DigestValue>
                </Reference>
            </SignedInfo>
            <SignatureValue>G91wI5pAmYfDmPgiJXsgHIyZBnZu11g6MM4cBUs/FsI...DA==</SignatureValue>										   
            <KeyInfo>
                <X509Data>
                    <X509Certificate>MIIC8DCCAdigAwIBAgIQd2yxlloAdYxGgD7846TzgTANBgkqhkiG9w0BAQsFAD0MTIwDVQQDEylNaWNyb3NvZnQgQXp1cmUgRmVkZXJhdGVkIFNTTyBDZXJ0aW...</X509Certificate>
                </X509Data>					
            </KeyInfo>
        </Signature>
        <Subject>
            <NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">john.doe@alteryx.com</NameID>
            <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
                <SubjectConfirmationData InResponseTo="ide3c324bff3394b07b01bb3b05a72ef4f"
                                         NotOnOrAfter="2025-05-20T12:19:16.288Z"
                                         Recipient="https://win-8a4sosipqnt.ayx.ayx/webapi/Saml2/Acs"/>
            </SubjectConfirmation>
        </Subject>
        <Conditions NotBefore="2025-05-20T11:14:16.288Z"
                    NotOnOrAfter="2025-05-20T12:19:16.288Z">
            <AudienceRestriction>
                <Audience><https://win-8a4sosipqnt.ayx.ayx/webapi/Saml2</Audience>>
            </AudienceRestriction>
        </Conditions>
        <AttributeStatement>
            <Attribute Name="http://schemas.microsoft.com/identity/claims/tenantid">
                <AttributeValue>30f6e3b6-e2ba-458d-bc44-60528bee0bd0</AttributeValue>
            </Attribute>
            <Attribute Name="http://schemas.microsoft.com/identity/claims/objectidentifier">
                <AttributeValue>b64ff4ee-5aef-43be-b767-34a5916d8c03</AttributeValue>
            </Attribute>
            <Attribute Name="http://schemas.microsoft.com/identity/claims/identityprovider">
                <AttributeValue><Sign in to your account </AttributeValue>
            </Attribute>
            <Attribute Name="http://schemas.microsoft.com/claims/authnmethodsreferences">
                <AttributeValue><http://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/password</AttributeValue>>
            </Attribute>
            <Attribute Name="firstName">
                <AttributeValue>John</AttributeValue>
            </Attribute>
            <Attribute Name="lastName">
                <AttributeValue>Doe</AttributeValue>
            </Attribute>
            <Attribute Name="email">
                <AttributeValue>john.doe@alteryx.com</AttributeValue>
            </Attribute>
        </AttributeStatement>
        <AuthnStatement AuthnInstant="2025-05-20T11:15:44.607Z"
                        SessionIndex="_d0455c45-8e67-4251-bcdb-a28a3d980100">
            <AuthnContext>
                <AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password</AuthnContextClassRef>
            </AuthnContext>
        </AuthnStatement>
    </Assertion>
</samlp:Response>

次の例は、暗号化が適用されたときにSAML応答の構造がどのように変化するかを示しています。

<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
                ID="_1d0164cc-d888-4bbe-a592-9691d593ef51"
                Version="2.0"
                IssueInstant="2025-05-20T11:46:54.689Z"
                Destination="https://win-8a4sosipqnt.ayx.ayx/webapi/Saml2/Acs"
                InResponseTo="id0f8b097a777c4000b671df3a24735c2b">
    <Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion"><Sign in to your account 
    samlp:Status
        <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
    </samlp:Status>
    <EncryptedAssertion xmlns="urn:oasis:names:tc:SAML:2.0:assertion">
        <xenc:EncryptedData xmlns:xenc="XML Encryption Syntax and Processing "
                            Type="XML Encryption Syntax and Processing ">
            <xenc:EncryptionMethod Algorithm="<XML Encryption Syntax and Processing >" />
            <KeyInfo xmlns="<XML-Signature Syntax and Processing >">
                <e:EncryptedKey xmlns:e="<<XML Encryption Syntax and Processing >>">
                    <e:EncryptionMethod Algorithm="<<XML Encryption Syntax and Processing >>">
                        <DigestMethod Algorithm="<<<XML-Signature Syntax and Processing >>>" />
                    </e:EncryptionMethod>
                    <KeyInfo>
                        <o:SecurityTokenReference xmlns:o="<<<http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd>>>">
                            <X509Data>
                                <X509IssuerSerial>
                                    <X509IssuerName>E=john.doe@alteryx.com, CN=WIN-8A4SOSIPQNT.ayx.ayx, OU=Alteryx, O=Alteryx, L=London, S=uk, C=UK</X509IssuerName>
                                    <X509SerialNumber>705589322655184988706920421358426712185360904869</X509SerialNumber>
                                </X509IssuerSerial>
                            </X509Data>
                        </o:SecurityTokenReference>
                    </KeyInfo>
                    <e:CipherData>
                        <e:CipherValue>LjVyAs89Cw+beqHwM3FxpReIw2cJNIhtBDw0td80Bms8LzzJkW3fc9jg7EQXzfnY0zDOxqpQ6kqxWDV12ypE6v8QnuE0XBaoteQ5XUJfhVAZHlOVRUYdgBVQE10V9uWS+l08lekKVsE8VxGjcSHv8tHiYBiL/EPY2zGSsN9Z8TjHdgLX3uwc0yS1ALAPNK0anvw2yTAvqGEiGrzEy+hvJnxcLHG2paDVJKS5vg7sq1559Tys3oOJOTFSbQNPsHLgXuR/17jcYjT/o8JUcMi8sbjTI/+qs78s6Qar+vVpamHaK15X7Tzq+oegYllJnnxEMeLsEP/7yvcLg0si/D3Z9A==</e:CipherValue>
                    </e:CipherData>
                </e:EncryptedKey>
            </KeyInfo>
            xenc:CipherData
                xenc:CipherValue7ZEiVBzl8oJG65n5v+13NgxYEGcA6h9mXN3trIfYaabWhdEMA3/syn3tHaSIpTwBMK5fJNvdx2A2wDLpimYyL62E5ZUv6TM9M940ZZhVNxoJMw4jq44Gi2FFP31m6eGx7VdvnNUEkS4KqUXUfEpJ0xU4FvacNL0xjqHHyzymZKDEE2HOx7HfumXyBrTDCvhNS4LsuyvGfWzI347VFfYY5AeQoecjl7iz86yYQEJy1v4hkKQM8cW7B73XSXtQ==</xenc:CipherValue>
            </xenc:CipherData>
        </xenc:EncryptedData>
    </EncryptedAssertion>
</samlp:Response>

以下は、Okta SAML応答の一般的な例です。

<saml2p:Response xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
                 xmlns:xs="http://www.w3.org/2001/XMLSchema"
                 Destination="https://pod-7257817.ayxayx.com/webapi/Saml2/acs"
                 ID="id50965160074357029521100546197"
                 InResponseTo="idc87287cb7e35455ebf9489f80841519b"
                 IssueInstant="2025-06-20T09:52:54.867Z"
                 Version="2.0"
                 >
    <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
                  Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity"
                  >http://www.okta.com/trk2ecrfpfp987hz50h8</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/2001/04/xmldsig-more#rsa-sha256" />
            <ds:Reference URI="#id50965160074357029521100546197">
                <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/2001/04/xmlenc#sha256" />
                <ds:DigestValue>BMc14bBldK4P1iAqLtP56Bot7P0E2S0VHup3HzrtsYM=</ds:DigestValue>
            </ds:Reference>
        </ds:SignedInfo>
        <ds:SignatureValue>Fy0VgnTxgCEen8Sg492m6DRC...FYg==</ds:SignatureValue>
        <ds:KeyInfo>
            <ds:X509Data>
                <ds:X509Certificate>MIIDpDCCAoygAwIBAgIGAZbqA94nMA0GCSqGSIb3DQEBCwUAMIGSMQswCQYDVQQGEwJVUzETMBEG
A1UECAwKQ...</ds:X509Certificate>
            </ds:X509Data>
        </ds:KeyInfo>
    </ds:Signature>
    <saml2p:Status xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol">
        <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"
                     xmlns:xs="http://www.w3.org/2001/XMLSchema"
                     ID="id44750929955808200281100824502"
                     IssueInstant="2025-06-20T09:52:54.867Z"
                     Version="2.0"
                     >
        <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
                      Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity"
                      >http://www.okta.com/exk2ecrfpfpXRPhz50h8</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/2001/04/xmldsig-more#rsa-sha256" />
                <ds:Reference URI="#id44750929955808200281100824502">
                    <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/2001/04/xmlenc#sha256" />
                    <ds:DigestValue>nGexU5jGle1QoI05VtK5166L/+MGOStNLYvzE6+DDOQ=</ds:DigestValue>
                </ds:Reference>
            </ds:SignedInfo>
            <ds:SignatureValue>s1edTWDthoPsd3GW40sYg/q5fekNt+O...Ag==</ds:SignatureValue>
            <ds:KeyInfo>
                <ds:X509Data>
                    <ds:X509Certificate>MIIDpDCCAoygAwAgIGAZbqA94nMA0GCSqGSIb3DQEBAMIGSMQswCQYDVQQGEwJVUzETMBEG
AUECAwKQ...</ds:X509Certificate>
                </ds:X509Data>
            </ds:KeyInfo>
        </ds:Signature>
        <saml2:Subject xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">
            <saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">john.doe@alteryx.com</saml2:NameID>
            <saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
                <saml2:SubjectConfirmationData InResponseTo="idc87287cb7e35455ebf9489f80841519b"
                                               NotOnOrAfter="2025-06-20T09:57:54.867Z"
                                               Recipient="https://pod-7257817.ayxayx.com/webapi/Saml2/acs"
                                               />
            </saml2:SubjectConfirmation>
        </saml2:Subject>
        <saml2:Conditions xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
                          NotBefore="2025-06-20T09:47:54.867Z"
                          NotOnOrAfter="2025-06-20T09:57:54.867Z"
                          >
            <saml2:AudienceRestriction>
                <saml2:Audience>https://pod-7257817.ayxayx.com/webapi/Saml2</saml2:Audience>
            </saml2:AudienceRestriction>
        </saml2:Conditions>
        <saml2:AuthnStatement xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
                              AuthnInstant="2025-06-20T09:36:02.556Z"
                              SessionIndex="idc87287cb7e35455ebf9489f80841519b"
                              >
            <saml2:AuthnContext>
                <saml2:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml2:AuthnContextClassRef>
            </saml2:AuthnContext>
        </saml2:AuthnStatement>
        <saml2:AttributeStatement xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">
            <saml2:Attribute Name="email"
                             NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"
                             >
                <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
                                      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                      xsi:type="xs:string"
                                      >john.doe@alteryx.com</saml2:AttributeValue>
            </saml2:Attribute>
            <saml2:Attribute Name="firstName"
                             NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"
                             >
                <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
                                      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                      xsi:type="xs:string"
                                      >John</saml2:AttributeValue>
            </saml2:Attribute>
            <saml2:Attribute Name="lastName"
                             NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"
                             >
                <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
                                      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                      xsi:type="xs:string"
                                      >Doe</saml2:AttributeValue>
            </saml2:Attribute>
        </saml2:AttributeStatement>
    </saml2:Assertion>
</saml2p:Response>

次の例は、暗号化が適用されたときにSAML応答の構造がどのように変化するかを示しています。

https://pod-7257817.ayxayx.com/gallery/api/apps/packages/?location=myFiles&offset=0&limit=10&search=&sortField=WorkflowName&direction=asc&packageType=&engineType=&v=1750412946383
<saml2p:Response xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
                 Destination="https://pod-7257817.ayxayx.com/webapi/Saml2/acs"
                 ID="id-9097293882340198061719617948"
                 InResponseTo="idc2aa4cac47b94800ac3c828ebe932b6e"
                 IssueInstant="2025-06-20T09:48:57.609Z"
                 Version="2.0"
                 >
    <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
                  Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity"
                  >http://www.okta.com/trk2ecrfpff33RPhz50h8</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/2001/04/xmldsig-more#rsa-sha256" />
            <ds:Reference URI="#id-9097293882340198061719617948">
                <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#" />
                </ds:Transforms>
                <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
                <ds:DigestValue>NPm+7AusftaL5NkgOiqZLM2zD6WttP+chxxcJsTjdAU=</ds:DigestValue>
            </ds:Reference>
        </ds:SignedInfo>
        <ds:SignatureValue>vPn1UPpRFAFV1x/f0J1KHQCrf1hT08CO5mCbC...h7w==</ds:SignatureValue>
        <ds:KeyInfo>
            <ds:X509Data>
                <ds:X509Certificate>MIIDpDCCAoygAwIBAgIGAZbqA94nMA0GCSqGSIb3DQEBCwUAMIGSMQswCQYDVQQGEwJVUzETMBEG
A1UECAwKQ2FsaWZvcm5...</ds:X509Certificate>
            </ds:X509Data>
        </ds:KeyInfo>
    </ds:Signature>
    <saml2p:Status xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol">
        <saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
    </saml2p:Status>
    <saml2:EncryptedAssertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">
        <xenc:EncryptedData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
                            Id="_3baec3e9550a5a64750429fa91b8c573"
                            Type="http://www.w3.org/2001/04/xmlenc#Element"
                            >
            <xenc:EncryptionMethod xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
                                   Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"
                                   />
            <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
                <ds:RetrievalMethod Type="http://www.w3.org/2001/04/xmlenc#EncryptedKey"
                                    URI="#_e1e7d46469c3dd081df5dfd8b6533708"
                                    />
            </ds:KeyInfo>
            <xenc:CipherData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
                <xenc:CipherValue>CDruFnE+82tzQjgeNrYwDNQsio8/mH/1ASiZlOpRbxe25ZWTZaJ7ieVOgmf4lrdy1gmLo9DP2kvTOfQNxX79FoJo6c1TAHIuiqGNuHOIK5PQry...z67cng=</xenc:CipherValue>
            </xenc:CipherData>
        </xenc:EncryptedData>
        <xenc:EncryptedKey xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
                           Id="_e1e7d46469c3dd081df5dfd8b6533708"
                           >
            <xenc:EncryptionMethod xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
                                   Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"
                                   >
                <ds:DigestMethod xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
                                 Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"
                                 />
            </xenc:EncryptionMethod>
            <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
                <ds:X509Data>
                    <ds:X509Certificate>MIIEYzCCA0ugAwIBAgIUeM2hjmWesJsjW7w9cBgchlyAfDcwDQYJKoZIhvcNAQELBQAwgaQxCzAJ
BgNVBAYTAnVrMQswCQYDVQQIDAJ1azE...</ds:X509Certificate>
                </ds:X509Data>
            </ds:KeyInfo>
            <xenc:CipherData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
                <xenc:CipherValue>TsauMNORZBMHoAt5PxQVfK6d6hc+WLrvxWvzzhVWhJWvKjwWFMYXMJpe1B9VkSD0pnHZ4d7xK2rGQHTqIXhBPOK6lhLbWhtHQ0nLONiIR2/TgaxIA6RGlxBs65jt3B/6J8o4dPWdr9dx5On/HZ/l8LQz7mv0tmlnTb7KnNucDurEb2RlNeTWDTBR77YZzZTav9nyUexyXW/cN1TTQJNcfPTJrwq0zyG/Cwryg3NDJiAdEBnS2ubc8p3xuvEYRK8G/wJz7Xe2NfmzHZeKk8EEIDK/O2DXwil6fnSRHCDCiDb9tYDdYhZAVUbRYPjU15MO/GbmNm8CG2O+o1Uh3GPEXQ==</xenc:CipherValue>
            </xenc:CipherData>
            <xenc:ReferenceList>
                <xenc:DataReference URI="#_3baec3e9550a5a64750429fa91b8c573" />
            </xenc:ReferenceList>
        </xenc:EncryptedKey>
    </saml2:EncryptedAssertion>
</saml2p:Response>

Azureで暗号化されたアサーションのSAMLトークンの暗号化を設定する

注記

このセクションでは、次の前提条件がすでに整っていることを前提としています。

  • 基本的なSAML設定が、AzureとAlteryxのシステム設定の両方で完了している。

  • 有効な認証局(CA)によって発行された、プライベートキーを含む事前設定された証明書が利用できる。

Azureで暗号化されたアサーションのSAMLトークン暗号化を設定するには、次の手順に従います。

  1. Azure Portalにサインインします。

  2. [Microsoft Entra ID] > [Enterprise application](エンタープライズアプリケーション)に移動します。

  3. SAMLアプリケーションを検索して選択します。

  4. [Token Encryption](トークンの暗号化)を選択します。

  5. 証明書をインポートするには、[Import Certificate](証明書のインポート)を選択します。次に、公開証明書(CRT)ファイルをAzureにアップロードします。

  6. アップロード後、証明書の横にある三点リーダーメニュー(⋮)を選択し、[Activate token encryption certificate]を選択します。

  7. 関連付けられたプライベートキーが、Alteryx ServerのWindows証明書ストアにインストールされていることを確認します。また、証明書チェーンと依存関係がマシン上で正しく配置されていることも確認します。

  8. ServerでAlteryxシステム設定を開きます。

  9. [Server UI] > [Authentication] (認証)の順に移動します。

  10. 暗号化を有効にするには、[Encrypt Assertions] (アサーションの暗号化)を選択します。

  11. [Decryption Certificate Hash] (復号化証明書ハッシュ)フィールドに、インストールされている証明書のプライベートキーのサムプリントを入力します。

  12. セットアップを完了するには、残りのプロンプトを確認しながら[Next] (次へ)を選択し、[Finish] (完了)を選択します。

  13. 成功すると、AlteryxServiceが自動的に再起動します。SAML認証がトリガーされると、SAMLアサーションと属性がSAMLトレースツールで暗号化されて表示されます。

Oktaで暗号化されたアサーションのSAMLトークンの暗号化を設定する

注記

このセクションでは、次の前提条件がすでに整っていることを前提としています。

  • 基本的なSAML設定が、OktaとAlteryxのシステム設定の両方で完了している。

  • 有効な認証局(CA)によって発行された、プライベートキーを含む事前設定された証明書が利用できる。

Oktaで暗号化されたアサーションのSAMLトークンの暗号化を設定するには、次の手順に従います。

  1. Okta Portalにサインインします。

  2. 左側のナビゲーションペインで、[Applications](アプリケーション)を選択します。

  3. 検索バーを使用して、SAMLアプリケーションを検索して選択します。

  4. [General](一般)を選択します。[SAML Settings](SAML設定)で[Edit](編集)を選択します。[Next](次へ)を選択して続行します。

  5. SAML設定で、[Show Advanced Settings](詳細設定を表示)を選択します。

  6. [Assertion Encryption](アサーション暗号化)で、ドロップダウンを[Encrypted](暗号化)に設定します。既定のアルゴリズムはオンにしたままにします。

  7. [Encryption Certificate](暗号化証明書)で、[Browse](参照)を選択し、公開証明書(CRT)ファイルをアップロードします。

  8. 設定を完了するには、[Next](次へ)、[Finish](終了)の順に選択します。

  9. 関連付けられたプライベートキーが、Alteryx ServerのWindows証明書ストアにインストールされていることを確認します。また、証明書チェーンと依存関係がマシン上で正しく配置されていることも確認します。

  10. ServerでAlteryxシステム設定を開きます。

  11. [Server UI] > [Authentication] (認証)の順に移動します。

  12. 暗号化を有効にするには、[Encrypt Assertions] (アサーションの暗号化)を選択します。

  13. [Decryption Certificate Hash] (復号化証明書ハッシュ)フィールドに、インストールされている証明書のプライベートキーのサムプリントを入力します。

トラブルシューティング

復号化証明書ハッシュが正しく入力されていない場合はどうなりますか?

Alteryxシステム設定で復号化証明書ハッシュが正しく入力されていない場合:

  • AlteryxServiceを起動できません。

  • SSOログに次のようなエラーが含まれます。

    ERROR,1,AlteryxServerWebApiHost,ssoLogger,ConfigureSamlIdentityProvider,,,,WIN-8A4SOSIPQNT,,,,,,
    Exception thrown when configuring SSO IdP.,
    "System.Exception: Certificate with thumbprint '76634fd5bc020d515fd8218cc7206c9bcb47c91' not found in LocalMachine/Personal store
       at Alteryx.Server.WebApiHost.Services.Impl.Saml2Service.GetX509Certificate2(String certHash)
       at Alteryx.Server.WebApiHost.Services.Impl.Saml2Service.ConfigureSamlIdentityProvider(ILogger ssoLogger, Saml2AuthenticationOptions saml2options)"

PKI証明書がWindows証明書ストアで利用できない場合はどうなりますか?

Windows証明書ストアにプライベートキーインフラストラクチャ(PKI)証明書がない場合、SAML設定を検証するときに以下のような問題がいくつか発生する可能性があります。

  • IDプロバイダー(IdP)を検証しようとすると、次のエラーが発生する場合があります。

    Failed to verify with IDP.Check your settings again.(IdPの検証に失敗しました。設定を再度確認してください。)

  • サインインに成功した後に、ブラウザで次のように返される場合があります。

    Page Not Found
    The page you are trying to reach does not exist
  • 場合によっては、AlteryxServiceの起動に失敗することがあります。

    トラブルシューティングを行うには、SSOログで詳細を確認してください。ログは通常、C:\ProgramData\Alteryx\logsにあります。

    ERROR,1,AlteryxServerWebApiHost,ssoLogger,ConfigureSamlIdentityProvider,,,,WIN-8A4SOSIPQNT,,,,,,
    Exception thrown when configuring SSO IdP.,
    "System.Exception: Certificate with thumbprint '76634fd5bc020d515fd8218cc7206c9bcb47c91' not found in LocalMachine/Personal store
       at Alteryx.Server.WebApiHost.Services.Impl.Saml2Service.GetX509Certificate2(String certHash)
       at Alteryx.Server.WebApiHost.Services.Impl.Saml2Service.ConfigureSamlIdentityProvider(ILogger ssoLogger, Saml2AuthenticationOptions saml2options)"

「アサーションの暗号化」がIdPで有効になっていても、Alteryxでは有効になっていない場合はどうなりますか?

IDプロバイダー(IdP)でSAMLアサーションを暗号化するように設定されていても、Alteryxシステム設定で[Encrypt Assertions] (アサーションの暗号化)が有効になっていない場合、アサーションは公開キーで暗号化されているため、Alteryxはアサーションを検証できません。

発生する可能性のあるエラーメッセージ:

  • Failed to verify with IDP.Check your settings again.(IdPの検証に失敗しました。設定を再度確認してください。)

  • Page Not Found
    The page you are trying to reach does not exist

既知の問題

Alteryxシステム設定ウィンドウのサイズを変更すると、UIの見た目に不具合が発生します。

TCPE-1590 (GCSE-3302): Alteryxシステム設定ウィンドウのサイズを変更すると、SSL/TLS証明書ハッシュと復号化証明書ハッシュが重なって表示される。