我们正在研究通过发送用户UID从ADFS 2016通过webservice调用请求JWT令牌的方法,该用户UID存储在数据库或AD LDS中。令牌应包含完整的域用户名作为声明。 C#服务将在没有用户GUI交互(ID卡提供的UID)的情况下请求令牌,然后将其转发到Intranet Web应用程序。
这是否可以在ADFS 2016中使用OAuth 2.0或WS-Trust 1.3,以及将涉及哪些步骤?
目前我已尝试使用OAuth 2.0(HTTP POST到/ adfs / oauth2 / token),但尚未能正确配置ADFS(应用程序组,中继方......)并发送正确的通过提供用户名/密码甚至获取令牌的HTTP参数。
如果有人能指出我正确的方向,那就太好了。
修改
我们想要实现的更详细的描述:
目标是创建一个处理NFC卡登录的Windows服务,并将带有用户信息的JWT发送到任意Web应用程序。
C#windows服务从NFC读卡器读取卡UID。
Windows服务通过提供卡UID从ADFS请求JWT。这可以是OAuth或WS-Trust,无论哪个都有效。
ADFS从机密数据库中查找卡片UID。数据库条目还包含用户名。然后,它可以通过在ADLDS中查找域用户来进一步丰富此数据。
ADFS创建至少包含域用户名的令牌,并将其发送回C#windows服务。无需与ADFS登录屏幕进行用户交互。
Windows服务接收令牌并将其转发给预配置的Web应用程序登录处理程序。
Web应用程序验证令牌签名并处理登录。
这种情况下的凭证只是卡片UID。这可能与ADFS一起使用吗?如果没有,我的备份计划是直接在我的Windows服务中创建令牌。