Azure功能的自定义授权
我已经设置了Azure功能,可以看到有一些选项支持Azure Active Directory进行身份验证,这看起来很棒。在以前的一个项目中,我使用.NETCore托管WebAPI,随后使用授权策略()在我的API中提供基于细粒度声明的授权。我似乎无法在Azure函数中找到等效的机制Azure功能的自定义授权,azure,azure-functions,Azure,Azure Functions,我已经设置了Azure功能,可以看到有一些选项支持Azure Active Directory进行身份验证,这看起来很棒。在以前的一个项目中,我使用.NETCore托管WebAPI,随后使用授权策略()在我的API中提供基于细粒度声明的授权。我似乎无法在Azure函数中找到等效的机制 有人能告诉我在Azure函数中是否有这样的方法吗?目前没有对细粒度授权的内置支持。这将是一个很好的建议项目 您可以将授权逻辑作为功能的一部分编写,尽管内置功能肯定会更好。下面的代码段(C#)执行身份验证签入代码并打
有人能告诉我在Azure函数中是否有这样的方法吗?目前没有对细粒度授权的内置支持。这将是一个很好的建议项目 您可以将授权逻辑作为功能的一部分编写,尽管内置功能肯定会更好。下面的代码段(C#)执行身份验证签入代码并打印声明列表。您可以修改它以要求特定的索赔:
using System.Net;
using System.Threading;
using System.Security.Claims;
public static void Run(HttpRequestMessage req, TraceWriter log)
{
if (!Thread.CurrentPrincipal.Identity.IsAuthenticated)
{
log.Info("Not authenticated");
return req.CreateResponse(HttpStatusCode.Unauthorized);
}
ClaimsIdentity identity = (Thread.CurrentPrincipal as ClaimsPrincipal)?.Identity as ClaimsIdentity;
if (identity != null)
{
foreach (var claim in identity.Claims)
{
log.Info($"{claim.Type} = {claim.Value}");
}
}
// Rest of your function...
return req.CreateResponse(HttpStatusCode.OK);
}
请注意,在非.NET语言中,您可能希望检查标题以获取索赔信息。您还可以将其与对/.auth/me端点和提供程序图形端点的调用结合起来。目前没有对细粒度授权的内置支持。这将是一个很好的建议项目 您可以将授权逻辑作为功能的一部分编写,尽管内置功能肯定会更好。下面的代码段(C#)执行身份验证签入代码并打印声明列表。您可以修改它以要求特定的索赔:
using System.Net;
using System.Threading;
using System.Security.Claims;
public static void Run(HttpRequestMessage req, TraceWriter log)
{
if (!Thread.CurrentPrincipal.Identity.IsAuthenticated)
{
log.Info("Not authenticated");
return req.CreateResponse(HttpStatusCode.Unauthorized);
}
ClaimsIdentity identity = (Thread.CurrentPrincipal as ClaimsPrincipal)?.Identity as ClaimsIdentity;
if (identity != null)
{
foreach (var claim in identity.Claims)
{
log.Info($"{claim.Type} = {claim.Value}");
}
}
// Rest of your function...
return req.CreateResponse(HttpStatusCode.OK);
}
请注意,在非.NET语言中,您可能希望检查标题以获取索赔信息。您还可以将其与对/.auth/me端点和提供者图形端点的调用结合起来。谢谢,我将在提供的链接中将其作为建议发布。谢谢,我将在提供的链接中将其作为建议发布。