从validate-jwt迁移至validate-azure-ad-token策略遇验证失败求助
排查validate-azure-ad-token策略验证失败的思路
检查策略架构版本兼容性
validate-azure-ad-token是API Management的较新策略,需确认你的APIM服务使用v2版本策略架构。若服务仍在使用旧版架构,可能导致新策略无法正常解析执行。
验证令牌受众(aud)匹配性
该策略默认会验证令牌的aud(受众)字段是否与当前APIM中配置的API标识符一致。需确保令牌的aud值是目标API的标识符(如api://{api-client-id}或自定义受众URI),而非客户端应用ID。
核对租户ID格式一致性
确认策略中tenant-id的纯GUID值,与令牌iss字段中的租户ID完全匹配,不要包含https://login.microsoftonline.com/或/v2.0这类路径部分。
显式指定令牌版本
若你的令牌是Azure AD v2版本,可在策略中添加token-version="2.0"属性,明确指定验证v2格式令牌:
<validate-azure-ad-token header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid." tenant-id="{{tenant-id}}" token-version="2.0"> <client-application-ids> <application-id>{{portal-clientId}}</application-id> </client-application-ids> </validate-azure-ad-token>
检查APIM服务权限配置
确保APIM服务主体拥有读取Azure AD应用注册的权限:在Azure门户进入APIM服务的身份验证设置,确认已启用Azure AD身份验证,且服务主体分配了Directory.Read.All权限(若需验证自定义应用)。
启用Verbose级日志追踪
在APIM的诊断设置中,将日志级别设为Verbose,并勾选validate-azure-ad-token相关日志类别;同时使用APIM的测试控制台发送请求,实时查看策略执行的详细步骤,大概率能捕获到更具体的错误细节。
内容的提问来源于stack exchange,提问作者jokarl
相关产品推荐
相关产品推荐

