ADFS ADAL 当前用户 windows 服务
ADFS ADAL current user windows service
我正在尝试使用 ADFS 3.0 和当前用户的凭据针对 (ASP.net) Web API 验证 Windows 服务(因此非交互式)。
这是否可能,如果可能,下面的方法是否正确?
当 运行 作为控制台应用程序时,我可以使用显示登录屏幕的 AcquireTokenAsync 重载成功获取 (JWT) 令牌,然后自动以当前用户身份登录并在没有交互的情况下消失。这显然不适合 Windows 服务(并且会在非交互模式下抛出有关显示 UI 的错误)。
我们在 ADFS 服务器中收到以下错误 Windows 日志:
Encountered error during federation passive request.
Microsoft.IdentityServer.RequestFailedException: MSIS7065: There are no registered protocol handlers on path /adfs/oauth2/token to process the incoming request.
at Microsoft.IdentityServer.Web.PassiveProtocolListener.OnGetContext(WrappedHttpListenerContext context)
这是从 POST 到 /adfs/oauth2/token HTTP/1.1:
resource=https%3A%2F%2Fadfs-server%2Fapi_name&client_id=983EB4F7-A4D1-4897-A2BD-5D6C268A5813&scope=opened
这导致 HTML 文件说发生了错误。
由以下代码生成:
var authenticationContext = new AuthenticationContext("https://adfs-server/adfs", validateAuthority: false); //validate authority can only be true with Azure AD
var tokenResult = await authenticationContext.AcquireTokenAsync("https://adfs-server/api_name", "983EB4F7-A4D1-4897-A2BD-5D6C268A5813", new UserCredential()); //use current login -- this line fails
request.Headers.Add("Authorization", tokenResult.CreateAuthorizationHeader());
我们使用的版本是:
- ADAL.net (Microsoft.IdentityModel.Clients.ActiveDirectory) 3.13.9
- ADFS 3.0(Windows 服务器 2012 R2)
- .net Framework 4.6.2
- Windows 10(创意者更新 - 1703)
根据 this article.
,ADFS 3.0 仅支持通过网络 API 授予授权码
看看那个post任何问题。
我正在尝试使用 ADFS 3.0 和当前用户的凭据针对 (ASP.net) Web API 验证 Windows 服务(因此非交互式)。
这是否可能,如果可能,下面的方法是否正确?
当 运行 作为控制台应用程序时,我可以使用显示登录屏幕的 AcquireTokenAsync 重载成功获取 (JWT) 令牌,然后自动以当前用户身份登录并在没有交互的情况下消失。这显然不适合 Windows 服务(并且会在非交互模式下抛出有关显示 UI 的错误)。
我们在 ADFS 服务器中收到以下错误 Windows 日志:
Encountered error during federation passive request.
Microsoft.IdentityServer.RequestFailedException: MSIS7065: There are no registered protocol handlers on path /adfs/oauth2/token to process the incoming request.
at Microsoft.IdentityServer.Web.PassiveProtocolListener.OnGetContext(WrappedHttpListenerContext context)
这是从 POST 到 /adfs/oauth2/token HTTP/1.1:
resource=https%3A%2F%2Fadfs-server%2Fapi_name&client_id=983EB4F7-A4D1-4897-A2BD-5D6C268A5813&scope=opened
这导致 HTML 文件说发生了错误。
由以下代码生成:
var authenticationContext = new AuthenticationContext("https://adfs-server/adfs", validateAuthority: false); //validate authority can only be true with Azure AD
var tokenResult = await authenticationContext.AcquireTokenAsync("https://adfs-server/api_name", "983EB4F7-A4D1-4897-A2BD-5D6C268A5813", new UserCredential()); //use current login -- this line fails
request.Headers.Add("Authorization", tokenResult.CreateAuthorizationHeader());
我们使用的版本是:
- ADAL.net (Microsoft.IdentityModel.Clients.ActiveDirectory) 3.13.9
- ADFS 3.0(Windows 服务器 2012 R2)
- .net Framework 4.6.2
- Windows 10(创意者更新 - 1703)
根据 this article.
,ADFS 3.0 仅支持通过网络 API 授予授权码看看那个post任何问题。