Подход для реализации паролей типа предоставления OpenID с подключением Windows аутентификации (NTLM) - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь реализовать сервер аутентификации JWT, используя встроенную безопасность Windows (NTLM).

Я планирую взять в качестве основы предоставление учетных данных для пароля владельца ресурса 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"
}

Я планировал реализовать что-то подобное с помощью node.js, работающего за iisnode, и получить текущего пользователя 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

Я просто передаю идентификатор клиента, нужные области действия и пользовательский тип предоставления с помощьюзначение ntlm. Мой проект узла будет прослушивать / oauth2 / ntlm / token, я получу текущего зарегистрированного пользователя, проверяющего заголовок AUTH-USER, и с этой информацией я создам JWT.

Я не смог найти многоинформация об интеграции NTLM с JWT. Интересно, это правильный подход или есть лучший / более стандартный способ сделать это.

...