4

我们有一个 asp.net MVC 应用程序,用户通过 azure 活动目录进行连接。他们可以通过他们的 sharepoint 在线帐户管理文件。

要在线访问共享点,我们使用CSOM。我们希望连接到 azure Active Directory 的用户使用他的帐户来操作文件而无需填写凭据。为此,我们将访问令牌附加到要进行身份验证的请求标头。它工作正常。

现在我们想在 sharepoint online 中使用 excel services SOAP API。要进行身份验证,我们必须填写凭据。我们如何绕过它并通过登录用户进行身份验证?

编辑: 您可以在下面看到使用当前用户上下文访问共享点资源的代码。

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 服务 web 服务。

4

1 回答 1

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;
}
于 2014-09-03T11:35:14.847 回答