我创建了一个新的功能应用程序,为其启用了应用程序服务身份验证/授权(" 使用身份验证/授权来保护您的应用程序并使用每个用户数据 ")并禁用未经身份验证的请求.
到目前为止,一切似乎都正常.如果我尝试请求我的HttpTriggered功能,它需要我先登录; 一旦我登录,所有请求都将按原样处理.所以"保护你的应用程序"部分没有问题.
但是,我完全坚持"使用每用户数据"部分.我的Azure函数被调用为
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]HttpRequestMessage req, TraceWriter log)
并且没有任何与身份验证相关的内容HttpRequestMessage.(AuthorizationLevel.Anonymous似乎控制着完全不同的东西 - 即,如果该函数可以被任何人调用,或者只能由具有固定API密钥的人调用).
如何获取调用该函数的已认证用户的身份?
c# azure azure-active-directory azure-functions azure-authentication
Java应用程序需要访问SharePoint 2013 REST API https://msdn.microsoft.com/en-us/library/office/jj860569.aspx
更愿意使用BASIC身份验证:
有许多在网络上使用其余api的例子,但似乎都没有处理身份验证.也许我错过了一些非常简单的东西.
这可以通过POSTMAN手动工作:http://tech.bool.se/basic-rest-request-sharepoint-using-postman/ 但要求我在浏览器中输入用户名和密码.
我试过实现这个: HttpClientBuilder基本 使用auth
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.4.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
这会导致 - >警告:NTLM身份验证错误:凭据不能用于NTLM身份验证:org.apache.http.auth.UsernamePasswordCredentials
我正在尝试使用控制台可执行文件中的上下文令牌连接SharePoint 2013 Online网站.但是,它给了我错误The remote server returned an error: (403) Forbidden.
这是代码片段:
string spurl = ConfigurationManager.AppSettings["Sharepoint_URL"].ToString();
using (ClientContext context = new ClientContext(spurl))
{
context.Credentials = new NetworkCredential("username", "password", "domain");
context.ExecuteQuery();
Web web = context.Web;
context.Load(web);
context.ExecuteQuery();
Console.WriteLine(context.Web.Title);
}
Console.ReadKey();
Run Code Online (Sandbox Code Playgroud)
如何与SharePoint Online建立连接?它是否仅支持基于声明的身份验证?