繁体   English   中英

Azure Function App Web API 的 .Net Core MSAL 身份验证

[英].Net Core MSAL Authentication for Azure Function App Web API

我有一个用 C# .net Core 编写的 Azure Function App

我使用Microsoft.Identity.Client; 库来执行此身份验证过程。

在我的函数应用程序 API 中,我再次调用时序洞察 (TSI),因此我必须使用传递到函数应用程序的 accessToken 来获取 TSI 范围的新令牌。

有两个主要流程需要工作,但我只能让一个版本工作。

工作版本正在 PostMan 中获取令牌并对 API 进行身份验证

IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
            .Create(clientId)
            .WithClientSecret(clientSecret)
            .WithTenantId(tenantId)
            .Build();
confidentialClientApplication.AcquireTokenForClient(scopes).ExecuteAsync();
            

NOT工作流程 - 用户登录到我的网站并从网站调用 API。 然后我必须使用

UserAssertion userAssertion = new UserAssertion(accessToken);
confidentialClientApplication.AcquireTokenOnBehalfOf(scopes, userAssertion).ExecuteAsync();

AcquireTokenOnBehalfOf对我AcquireTokenOnBehalfOf ,直到令牌在缓存中过期。 我在函数应用身份验证中使用 Azure 令牌存储。

网站类似于PostMan,获取token,然后调用Function App API。 这么多工作正常,但令牌已过期。 文档说要使用令牌存储,可以使用静默请求来刷新令牌( AcquireTokenSilent ) - 但这对我来说没有意义,因为我没有IAccount用于IAccount confidentialClientApplication.AcquireTokenSilent(scopes, acount)

在 Azure 门户中使用内置 Function App Token Store 时,让这两个选项都可用于身份验证的正确方法或更好的方法是什么?

On-Behalf-Of 流不支持刷新令牌,请参见此处

在此处输入图片说明

如果您想使用此流程,您需要再次进行身份验证以更新访问令牌。

暂无
暂无

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

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