我需要基于SAML SSO的身份验证才能使用基于Web的应用程序。 Moxtra提供基于SAML SSO的身份验证,如:
<script type="text/javascript"src="https://www.moxtra.com/api/js/moxtra-latest.js" id="moxtrajs"
data-client-id="CLIENT-ID" data-app-key="IDP-ENTITY-ID" data-org-id="ORG-ID"></script>
我可以生成令牌,如下所示
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/hmac-sha256.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/components/enc-base64-min.js"></script>
<script type="text/javascript">// <![CDATA[
var client_id = "xxxxxxxxxx";
var client_secret = "yyyyyyyyyy";
var timestamp = new Date().getTime();
var uniqueid = "user-unique-identity";
var hash = CryptoJS.HmacSHA256(client_id + uniqueid + timestamp, client_secret);
var hashInBase64 = CryptoJS.enc.Base64.stringify(hash);
var signature = hashInBase64.replace(/\+/g, '-').replace(/\//g, '_').replace(/\=+$/, '');
// ]]></script>
function get_token() {
var in_options = {
uniqueid: uniqueid,
timestamp: timestamp,
signature: signature,
get_accesstoken: function(result) {
alert("access_token: " + result.access_token + " expires in: " + result.expires_in);
},
error: function(result) {
alert("error code: " + result.error_code + " message: " + result.error_message);
}
};
Moxtra.setup(in_options);
}
现在我需要所有绑定器,聊天选项,时间线选项,通过REST API满足选项。 在moxtra上,他们提供here
所以以类似的方式我在生成一个令牌以获取所有绑定器后尝试使用c#代码,但它说401 Unauthorized。
我的代码如下:
string url = "https://api.moxtra.com/me/binders?" + Token + "HTTP/1.1";
HttpWebRequest GETRequest = (HttpWebRequest)WebRequest.Create(url);
GETRequest.Method = "GET";
HttpWebResponse GETResponse = (HttpWebResponse)GETRequest.GetResponse();
Stream GETResponseStream = GETResponse.GetResponseStream();
StreamReader sr = new StreamReader(GETResponseStream);
有人能为此提供帮助吗?
P.S。 (需要一切通过REST API&#39; s)
答案 0 :(得分:0)
从上面的代码看,您似乎尝试使用唯一ID +签名方法而不是SAML SSO进行SSO。您可以在https://developer.moxtra.com/moxo/docs-authentication/
找到有关Moxtra支持的身份验证方法的更多详细信息由于您使用基于唯一ID +签名的身份验证方法,因此您无需传递data-app-key和data-org-id
<script type="text/javascript"src="https://www.moxtra.com/api/js/moxtra-latest.js" id="moxtrajs" data-client-id="CLIENT-ID"></script>
关于错误401的问题,看起来似乎没有在GET请求中正确传递访问令牌参数
您需要将访问令牌作为参数传递给&#34; access_token = [访问令牌值]&#34;。