AFAIK,当使用 Easy Auth(应用服务中的身份验证/授权)时,用户将被定向到使用Server-managed authentication{your-app-service-url}/.auth/login/{provider}
进行日志记录。通过 Web 浏览器与您的 Web 应用程序交互的用户将拥有一个 cookie,并且他们可以作为您的 Web 应用程序的浏览器保持身份验证。对于其他客户端(例如移动客户端),标头中将包含 JWT ,移动应用客户端 SDK 将为您处理它。x-zumo-auth
根据您的场景,您正在尝试对您的函数使用基于用户的身份验证。我做了一些测试,你可以参考他们:
首先,我创建了一个用 C# 编写的 HttpTrigger 函数,然后将授权级别设置为匿名。
return req.CreateResponse(HttpStatusCode.OK, req.Headers,JsonMediaTypeFormatter.DefaultMediaType);
注意:我只返回具有应用服务身份验证/身份验证指定的特殊标头的所有标头。一些示例标题包括:
- X-MS-CLIENT-PRINCIPAL-NAME
- X-MS-CLIENT-PRINCIPAL-ID
- X-MS-TOKEN-MICROSOFTACCOUNT-ACCESS-TOKEN
- X-MS-TOKEN-MICROSOFTACCOUNT-EXPIRES-ON
更多细节可以参考App Service Token Store。
然后我转到平台功能并在身份验证/授权下配置 Microsoft 身份验证提供程序。对于移动客户端,只需使用移动应用客户端 SDK 进行日志记录并调用函数端点,如下所示:
总之,您可以使用移动应用客户端 SDK 对您的函数应用进行身份验证。您可以根据需要配置身份验证提供程序,然后对于您的移动客户端,您可以在调用LoginAsync
日志记录时设置相关的提供程序名称。对于您的功能,您可以检查X-MS-CLIENT-PRINCIPAL-IDP
标头并检索特定提供商的当前用户信息和令牌。