首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以在我的ASP.NET Core2.0API中使用访问令牌和标识令牌吗?

我可以在我的ASP.NET Core2.0API中使用访问令牌和标识令牌吗?
EN

Stack Overflow用户
提问于 2018-02-12 15:15:59
回答 1查看 1.2K关注 0票数 0

我正在开发一个ASP.NET Core2.0API。目前,该API支持服务到服务工作流,其中客户端控制台应用程序使用其控制台应用程序的Azure AD应用程序注册AppId/AppKey值从Azure AD获得访问令牌。

为了支持这一点我的API使用..。

代码语言:javascript
复制
        // Add Azure AD OAUTH2.0 Authentication Services
        services.AddAuthentication(sharedOptions =>
        {
            sharedOptions.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
        })
        .AddAzureAdBearer(options => Configuration.Bind("AzureAd", options));

在Startup.cs ConfigureServices方法和.

代码语言:javascript
复制
        app.UseAuthentication();

在Startup.cs配置方法中。最后..。

代码语言:javascript
复制
[Authorize]

属性以及..。

代码语言:javascript
复制
using Microsoft.AspNetCore.Authorization;

在我的控制器中使用语句。

现在一切都很顺利。

但是,我现在需要允许一个管理web应用程序访问我的API。这个管理web应用程序将使用Azure认证用户登录并获得身份令牌。我希望我的API也能够接受这个身份令牌;

  1. 允许访问API,以及
  2. 允许我的API识别用户并根据用户身份声明在API中做出决策。

ASP.NET Core2.0能否同时支持访问令牌和身份令牌,而不破坏我目前使用的服务工作流?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-12 15:48:03

这应该很好-您的上述故障需要一些小的调整:

--控制台应用程序--基于API键获取一个简单的访问令牌--该访问令牌不是特定于用户的,而是表示应用程序标识的。

--管理WEB应用程序--用户登录并获得id_token 和access_token。id_token只是被web应用程序用作身份验证的证明,从来没有发送到任何地方。access_token是特定于用户的,可用于调用API并获取个性化数据。

API API的工作是根据令牌的声明接收访问令牌和授权。对于控制台应用程序,声明将仅通过“客户端id”声明包含应用程序标识。对于这个web应用程序,你也可以识别用户--最常见的是通过“子”声明(可能还有其他用户声明,比如电子邮件)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48749613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档