首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >IdentityServer4作为Web API

IdentityServer4作为Web API
EN

Stack Overflow用户
提问于 2019-03-13 01:00:16
回答 1查看 176关注 0票数 1

我是IdentityServer4的新手。现在,我尝试使用JWT-authorization实现微服务(通过向API传递每个请求的令牌)。因此,该模式是原始的- IDS4服务器作为身份验证服务器,ASP.NET身份+ MSSQL用于客户端数据的使用和存储,其他服务使用身份验证服务进行令牌验证。因此,我看了很多文章,但没有找到可以自定义IDS4行为的示例。例如,我希望客户端调用在IDS4项目中实现的model接口方法,其中AuthorizeByLogin(AuthorizeView model)是两个字段的对象:Username, Password。在此方法中,我希望检查数据库中的用户并生成access_token,它将传递给客户端以使用受保护的应用程序接口。但是没有一个示例可以做到这一点(调用API方法,传递对象和接收令牌)。它的大部分内容都是“使用*/connect/token”。

有没有人能给我举个例子,说明这种方式很好地实现了?或者告诉我应该实现哪些接口并正确地传递给ASP.NET核心应用程序中的服务,以便实现Authentication Web API + IdentityServer4实现?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-13 02:34:30

您可以在Identity Server 4 docs中找到过多的快速入门示例。另外,据我所知,您希望使用ResourceOwnerCredentials授权类型。如果不重新实现大多数Identity Server4,您将无法轻松地修改颁发令牌的端点,但是您可以实现IResourceOwnerPasswordValidator接口并使用适当的允许授权类型设置客户端:

代码语言:javascript
运行
复制
    new Client
    {
        ClientId = "your_client",
        AllowedGrantTypes = GrantTypes.ResourceOwnerPassword,

        ClientSecrets =
        {
            new Secret("your_password".Sha256())
        },
        AllowedScopes = { ... }
    }

之后,客户端可以通过提供给定用户的用户名和密码以及自己的凭据来调用connect\token端点:

代码语言:javascript
运行
复制
var tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest
{
    Address = disco.TokenEndpoint,
    ClientId = "ro.client",
    ClientSecret = "secret",

    UserName = "alice",
    Password = "password",
    Scope = "api1"
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55126942

复制
相关文章

相似问题

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