You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否将Azure Web App内置身份验证数据传递至应用,实现基于用户组的动态展示?

可以直接获取App Service内置认证的用户数据,无需停用该功能

完全不用放弃App Service内置的身份验证,它会自动将已认证用户的身份数据传递到你的应用里,具体获取方式分平台来看:

  • ASP.NET/ASP.NET Core:通过HttpContext.User的Claims集合获取对象ID,代码示例:

    var objectId = HttpContext.User.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier")?.Value;
    

    其他用户相关的声明(比如用户名、租户ID)也能从User.Claims里拿到。

  • Node.js:从请求头中直接读取,比如对象ID在x-ms-client-principal-id头里,用户名在x-ms-client-principal-name里,示例:

    const objectId = req.headers['x-ms-client-principal-id'];
    
  • Python(Flask/Django):同样从请求头获取,比如Flask里:

    object_id = request.headers.get('X-MS-CLIENT-PRINCIPAL-ID')
    

拿到对象ID后,你可以用App Service的托管身份来调用MS Graph查询用户组:

  1. 给你的Web App启用系统分配(或用户分配)托管身份;
  2. 在Azure AD里给这个身份授予User.Read.All或Directory.Read.All的应用权限(选满足需求的最小权限);
  3. 应用里通过托管身份获取Graph的访问令牌,再调用GET /users/{objectId}/memberOf接口拿到用户所属的组。

这种方式既保留了App Service内置认证的便捷性(不用自己处理登录流程、令牌验证),又能实现你需要的组权限判断逻辑,完全不用切换到应用内认证的方案。

内容的提问来源于stack exchange,提问作者Gery

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 23:25:05