gpt4 book ai didi

azure - Microsoft Graph-API 和 Azure 移动应用

转载 作者:行者123 更新时间:2023-12-02 06:47:27 25 4
gpt4 key购买 nike

我有一个移动应用程序,想要使用 Microsoft Graph-API 进行身份验证。我正在使用 Microsoft.Identity.Client 命名空间。我可以通过调用获取 token

authResult = await App.PublicClientApp.AcquireTokenAsync(_scopes);

当我通过调用将此 token 传递给我的移动应用程序时

azureUser = await App.MobileService.LoginWithMicrosoftAccountAsync(authResult.AccessToken);

我收到 MobileServiceInvalidOperationException“您无权查看此目录或页面”。

我已在应用程序注册门户中注册了我的应用程序。 Registration Portal

在 Azure 中它看起来像这样: Azure Portal

我错了什么???

亲切的问候,

马丁

最佳答案

Easy Auth 不支持使用从 Azure AD V2.0 颁发的访问 token 交换 token (在本例中使用 MSAL 库)。

要使用移动客户端的客户端流程,您可以使用 OneDrive 身份验证库从 Microsoft 帐户的终结点获取 token 。这里有一个类似的线程供您引用:

Desktop client flow for MicrosoftAccount access to Azure Mobile Service API

下面是适合我的代码:

public  async Task TestEasyAuthAsync()
{

string acess_token = await AcquireTokenForLiveAccount();
string applicationUrl = "https://mobilefei.azurewebsites.net/";
var mobileClient = new MobileServiceClient(applicationUrl);

JObject token = new JObject();
token.Add("access_token", acess_token);
var user = await mobileClient.LoginAsync(MobileServiceAuthenticationProvider.MicrosoftAccount, token);
Console.WriteLine($"UserID:\n{user.UserId}");

var result = await mobileClient.InvokeApiAsync(@"/.auth/me");
Console.Read();
}

public async Task<string> AcquireTokenForLiveAccount()
{
var msAuth = new MsaAuthenticationProvider("57336bd5-a80f-4b48-a29a-07fdea6ef91e", "https://login.microsoftonline.com/common/oauth2/nativeclient", new string[] { "wl.signin", "wl.offline_access" });
await msAuth.AuthenticateUserAsync();
return msAuth.CurrentAccountSession.AccessToken;
}

关于azure - Microsoft Graph-API 和 Azure 移动应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46464234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com