是否有一种机制可以采用AAD身份验证并使SharePoint在线身份验证



我有一个应用程序,它使用正确的Scopes成功登录到Microsoft Graph,并使用Microsoft Graph SDK(3.18.xxx(查询SharePoint Online资源:列表、文件等

我想使用Microsoft SharePoint CSOM(16.1.xxx(访问CSOM特定功能

这些功能包括LoadClientSidePage,以及使用ClientSidePage可以做的所有相关的好事

(注意,如果我"重新授权"用户,一切都很好(

与其让用户登录两次(一次用于Graph,一次用于SharePoint CSOM(--SharePoint CSOM Auth是否有一个功能,我可以用我的Bearer:访问令牌换取SharePoint CSOM等价物?(我可能错了,但我认为这是一个WSFed代币(?

感谢

我认为这是可能的。您可以将访问令牌附加到csom,如下所示:

public ClientContext GetContext(Uri web, string userPrincipalName, SecureString userPassword)
{
var context = new ClientContext(web);
context.ExecutingWebRequest += (sender, e) =>
{
//get access token
e.WebRequestExecutor.RequestHeaders["Authorization"] = "Bearer " + accessToken;
};
return context;
}

如何兑换代币?

通常,一个访问令牌只针对一个资源。但是,刷新令牌对您的客户端已经获得同意的所有权限都有效,因此,在请求scope=mail.read时发布的刷新令牌可以用于请求scope=api://contoso.com/api/UseResource的新访问令牌。

  • https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow#refresh-访问令牌

另一种可能的方法是代表流使用OAuth 2.0。OAuth 2.0 On-Behalf-Of流(OBO(为应用程序调用服务/web API的用例提供服务,该API反过来需要调用另一个服务/web API

  • https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow

CSOM所需的令牌与SharePoint rest API 相同

如果您使用的是V1.0作者端点,请参阅https://learn.microsoft.com/en-us/azure/active-directory/azuread-dev/v1-protocols-oauth-code#refreshing-访问令牌。

最新更新