GraphClient 企业帐户 OnBehalfOfCredential 身份验证失败

问题描述 投票:0回答:1

祝大家度过美好的一天。

我正在 .Net Core 上使用图形客户端来验证用户身份并初始化图形客户端服务,以使用包含 idToken 的 OnBehalfOfCredentials 获取用户的日历和个人资料信息,例如:

var scopes = new[] { "User.Read", "Calendars.Read", "Calendars.ReadWrite" };
            var clientSecret = "clientSecret";
            accessToken = "idToken";
            var tenantId = "common";
            var clientId = "clientId";
            var onBehalfOfCredential = new OnBehalfOfCredential(tenantId, clientId, clientSecret, accessToken);
var graphClient = new GraphServiceClient(onBehalfOfCredential, scopes);

IdToken 是 MSAL 库的一个字段,使用 loginPopup 结果,通过我的 Angular 项目将用户记录到我在 azure 上的应用程序。我使用 idToken 而不是 accessToken,因为 accessToken 返回个人帐户的非 jwt 格式的令牌。它以“Ew...”开头,因为我正在使用弹出结果的 idToken 字段。我可以使用 idToken 获取个人帐户信息,但在尝试获取企业或学校帐户信息时,我从 GraphClientService 收到错误。

代码:

var user = await graphClient.Me.GetAsync();

错误:OnBehalfOfCredential 身份验证失败:AADSTS240002:输入 id_token 无法用作“urn:ietf:params:oauth:grant-type:jwt-bearer”授权。跟踪 ID:10db8442-96cd-47ad-b8d9-3f52a4ee1000 相关 ID:cd618d21-adc7-4dcb-82bc-9d7b122ca085 时间戳:2024-01-18 09:07:51Z"

当我对企业帐户使用 accessToken 而不是使用 idToken 时,我也会收到错误。

错误:“OnBehalfOfCredential 身份验证失败:AADSTS50013:断言签名验证失败。[原因 - 找到密钥,但使用密钥验证签名失败。,客户端使用的密钥指纹:'E41DE7471B50EE38BC78D0DCDC5CB4E4A7FDED91',找到密钥'Start= 12/05/2023 17:16:57,End=12/05/2028 17:16:57',请访问 Azure 门户、Graph Explorer 或直接使用 MS Graph 查看应用程序 ID '00000000-0000- 的配置密钥0000-0000-000000000000'。查看 https://docs.microsoft.com/en-us/graph/deployments 中的文档以确定相应的服务端点和 https://docs.microsoft.com/en-us/graph /api/application-get?view=graph-rest-1.0&tabs=http 构建查询请求 URL,如 'https://graph.microsoft.com/beta/applications/00000000-0000-0000-0000-000000000000 ']。跟踪 ID:cf67284a-83ef-429e-bbe0-07cb617e1200 相关 ID:ed9d2d77-30cb-4bba-9189-16e392a4c528 时间戳:2024-01-18 09:20:34Z"

.net graph azure-active-directory msal-angular entra
1个回答
0
投票

我意识到您可能只想追求基于用户的访问,但您可以考虑的另一种选择是使用客户端密钥的仅应用程序身份验证工作流程:

https://learn.microsoft.com/en-us/graph/tutorials/dotnet-app-only?tabs=aad

© www.soinside.com 2019 - 2024. All rights reserved.