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

ASP.NET Core MVC集成Entra与DocuSign多认证技术问询

解答:ASP.NET Core MVC 结合 Entra ID 与 DocuSign 认证的疑问

Entra ID(Azure AD)在 ASP.NET Core MVC 中默认依赖 Cookie 认证来持久化用户身份。MVC 是服务器端渲染架构,需要通过 Cookie 维持用户会话:当用户完成 Entra ID 的 OAuth2 授权码流认证后,ASP.NET Core 会将加密后的用户身份信息存储在 Cookie 中,后续请求通过读取该 Cookie 识别已认证用户。

你不需要刻意修改这个默认行为,强行禁用 Cookie 会导致 MVC 无法维持会话,用户每次请求都需重新走 Entra ID 认证流程,不符合内部系统的使用逻辑。之前遇到的“需启用默认认证方案的 Cookie”异常,本质是 Entra ID 认证中间件依赖 Cookie 作为默认的身份持久化方案,并非要求额外配置无关的 Cookie 认证。

疑问2:是否可在 Program.cs 中通过 AddAuthentication() 实现上述多认证场景?EnableTokenAcquisitionToCallDownstreamApi() 的作用是什么?

关于多认证场景的实现

完全可以在 Program.cs 中通过 AddAuthentication() 配置多认证方案:

  1. 将 Entra ID 认证设为默认方案,确保所有用户请求先经过 Entra ID 校验;
  2. 单独为 DocuSign 配置 OAuth2 认证方案,用于处理 DocuSign API 的授权码流。

示例配置片段如下:

builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
    .AddMicrosoftIdentityWebApp(builder.Configuration.GetSection("AzureAd")) // Entra ID 认证配置
    .AddOAuth("DocuSign", options => // DocuSign 专属 OAuth 方案
    {
        options.ClientId = builder.Configuration["DocuSign:ClientId"];
        options.ClientSecret = builder.Configuration["DocuSign:ClientSecret"];
        options.CallbackPath = "/signin-docusign";
        options.AuthorizationEndpoint = "https://account-d.docusign.com/oauth/auth";
        options.TokenEndpoint = "https://account-d.docusign.com/oauth/token";
        options.UserInformationEndpoint = "https://account-d.docusign.com/oauth/userinfo";
        // 按需配置 DocuSign 所需的 Scope
        options.Scope.Add("signature");
    });

后续在需要调用 DocuSign API 的控制器/操作上,可通过 [Authorize(AuthenticationSchemes = "DocuSign")] 触发 DocuSign 的授权流程(前提是用户已通过 Entra ID 认证)。

关于 EnableTokenAcquisitionToCallDownstreamApi() 的作用

这个方法是 Microsoft.Identity.Web 库提供的,核心作用是:让已通过 Entra ID 认证的用户,以自身身份获取访问Entra ID 保护的下游 API的令牌,同时自动处理令牌的缓存、刷新逻辑。它仅针对 Entra 生态内的 API 调用,不适用于 DocuSign 这类第三方 OAuth 服务——你需要为 DocuSign 单独配置 OAuth 方案,或者像之前那样手动调用 DocuSign SDK 的方法处理授权流程。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 17:33:10