哪一个最容易设置服务器到服务器的JWT?我已经有一个现有的JWT令牌,我需要设置整个服务器才能通过令牌吗?
我有一个要求用例为另一台服务器上托管的Web API创建客户端,但无法弄清楚如何将.NET Core中的凭据传递给其他服务器,我只需要能够构建一个GET和一个使用C#进入远程服务器API的POST,并构建一些图表来显示GET的结果。
答案 0 :(得分:0)
如果您已有令牌,那么您不需要IdentityServer4或OpenIddict。 IdentityServer4和OpenIddict会根据请求发出令牌,但您似乎已经在本地发布了这些令牌。
我使用通过HTTPS执行POST的表单将我的令牌从站点A发送到站点B.
const inputs = document.querySelectorAll('input[type=checkbox]');
function disableCheckbox() {
this.disabled = true;
}
inputs.forEach(input => input.addEventListener('click', disableCheckbox));
您还可以使用JavaScript自动提交表单。
<form action="https://other-server.example.com/Account/" method="post" id="form">
<input name="token" type="hidden" value="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...">
</form>
答案 1 :(得分:0)
您可以设置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");
}