Azure Functions V3集成Swagger UI实现Azure AD认证时遭遇redirect.html未找到错误
解决Azure Functions V3 Swagger授权后redirect.html找不到的问题
我之前碰到过好几次类似的问题,帮你梳理下具体的解决步骤:
1. 修正OAuth2RedirectPath的路径配置
你当前设置的opts.OAuth2RedirectPath是绝对路径http://localhost:7071/api/swagger/ui/o2c-html,这是核心问题——Swashbuckle for Azure Functions要求这里配置相对路径,而且必须匹配它内置的回调页面路径。
把这段代码修改成:
opts.OAuth2RedirectPath = "/api/swagger/oauth2-redirect.html";
这个路径是Swashbuckle包自带的回调页面,不需要你额外创建文件。
2. 同步Azure AD应用的重定向URI配置
登录Azure门户找到你的Azure AD应用,在身份验证页面中,添加和上面一致的完整重定向URI:
- 本地调试环境:
http://localhost:7071/api/swagger/oauth2-redirect.html - 生产环境:换成你的函数应用实际域名,比如
https://your-function-app-name.azurewebsites.net/api/swagger/oauth2-redirect.html
3. 优化Scopes的描述(可选但推荐)
你代码里Scopes字典的value写的是"scope",建议改成对应权限的实际描述,让授权弹窗更清晰:
Scopes = new Dictionary<string, string> { { configuration["AzureAd:scope"], "访问我的测试API" } };
修改完成后重启本地调试的Azure Functions,再点击Swagger UI的「授权」按钮,应该就能正常完成跳转和授权流程了。
内容的提问来源于stack exchange,提问作者Rajalakshmi Ganesh
相关产品推荐
相关产品推荐

