【问题标题】:RightNow SSO using SAML 2.0 with OIM/OIFRightNow SSO 使用 SAML 2.0 和 OIM/OIF
【发布时间】:2014-09-08 22:12:23
【问题描述】:

我目前停留在使用 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 与它有关。从这里往哪里走? 再次感谢您的帮助,安迪。

【问题讨论】:

  • 我是唯一一个面临这个问题的人还是这不是正确的论坛?

标签: saml-2.0 rightnow-crm


【解决方案1】:

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 说明更改此设置

【讨论】:

  • 这很有帮助。非常感谢安迪的指导。我很快就会回来。
  • 根据您的输入,我为 RightNow 创建了元数据文件,但我仍然不在那里。请查看我在 RightNow 端对元数据文件内容和配置所做的编辑。
  • 确认,您正在尝试执行代理控制台 SSO,而不是客户门户 SSO。如果是这样,将不会重定向到错误页面。您只会看到一个名为 Access Denied 的页面。此外,您不只是在浏览器中点击 SSO 端点并期望重定向到您的身份提供者,对吗? RN SSO 端点仅接受未经请求的响应(即,您必须立即发布 SAML 令牌)。此外,您已将您的 uid 值填入 RightNow 帐户登录字段?
  • 是的,安迪,我正在尝试为代理控制台而不是客户门户进行 SSO。我没有直接点击 SSO 端点,而是在点击 RightNow URL link 时出现身份提供者的登录屏幕,其中 providerid 的值是 RightNow 元数据中的 EntityID。 UID 也填充在 Account.Login 字段中。我还可以看到我的身份提供者使用 X509 证书创建和发布 SAML 内容,但 RightNow 没有任何反应。我得到的只是浏览器上的“SSO 登录失败”。
  • 好的。这一切听起来都是正确的。还记得我最初说过 RN + SAML 是一种痛苦吗? ;) 接下来要看的是您的证书格式。您使用的扩展类型很重要,具体取决于它是 DER 编码还是 PEM 编码。如果是 PEM,则扩展名必须是 .pem。如果是 DER,则扩展名必须是 .crt。另外,您是否记得使用您的证书指纹在 RN 中设置 SAML_20_SIGN_CERTS 设置?
猜你喜欢
  • 2015-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-03
  • 1970-01-01
相关资源
最近更新 更多