簡體   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