【问题标题】:Deep Linking Issues深度链接问题
【发布时间】:2025-05-31 12:20:04
【问题描述】:

我正在尝试访问应用程序中文档的链接。当我单击链接时,我会被引导通过 SAML(Ping Federate)进行身份验证。一旦我登录到应用程序,链接就会丢失,它会将我带到应用程序的主页。有谁知道我需要如何配置 SAML 以在我进行身份验证后记住链接。我的印象是它与 Deep Linking 和/或 RelayState 有关。我在应用程序中打开了深度链接,我的中继状态变量是“RelayState”。任何帮助,将不胜感激。谢谢!

【问题讨论】:

  • 关于您的应用程序的信息非常少,这很可能是问题所在(或指向它的路标)。
  • Jeffrey Hantin 是正确的 - 我们缺少关键信息。通常,使用 PingFed(和 SAML2)进行“深度链接”的方式是您尝试在服务提供商 (SP) 处访问文档。 SP 应用程序识别出您没有验证您的访问权限所需的东西,将您重定向到联邦的 SP 端,它将“引荐来源”存储为 TargetResource。然后,它使用该 TargetResource 的不透明 ID 重定向到身份提供者 (IdP)。 IdP 对您进行身份验证,使用不透明 ID 的 TargetResource 将您重定向回 SP,然后将您发送到您的应用程序。

标签: saml-2.0 deep-linking pingfederate


【解决方案1】:

@andy-k-ping-identity 在他的评论中是正确的。当您的深度链接到的应用程序确定它没有会话时,它需要重定向到 PingFederate SP 的起始 SSO 端点,其中深度链接页面作为 TargetResource。在所有 SSO 完成后,PingFederate 将导致用户被重定向到该页面。因此,例如,如果用户没有会话,深度链接的应用程序应该返回这样的 302:

HTTP/1.1 302 Found
Location: https://fs.sp.com:9031/sp/startSSO.ping?TargetResource=https://sp.com/deep-link&...

HTH!

【讨论】: