网络服务中的非交互式登录



ASP.NET 应用程序与具有访问令牌的另一个服务进行互操作。 我们从登录屏幕检索的令牌。

问题是某些 Web 服务操作(在 ASP.NET 中(必须使用我们从配置中读取其凭据的特殊用户。

我正在寻找一种静默的方式来获取此用户的访问令牌,但我是 IDP 内容的新手,似乎无法为此找出 url 参数。

我设置提示=无。我也认为我不需要 returnUrl,但是 Idp 服务在省略 returnUrl 参数时并不满意。

var authorizeBehind TheSceneUrl = https://localhost/MyIdentityServer/connect/authorize?client_id=MyAppId&response_type=id_token+token&scope=openid+email&redirect_uri=http%3A%2F%2Flocalhost%2FsomeCallback.aspx&state=eyJVcmwiOiJodHR&nonce=3b119c54c48f9b8673&acr_values=idp%3A&prompt=none

我想写这样的东西:

using(var client = new WebClient())
{
var response = client.DownloadString(authorizeBehindTheSceneUrl);

// Do json parsing of response and retrieve clams
}

从上面的简单代码中,您可以看到我不希望任何用户交互,重定向。

任何人都可以提出网址结构来实现我需要的吗? 我应该使用什么参数来传递凭据?"状态"?

听起来您可能可能会使用资源所有者密码凭据授予。但是,您需要小心使用这种方法,因为客户端通常不应自己收集凭据。

但是,你说">...必须使用我们从配置中读取其凭据的特殊用户"。这让我觉得也许您应该考虑使用客户端凭据授予。这里的区别在于客户端本身是资源所有者(而不是用户(。身份服务器可以使用共享密钥或客户端证书对这些类型的客户端进行身份验证。身份服务器 3 存储库包含使用此流的客户端示例。

以下是来自Identity Server 3作者之一的一篇不错的博客文章,其中分解了不同的流(并讨论了客户端凭据(:哪个OpenID Connect/OAuth 2.0流是正确的?

相关内容

  • 没有找到相关文章

最新更新