密码授予类型OpenID的方法与Windows身份验证(NTLM)连接

时间:2019-10-21 05:37:48

标签: oauth-2.0 jwt ntlm ntlm-authentication

我正在尝试使用Windows集成安全性(NTLM)来实现JWT身份验证服务器。

我计划以OpenID Connect资源所有者的密码凭证授予(又名密码授予)为基础,并查看我是否可以使其适应于集成安全性。基本上,我想从iis(使用ntlm)获取用户,而不是从POST的主体参数中读取用户。

这是我从FusionAuth docs获得的样本:

POST /oauth2/token HTTP/1.1
Host: piedpiper.fusionauth.io
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 436
client_id=3c219e58-ed0e-4b18-ad48-f4f92793ae32&
grant_type=password&
username=richard%40piedpiper.com&
password=disrupt&
scopes=offline_access

应该返回类似

的内容
{
  "access_token" : "eyJ[...]kZo",
  "expires_in" : 3600,
  "refresh_token": "Nu0[...]xuw",
  "token_type" : "Bearer",
  "userId" : "3b6d2f70-4821-4694-ac89-60333c9c4165"
}

我正计划在iisnode后面运行的node.js实施类似的事情,并使用升级后的变量(请点击this链接)来获取当前的Windows用户

我在想这样的事情:

POST /oauth2/ntlm/token HTTP/1.1
Host: authserver.myproject.io
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 436
client_id=3c219e58-ed0e-4b18-ad48-f4f92793ae32&
grant_type=ntlm&
scopes=offline_access

我只是传递客户ID,所需的作用域和值ntlm的自定义授予类型。我的节点项目将在/ oauth2 / ntlm / token上侦听,我将获得当前登录的用户检查标题AUTH-USER,并使用该信息创建JWT。

我找不到有关将NTLM与JWT集成的太多信息。我想知道这是否是正确的方法,或者是否有更好/更标准的方法来做到这一点。

0 个答案:

没有答案