我想弄清楚,Windows 身份验证是否可以使用资源所有者密码凭据流?我知道 ROPC 不是推荐的方法,但我确实需要这样做。我如何通过 Windows 凭据从我的客户端应用程序进行身份验证?,我通过数据库拥有自己的自定义身份验证机制,(例如,我将检查特定的 Windows 帐户用户是否具有特定的角色),我的障碍是如何通过 Windows 凭据或 Windows 身份到身份服务器进行身份验证,而无需在 UI 上进行任何用户交互?,这可能吗?或者如果我需要改变方向来实现它,如果不能通过授权类型密码(ROPC)?或者我需要采取不同的方法。
通过客户端应用程序从身份服务器获取访问令牌的代码
我尝试过这种方法,但它不起作用。
HttpClientHandler handler = new HttpClientHandler()
{
UseDefaultCredentials = true
};
handler.PreAuthenticate = true;
var client = new HttpClient(handler);
var disco = await client.GetDiscoveryDocumentAsync(_options.AuthorityUrl);
if (disco.IsError) throw new Exception(disco.Error);
var response1 = await client.RequestPasswordTokenAsync(new PasswordTokenRequest
{
Address = disco.TokenEndpoint,
ClientId = clientId,
ClientSecret = secret,
Scope = "LocalApi",
UserName = username,
Password = password,
Parameters =
{
//type of authentication
{ "AuthenticationMethod",authenticationMode},
}
});