无法在 PostMan 中获取 Azure AD 令牌

尼兰詹

我正在研究 .Net 核心 Azure AD 身份验证。我已经创建了示例 .Net 核心应用程序。下面是我的代码。

 public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
            services.Configure<CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });

            services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
                .AddAzureAD(options => Configuration.Bind("AzureAd", options));

            services.Configure<OpenIdConnectOptions>(AzureADDefaults.OpenIdScheme, options =>
            {
                options.Authority = options.Authority + "/v2.0/";
                options.TokenValidationParameters.ValidateIssuer = false;
            });

            services.AddMvc(options =>
            {
                var policy = new AuthorizationPolicyBuilder()
                    .RequireAuthenticatedUser()
                    .Build();
                options.Filters.Add(new AuthorizeFilter(policy));
            })
            .SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });
            });
    }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseHsts();
            }
            app.UseHttpsRedirection();

            app.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
            });
            app.UseAuthentication();
            app.UseMvc();
        }

下面是我的配置文件。

 "AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "Domain": "[Enter the domain of your tenant, e.g. contoso.onmicrosoft.com]",
    "TenantId": "organizations",
    "ClientId": "",
    "CallbackPath": "/signin-oidc"
  }

下面是我的控制器代码。

[Authorize]
    [Route("api/[controller]")]
    [ApiController]
    public class ValuesController : ControllerBase
    {
        // GET api/values
        [HttpGet]
        public ActionResult<IEnumerable<string>> Get()
        {
            return new string[] { "value1", "value2" };
        }
    }

上面的代码工作正常。我能够点击 api 并获得价值。所以我假设我的身份验证工作正常。我正在尝试从邮递员访问此 API,因此我正在尝试在邮递员中获取令牌。

在此处输入图片说明

我收到错误无法完成 OAuth 2.0 登录。有人可以帮我解决这个问题吗?任何帮助,将不胜感激。谢谢

托尼·朱

这是使用 Azure AD 在 ASP.NET Core Web 应用程序中调用 Web API完整示例

虽然您现在没有客户端应用程序,但您仍然需要在 Azure 门户中注册两个应用程序。一种用于客户端,另一种用于服务器 api。

对于您的服务器应用程序,您需要公开一个 API 并将您的客户端应用程序添加到其中。

在此处输入图片说明

然后您可以使用您的客户端应用程序请求访问令牌以访问服务器 api。范围应该是api://{server_client_id}/.default.

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法使用 Azure AD 和 SPA 获取令牌

受Azure AD B2C保护的Azure Function App的Postman中的请求访问令牌

在Postman中为Azure AD B2C请求访问令牌

如何使用 Postman 獲取 Azure AD 刷新令牌?

在 Postman 预请求脚本中获取 Azure REST 访问令牌

Azure AD 获取错误的令牌版本

为来宾获取 Azure AD 令牌

如何从 Azure AD 获取 TokenCredentials 的访问令牌?

使用Azure AD登录后无法使用WebApp静默获取令牌吗?

无法从Azure AD获取承载令牌以与API App一起使用

Azure AD B2C-GitHub的自定义提供程序无法获取访问令牌

MSAL和passporrt-azure-ad无法验证令牌

ASP.NET Web API - 如何在 Azure AD 的令牌 URL 中获取访问令牌

无法在POSTMan上获取Google oAuth 2令牌

帐户与Azure AD关联后如何从Alexa获取访问令牌

如何获取已登录用户的Azure AD访问令牌?

Azure AD-如何获取v2访问令牌

Azure AD:静默获取特定范围的令牌,但获取没有此范围的令牌

Azure AD OAuth 刷新令牌

Azure AD-令牌中缺少角色声明

Azure AD:访问令牌中缺少角色声明

找不到范围(scp)中的Azure AD访问令牌

Azure AD 中基于 JWT 令牌的身份验证

.NET Core 3.1 中的 Azure AD JWT 令牌错误

从Azure AD中获取用户的令牌主题标识符(子)

在与Azure AD B2C集成的网站中获取访问令牌

如何在 ASP Core 2.0 中获取从 Azure AD B2C 返回的令牌?

通过ADAL获取来自Azure AD令牌的Asp.Net Core API中基于令牌的身份验证

在POSTMAN中获取Firebase访问令牌