- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在编写一个小工具,使用支持票信息与我们的支持客户一起打开 WebEx。当站点使用用户名/密码时我可以让它工作,现在我们使用 SSO。WebEx 服务器已设置为接受 SSO(由我们的 IT 经理设置 - 而不是我)。
WebEx 引用资料(链接在下面)没有详细说明,官方网站上的 WebEx 开发论坛非常闲置,没有关于该主题的答案,所以我决定在这里试试运气。
posted this same question over the official forum
有人知道如何使下面的代码真正起作用吗?<samlResponse>
中的内容标记并将代码中的以下行替换为可以使其正常工作的内容:
<samlResponse>samlResponse message will go here</samlResponse>
文档(见下文)中的SAML 断言 是什么意思?
WebEx 的 XML-API documentation (第 68 页)描述了以下内容:
3.1 AuthenticateUser
The AuthenticateUser API will accept a SAML assertion in place of a user password. The returned can be used for subsequent XML API requests without using for the session duration as defined in Super Admin. This can take the place of the current requirement for a and for authentication. ...
The following schema diagram shows the element structure of the AuthenticateUser request message.
然后它提供了 XML 架构图和示例。
引用示例 .NET 代码(不使用 SAML)我想出了以下代码:
string strXMLServer = "https://varonis.webex.com/WBXService/XMLService";
WebRequest request = WebRequest.Create(strXMLServer);
// Set the Method property of the request to POST.
request.Method = "POST";
// Set the ContentType property of the WebRequest.
request.ContentType = "application/x-www-form-urlencoded";
// Create POST data and convert it to a byte array.
Func<StringBuilder, StringBuilder> webExXML =
bodySB => new StringBuilder(1024) // Currently 294 bytes in length
.AppendLine("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>")
.Append("<serv:message xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"")
.Append(" xmlns:serv=\"http://www.webex.com/schemas/2002/06/service\"")
.Append(" xsi:schemaLocation=\"http://www.webex.com/schemas/2002/06/service")
.Append(" http://www.webex.com/schemas/2002/06/service/service.xsd\">")
.AppendLine("<header>")
.AppendLine("<securityContext>")
.AppendLine("<siteName>siteName</siteName>")
.AppendLine("<webExID>username</webExID>")
.AppendLine("<password></password>")
.AppendLine("<partnerID></partnerID>")
.AppendLine("</securityContext>")
.AppendLine("</header>")
.AppendLine()
.AppendLine("<body>")
.Append(bodySB)
.AppendLine()
.AppendLine("</body>")
.AppendLine("</serv:message>");
var xmlAuthBodyContent = new StringBuilder()
.AppendLine("<bodyContent ")
.AppendLine("xsi:type=\"java:com.webex.service.binding.user.AuthenticateUser\">")
.AppendLine("<samlResponse>samlResponse message will go here</samlResponse>")
.AppendLine("</bodyContent>");
byte[] byteArray = Encoding.UTF8.GetBytes(webExXML(xmlAuthBodyContent).ToString());
// Set the ContentLength property of the WebRequest.
request.ContentLength = byteArray.Length;
// Get the request stream.
Stream dataStream = request.GetRequestStream();
// Write the data to the request stream.
dataStream.Write(byteArray, 0, byteArray.Length);
// Close the Stream object.
dataStream.Close();
// Get the response.
WebResponse response = request.GetResponse();
DataSet DSResponse = new DataSet();
DSResponse.ReadXml(response.GetResponseStream());
DSResponse.GetXml().Dump();
我得到的结果是:
<serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service">
<serv:header>
<serv:response>
<serv:result>FAILURE</serv:result>
<serv:reason>Authentication Server can't generate a valid session ticket</serv:reason>
<serv:gsbStatus>PRIMARY</serv:gsbStatus>
<serv:exceptionID>030048</serv:exceptionID>
<serv:subErrors>
<serv:subError>
<serv:exceptionID>AS0062</serv:exceptionID>
<serv:reason>Validate assertion failed</serv:reason>
<serv:value />
</serv:subError>
</serv:subErrors>
</serv:response>
</serv:header>
<serv:body>
<serv:bodyContent />
</serv:body>
</serv:message>
最佳答案
我终于得到一个response on the WebEx Forums by one Nathan Morrow ,我在征得他的同意后将内容复制到这里,以防这里有人觉得有用。
答案:
A SAML assertion is an XML style document that is used for SAML based authentication. It includes several values that are necessary for authentication and a digital signature using a previously configured trust certificate. You will need to work with IT to gain access to retrieving SAML assertions from the Identity Management system being used. Once you are able to retrieve the SAML assertion in BASE64 format (it won't look like XML in this format, just a block of characters), you will then place the entire assertion in to the samlResponse element in your authenticateUser request.
然后我询问 WebEx 一键式工具是如何做到的,他回答:
WebEx productivity tools uses custom internal APIs and web browser capability to access your companies authentication portal to confirm authentication. There is a SAML assertion involved behind the scenes. Once you are able to retrieve the assertion for your tool, it will also appear behind the scenes to the end user.
关于c# - 如何通过 SSO (SAML) 使用 WebEx 的 XML-API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14043254/
我有一个客户,他们一直在使用WebOffice(来自WebEx)在其小型组织中执行各种任务。问题在于,他们实际上只需要WebOffice提供的功能的一小部分(联系人列表,数据库和文档存储)。 他们要求
确定 Cisco Webex 客户端是否正在用户计算机上运行的最佳方法是什么?目前,我正在检查这样一个正在运行的进程: public static bool IsWebExClientRunning(
我需要使用 PHP 获取公司 webex session 列表并在网页上显示它们 我尝试了此页面上的代码:https://developer.cisco.com/site/webex-develope
我收到了关于我支持的 Web 应用程序的按钮消失和格式奇怪的投诉。故障排除后,环境(之前运行良好)的唯一新变化似乎是在客户端计算机上安装了 webex。 卸载 webex 解决了该问题。请注意,问题期
我已成功使用其他几个 Webex API,但“LstrecordaccessDetailHistory XML 请求”不起作用。 我从 XML 响应中收到此消息: unable to instanti
我正在使用 WebEx XML api 来“获取 session 参与者”。 get meeting attendees https://developer.cisco.com/site/webex-
我一直在使用 Cisco Webex XML API 对单个 session 实例和重复 session 执行所有 CRUD 操作。 我想知道是否有一种方法可以使用当前的 XML API 代表其他用户
我在 webex 上进入房间时无法启动 webex 并出现以下错误 “您的浏览器、浏览器版本或操作系统当前不受支持。” 我在 ubuntu 14.04 上使用 Firefox 36。我尝试使用 web
我正在为 Outlook mac 开发一个插件,我在谷歌和社区中进行了搜索,每个人都告诉我不可能为 Outlook mac 制作插件,因为它根本不支持,我承认但我刚刚看到Outlook 的 WebEx
当Webex和GotoMeeting之类的程序正在运行屏幕/应用程序捕获时,使用 Electron/ Chrome getMediaStream API会导致黑色捕获。知道如何解决这个问题吗? 最佳答
我正在为客户开发一个网站,用户可以在该网站上注册事件。现在,客户希望集成 WebEx 并在用户在我们的网站上注册并支付全部费用后自动将用户注册到 WebEx 事件。 我检查了他们的 API,但找不到执
所以我有很多即时消息日志/历史记录要从我的聊天客户端(Windows 7 中的 Cisco WebEx Connect)备份。这些存储在 C:\Users\\AppData\Local\WebEx 下
我正在编写一个小工具,使用支持票信息与我们的支持客户一起打开 WebEx。当站点使用用户名/密码时我可以让它工作,现在我们使用 SSO。WebEx 服务器已设置为接受 SSO(由我们的 IT 经理设置
我是一名优秀的程序员,十分优秀!