0

我目前坚持使用 SAML 2.0 在 RightNow 中实现 SSO。从我在 RightNow 文档中阅读的内容来看,它支持 SAML 2.0,但有一些警告,例如发送带有 SAML 响应的签名证书,并且不支持将元数据导入 RightNow . 我正在将 RightNow 与 Oracle Identity Federation (11.1.1.6) 集成,并且对前进的道路有些困惑。理想情况下,在为 SSO 集成应用程序时,我们拥有有助于设置服务提供者的元数据(理想情况下,这是需要 SSO 服务的应用程序)。但是在没有提供者元数据的情况下,我无法弄清楚如何将 RightNow 应用程序设置为服务提供者!RightNow 有没有办法生成和下载元数据!?如果不,如何去配置它?你有什么例子可以告诉我那个展示怎么做的吗?

感谢您的时间和精力,伙计们。先感谢您。

@Andy - 元数据文件

<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" entityID="https://myorg--test.custhelp.com/fed/sp" validUntil="2023-05-07T16:44:40.193Z">
    <ds:Signature></ds:Signature>
    <md:SPSSODescriptor WantAssertionsSigned="false" AuthnRequestsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
        <md:KeyDescriptor use="signing">
            <ds:KeyInfo>
                <ds:X509Data>
                    <ds:X509Certificate>X509_CERTIFICATE</ds:X509Certificate>
                    <ds:X509IssuerSerial>
                        <ds:X509IssuerName>
                            X509_ISSUER_NAME</ds:X509IssuerName>
                        <ds:X509SerialNumber>X509_SERIAL_NUMBER</ds:X509SerialNumber>
                    </ds:X509IssuerSerial>
                    <ds:X509SubjectName>X509_SUBJECT_NAME</ds:X509SubjectName>
                </ds:X509Data>
            </ds:KeyInfo>
            <md:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
            <md:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
            <md:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc"/>
            <md:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/>
            <md:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
        </md:KeyDescriptor>
        <md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified</md:NameIDFormat>
        <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://myorg--test.custhelp.com/cgi-bin/myorg.cfg/php/admin/sso_launch.php?p_subject=Account.Login" index="0" isDefault="true"/>
            <md:AttributeConsumingService index="0" isDefault="true">
                <md:ServiceName xml:lang="en">https://myorg--test.custhelp.com/cgi-bin/myorg.cfg/php/admin/sso_launch.php</md:ServiceName>
                    <md:RequestedAttribute Name="uid" isRequired="true"/>
            </md:AttributeConsumingService>
    </md:SPSSODescriptor>
    <md:Organization>
        <md:OrganizationName xml:lang="en">My Organization RightNow Customer Experience Site</md:OrganizationName>
        <md:OrganizationDisplayName xml:lang="en">My Organization RightNow Customer Experience</md:OrganizationDisplayName>
        <md:OrganizationURL xml:lang="en">http://www.my-org.com</md:OrganizationURL>
    </md:Organization>
</md:EntityDescriptor>

在 Oracle RightNow 中点击 SSO URL 后,我没有收到回复。我使用 FireFox 的 SAML 跟踪器插件验证了这一点,并且没有返回错误代码。我还使用 %error_code% 和 %session% 变量配置了 SAML_ERROR_URL。X509 证书已上传至 RightNow,并已设置 USE_KNOWN_ROOT_CAS。

我的预感是端点 URL 与它有关。从这里往哪里走?再次感谢您的帮助安迪。

4

1 回答 1

2

RightNow + SAML 很痛苦,无法调试,但可以做到。经过多次试验和错误,我过去已经能够让它与 OIF 一起使用。

应该有一种手动方式在 OIF 中创建服务提供者。RightNow 无法自动生成 OIF 元数据,但这里有一个存根,您可以将其用作起点。您需要为您的特定站点进行一些替换:

<?xml version="1.0" encoding="UTF-8"?><md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" entityID="RightNow-Site" validUntil="2023-05-07T16:44:40.193Z">
   <md:SPSSODescriptor WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
      <md:KeyDescriptor use="signing">
         <ds:KeyInfo>
            <ds:X509Data>
               <ds:X509Certificate>YOUR_PUBLIC_CERT_HERE</ds:X509Certificate>
            </ds:X509Data>
         </ds:KeyInfo>
      </md:KeyDescriptor>
      <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
      <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://my-url.custhelp.com/cgi-bin/my-interface.cfg/php/admin/sso_launch.php?p_subject=Account.Login" index="0" isDefault="true"/>
      <md:AttributeConsumingService index="0" isDefault="true">
         <md:ServiceName xml:lang="en">MY_SERVICE_NAME</md:ServiceName>
         <md:RequestedAttribute Name="mail" isRequired="true"/>
      </md:AttributeConsumingService>
   </md:SPSSODescriptor>
</md:EntityDescriptor>

我之前尝试的其他说明:

  • 您的签名证书上的证书用法似乎很重要。我从来不确定 RN 需要哪些用法,但它似乎确实起到了作用
  • 上面的元数据假设您使用 Login 作为 NamedID。您可以根据 RN 说明进行更改
于 2014-09-12T17:24:47.647 回答