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

如何配置Scalar通过Microsoft Entra实现身份认证?

问题:配置Scalar与Microsoft Entra认证对接,测试需认证API

我有一个Web应用,前端使用Microsoft Entra进行身份认证,通过获取的Bearer令牌与后端API完成认证。近期我移除了应用中的Swagger/SwaggerUI,替换为Microsoft OpenAPI包和Scalar的ASP.NET包——因为原Swagger无法完全正常工作,所以尝试这些现代替代方案。

Scalar可以正常启动,我能查看所有后端API并发送请求,但它默认不支持身份认证功能,导致所有对需认证API的请求(部分API允许匿名访问)均返回401响应。

我希望配置OpenAPI/Scalar,让它识别哪些API需要认证,并实现类似之前SwaggerUI的认证流程:点击按钮即可触发Entra认证,后续测试API时自动完成认证。之前任职的公司里有人实现过SwaggerUI的该功能,但我不清楚具体配置方法,想在Scalar上复现。

这是为所在俱乐部搭建的个人非商用网站,仅作兴趣使用(无付费)。技术栈为ASP.NET Core 9 Web API后端 + Blazor WebAssembly前端(前端已能正常完成认证)。目前找不到相关配置指南,不确定是该功能无法实现还是方案较新导致资料较少。


已解决:Scalar与Entra认证对接的配置步骤

按照相关方案操作后,我成功实现了Scalar与Entra的认证对接,除基础配置外,还额外完成了以下关键步骤:

  • 在Entra的应用注册中添加Scalar的重定向URL
  • 应用注册提供的认证和令牌端点默认以https://login.microsoftonline.com/common开头,实际需要使用包含租户ID的端点(参考MSAL使用的端点格式)

OpenAPI核心配置代码

builder.Services.AddOpenApi(options =>
{
    options.AddDocumentTransformer((document, context, cancellationToken) =>
    {
        document.Components ??= new OpenApiComponents();

        document.Components.SecuritySchemes.Add("oauth", new OpenApiSecurityScheme
        {
            Type = SecuritySchemeType.OAuth2,
            Flows = new OpenApiOAuthFlows
            {
                AuthorizationCode = new OpenApiOAuthFlow
                {
                    AuthorizationUrl = new Uri($"https://login.microsoftonline.com/{builder.Configuration["AzureAD:TenantId"]}/oauth2/v2.0/authorize"),
                    TokenUrl = new Uri($"https://login.microsoftonline.com/{builder.Configuration["AzureAD:TenantId"]}/oauth2/v2.0/token"),
                    Scopes = new Dictionary<string, string>
                    {
                        {builder.Configuration["AzureAd:Scopes"], "Data Access"}
                    },
                    // 让Scalar默认选择PKCE,可选值为 'SHA-256' | 'plain' | 'no'
                    Extensions = new Dictionary<string, IOpenApiExtension>()
                    {
                        ["x-usePkce"] = new OpenApiString("SHA-256")
                    }
                }
            }
        });

        return Task.CompletedTask;
    });
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 10:09:55