我是服务提供商。此外,还要感谢这个开源 C# 组件 (AspNetSaml),它们让生活变得更轻松:https://github.com/jitbit/AspNetSaml
无论如何,当我向 IdP(在本例中为 SalesForce)发送请求时,我提供了一个 ACS URL,我可以看到它是在我的 xml 中设置的:
xw.WriteAttributeString("ProtocolBinding", "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST");
xw.WriteAttributeString("AssertionConsumerServiceURL", _assertionConsumerServiceUrl);
(_assertionConsumerServiceUrl 是我真正希望它重定向到的,我可以看到它已设置)
但 Salesforce 的情况是,它始终使用我在创建连接的应用程序时需要设置的 ACS URL:
我的真实 ACS URL 值被清空,但该值总是被重定向到。
一定有办法的。想象一下,如果不是设置 http://www.foo.com/ ,你想重定向到:http://www.foo.com/?Some=1&Value=2&You=3&Want=4&ToAdd=5 ...这些值可能因用户而异。
这必须是可能的!谢谢!
最佳答案
我等了一个多星期,以免看起来我只是在回答自己的问题只是为了获得代表点数。
无论如何,正如我在这里发现和确认的那样:https://salesforce.stackexchange.com/questions/210419/saml-sso-how-to-configure-a-dynamic-acs-url-salesforce-is-idp/210496
RelayState 用于在成功登录后将用户定向到他们正在登录的应用程序中的特定位置。
关于salesforce - SAML SSO - 如何配置动态 ACS URL(SalesForce 是 IdP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49120210/