首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于多个应用程序的OAuth共享授权服务器

用于多个应用程序的OAuth共享授权服务器
EN

Software Engineering用户
提问于 2014-11-17 18:18:02
回答 1查看 2.7K关注 0票数 8

在我的店里,我们有几个使用.NET令牌进行身份验证的OAuth Web。目前,每个web都是授权和资源服务器。用户使用相同的凭据对所有这些API进行身份验证,但他们目前需要独立地对每个API进行身份验证。

我对创建共享授权服务器( la http://bitoftech.net/2014/10/27/json-web-token-asp-net-web-api-2-jwt-owin-authorization-server/)很感兴趣,但我对索赔转换却束手无策。按照下面的示例,向发出的令牌添加自定义声明(特定于应用程序)对我们非常有用:

代码语言:javascript
复制
public override Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{

    /* validate credentials here... */

    var identity = new ClaimsIdentity("JWT");

    identity.AddClaim(new Claim(ClaimTypes.Name, context.UserName));
    identity.AddClaim(new Claim("sub", context.UserName));
    identity.AddClaim(new Claim(ClaimTypes.Role, "Manager"));
    identity.AddClaim(new Claim(ClaimTypes.Role, "Supervisor"));

    var props = new AuthenticationProperties(new Dictionary<string, string>
        {
            {
                 "audience", (context.ClientId == null) ? string.Empty : context.ClientId
            }
        });

    var ticket = new AuthenticationTicket(identity, props);
    context.Validated(ticket);
    return Task.FromResult<object>(null);
}

根据我所看到的,如果我创建了一个通用的授权服务器,那么所有的声明转换都需要在那里进行。这是否意味着资源服务器(我们不同的Web )不能向用户的令牌添加任何自定义声明?我可以添加特定于请求授权服务器上令牌的应用程序的声明吗?或者我是否需要装配一些东西,以便授权服务器根据请求的应用程序添加某些声明?

EN

回答 1

Software Engineering用户

发布于 2016-02-05 21:39:21

在过去,我有一个身份验证服务器来发出令牌。然后,客户端将身份验证令牌发送到带有表单请求的授权服务器:

“具有此application_id的客户端请求为附加身份验证令牌中定义的用户访问内容X。”

授权服务器进行检查,以确保用户已被授权,并向客户端颁发了新的授权令牌。然后,客户端将此令牌传递给提供内容X的服务。

在本例中,授权服务器确实需要一个配置更新来了解新内容Y。

您可以修改它,以便资源服务器要求授权服务器创建包含附加自定义声明的令牌。

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

https://softwareengineering.stackexchange.com/questions/263050

复制
相关文章

相似问题

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