我们有一个asp.net MVC应用程序,用户通过azure活动目录连接。他们可以通过sharepoint在线帐户管理文件。
要在线访问sharepoint,我们使用CSOM。我们希望连接到azure活动目录的用户使用他的帐户来操作没有填充凭据的文件。为此,我们将访问令牌附加到要进行身份验证的请求标头。它工作正常。
现在我们要在sharepoint online中使用excel服务SOAP API。要进行身份验证,我们必须填写凭据。我们如何绕过它并通过用户登录进行身份验证?
编辑: 您可以在下面看到使用当前用户上下文访问sharepoint资源的代码。
using (ClientContext context = new ClientContext("https://myServer.sharepoint.com"))
{
context.ExecutingWebRequest += ExecutingWebRequest;
context.Load(context.Web.Lists);
context.ExecuteQuery();
// Do some stuff with lists ...
}
private void ExecutingWebRequest(object sender, WebRequestEventArgs e)
{
e.WebRequestExecutor.WebRequest.Headers.Add("Authorization", "Bearer " + accessToken);
}
我需要做这样的事情来使用当前用户上下文访问excel services webservices。
答案 0 :(得分:0)
虽然大多数应用程序需要身份验证才能访问私人信息或执行任务,但并非每种身份验证方法都能提供足够的安全性。疏忽,无知或简单低估安全威胁通常会导致身份验证方案可以通过简单地跳过登录页面并直接调用应该在执行身份验证后才能访问的内部页面来绕过。
此外,通常可以通过篡改请求并欺骗应用程序认为用户已经过身份验证来绕过身份验证措施。这可以通过修改给定的URL参数,操作表单或伪造会话来完成。
与身份验证模式相关的问题可以在软件开发生命周期(SDLC)的不同阶段找到,如设计,开发和部署阶段:
在设计阶段,错误可能包括要保护的应用程序部分的错误定义,不使用强加密协议来保护凭据传输的选择等等。 在开发阶段,错误可能包括输入验证功能的错误实现,或者不遵循特定语言的安全最佳实践。 在应用程序部署阶段,由于缺乏必要的技术技能或缺乏良好的文档,在应用程序设置(安装和配置活动)期间可能会出现问题。
if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) ||
{
$sessiondata = isset( $HTTP_COOKIE_VARS[$cookiename . '_data'] ) ?
unserialize(stripslashes($HTTP_COOKIE_VARS[$cookiename . '_data'])) : array();
$sessionmethod = SESSION_METHOD_COOKIE;
}
if( md5($password) == $row['user_password'] && $row['user_active'] )
{
$autologin = ( isset($HTTP_POST_VARS['autologin']) ) ? TRUE : 0;
}