繁体   English   中英

来自服务的Microsoft Graph API

[英]Microsoft Graph API from service

我试图一次授权Office 365,只允许用户登录一次。

到目前为止,这是我的代码

IdentityClientApp = new ConfidentialClientApplication(this.clientId, "[uri]", new ClientCredential("[private key from Application Secrets section]"), new Microsoft.Identity.Client.TokenCache(), new Microsoft.Identity.Client.TokenCache());
authResult = await IdentityClientApp.AcquireTokenForClientAsync(new []{ "User.Read.All" });

我遇到一个异常: AADSTS70011: The provided value for the input parameter 'scope' is not valid. The scope User.Read.All is not valid. AADSTS70011: The provided value for the input parameter 'scope' is not valid. The scope User.Read.All is not valid.

我不确定如何获得有效的令牌,但我可以退出并重新启动而不必每小时都弹出authpage。

根据您的描述,您正在将客户端凭据流与带有MSAL库的Azure AD V2.0一起使用。 在Azure AD V2.0中使用客户端凭据流时,为此请求中的scope参数传递的值应该是所需资源的资源标识符(应用程序ID URI),并带有.default后缀。 对于Microsoft Graph示例,该值为https://graph.microsoft.com/.default

请单击此处了解更多详细信息。 是有关将客户端凭据流与Azure AD V2.0终结点一起使用的教程。

另外,由于您使用的是应用程序身份(客户端凭据流),因此用户无需登录您的应用程序。 请阅读有关Azure AD身份验证方案的更多信息。如果要使用用户身份,可以尝试OAuth 2.0授权代码流是一个代码示例。 使用用户身份,可以延长会话时间(用户一小时后将不会注销)。 您可以通过在页面中添加隐藏的iframe来尝试续订会话,该iframe会在固定的时间间隔内命中新的登录路线(在登录操作中,您可以获得新的访问令牌)。 有关详细信息和代码示例,请参阅控制Web App会话持续时间的文章。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM