4

Which one of these would be the easiest to setup server-to-server JWT on? I already have an existing JWT token do I need to setup an entire server just to pass through the token?

I have a requirement use-case to create a client for a web API hosted on another server but cannot figure out how to pass the credentials in .NET Core to the other server, I just need to be able to construct a GET and a POST using C# into a remote server API and build some charting to display the results of the GET.

4

3 回答 3

1

如果您打算使用 .Net 6,则需要考虑 Identity Server 5 的定价模型。

作为免费的 Identity Server 4,不支持 .Net 6。

如果您的收入低于 100 万美元,Identity Server 5 的许可证仅对非商业项目和商业项目免费。如果您根据该许可证制作,则似乎在许可证中只能免费使用 1 年。

这是 OpenIddict 的一大优势,因为它是免费的。

身份服务器 5 定价

于 2021-10-11T10:15:21.853 回答
1

您可以设置 cookie,然后重定向到子域。这种方法的好处是它可以防止 Pinpiont 指出的 XSRF/会话固定攻击。缺点是两个站点都必须驻留在某个域上。

    [RequireHttps]
    public IActionResult Redirect()
    {
        var token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...";
        const string domain = "subdomain.example.com";

        Response.Cookies.Append("token", token, new CookieOptions {
            Domain = domain,
            Expires = DateTime.Now.AddHours(1),
            HttpOnly = true,
            Path = new PathString("/Account"),
            Secure = true,
        });

        return Redirect($"https://{domain}/Account");
    }
于 2017-10-02T09:36:21.180 回答
0

如果您已经拥有令牌,则不需要 IdentityServer4 或 OpenIddict。IdentityServer4 和 OpenIddict 会根据请求发布令牌,但您似乎已经在本地自己发布了它们。

我使用通过 HTTPS 进行 POST 的表单将我的令牌从站点 A 发送到站点 B。

<form action="https://other-server.example.com/Account/" method="post" id="form">
  <input name="token" type="hidden" value="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...">
</form>

您还可以使用 JavaScript 自动提交表单。

<script>
  document.getElementById('form').submit();
</script>
于 2017-09-20T14:29:31.890 回答