【问题标题】:IdentityServer4 - Is there a way to silently authenticate user as part of the authorization code flow?IdentityServer4 - 有没有办法在授权代码流中静默地对用户进行身份验证?
【发布时间】:2018-09-16 11:45:20
【问题描述】:

我的场景是客户端只有一个用户,该用户将用于获取/创建 API 数据。我想使用授权代码流(或任何适合的?)并静默验证该用户并生成 id_token 和访问令牌。我的客户暂时不希望登录屏幕进行身份验证(也许他们已经在他们的应用中对用户进行了身份验证),因为只有一个用户。

这将如何实现以及使用什么 grant_type ?还是有办法使用用户名和密码自动登录用户?

【问题讨论】:

  • 在这种情况下,IdentityServer4 可能不是要使用的工具。白名单可能是更好的解决方案。

标签: identityserver4


【解决方案1】:

如果您有他们的usernamepassword,您可以使用Token Endpoint

POST /connect/token

client_id=yourclientid& client_secret=yourclientsecret& grant_type=密码& 用户名=你的用户名&密码=你的用户名密码

您可以使用Identity Model 帮助您发出令牌请求:

var response = await client.RequestPasswordTokenAsync(new PasswordTokenRequest
{
    Address = "https://demo.identityserver.io/connect/token",

    ClientId = "yourclientid",
    ClientSecret = "yourclientsecret",
    UserName = "yourusername",
    Password = "yourusernamespassword"
});

【讨论】:

  • 在这种情况下,该客户的授权类型是什么?我可以将其设置为授权码并仍然通过密码授权类型吗?
  • 这种反向通道流的客户端凭据或资源所有者密码。如果是机器对机器类型的集成,那么客户端凭据是最合适的。
  • 在这种情况下客户端是移动应用程序。客户端凭据或资源所有者密码可以吗?
猜你喜欢
  • 1970-01-01
  • 2017-05-28
  • 1970-01-01
  • 2018-04-03
  • 2011-04-17
  • 2011-02-25
  • 1970-01-01
  • 2018-11-28
  • 2020-03-01
相关资源
最近更新 更多