ADFS vNext客户端身份验证(WPF)(Windows Server 2016预览版3)
我有一个配置了ADFS vNext的Windows Server 2016 TechnicalPreview 3,作为第一个客户端,我创建了一个MVC应用程序作为ReplingPartyTrust。 ADF的身份验证在MVC应用程序中非常有效。 现在来看问题:我已经编写了一个本机应用程序(WPF),我想对其进行ADF身份验证。 我采取的步骤是:ADFS vNext客户端身份验证(WPF)(Windows Server 2016预览版3),wpf,powershell,authentication,oauth,adfs,Wpf,Powershell,Authentication,Oauth,Adfs,我有一个配置了ADFS vNext的Windows Server 2016 TechnicalPreview 3,作为第一个客户端,我创建了一个MVC应用程序作为ReplingPartyTrust。 ADF的身份验证在MVC应用程序中非常有效。 现在来看问题:我已经编写了一个本机应用程序(WPF),我想对其进行ADF身份验证。 我采取的步骤是: 为了通知ADF我的新WPF客户端,我运行了以下PowerShell脚本: 添加ADFSClient-ClientType Public-名称“MyCli
字符串权限=”https://win2016preview.server.local/adfs/ls";
字符串resourceURI=”https://adfs.server.local/MyMVCApp";
字符串clientReturnURI=”https://e1cf1107-ff90-4228-93bf-26052dd2c714/redir";
字符串clientID=“E1CF1107-FF90-4228-93BF-26052DD2C714”;
var ac=新的AuthenticationContext(authority,false);
var ar=await ac.AcquireTokenAsync(resourceURI、clientID、new
Uri(clientReturnURI),
新平台参数(PromptBehavior.Auto,新
WindowInteropHelper(this.Handle));
有了这段代码,客户机应该在ADF(我认为是通过OAuth)进行身份验证,并提示用户输入他的组织凭据。
如果我运行该应用程序,将显示此窗口:
我选择Yes(Ja)并打开凭证提示。同时发生以下异常
在事件日志中,如果服务器ADFS出现以下错误消息:
Microsoft.IdentityServer.Web.Protocols.OAuth.Exceptions.OAuthAuthorizationUnauthorizedClient异常:MSIS9321:收到无效的OAuth请求。客户端“E1CF1107-FF90-4228-93BF-26052DD2C714”被禁止访问资源”。
位于Microsoft.IdentityServer.Web.Protocols.OAuth.OAuthAuthorization.OAuthAuthorizationRequestContext.ValidateCore()
在Microsoft.IdentityServer.Web.Protocols.ProtocolContext.Validate()上
位于Microsoft.IdentityServer.Web.Protocols.OAuth.OAuthAuthorization.OAuthAuthorizationProtocolHandler.GetRequiredPipelineBehaviors(ProtocolContext pContext)
位于Microsoft.IdentityServer.Web.PassiveProtocolListener.GatherDeviceSecurityToken(ProtocolContext ProtocolContext,PassiveProtocolHandler protocolHandler)
位于Microsoft.IdentityServer.Web.PassiveProtocolListener.OnGetContext(WrappedHttpListenerContext上下文)
据我所知,ADFS识别客户机Id并尝试对其进行身份验证。但ADFS拒绝了客户。
我忘记配置什么了吗?客户端应该只提示用户,用户根据ADF进行身份验证,这样客户端就可以拥有AuthenticationToken
我希望你能跟我来。提前谢谢你 解决方案非常简单:) 添加属性IssuanceAuthorizationRules(添加ADFSRelyingPartyTrust)
-IssuanceAuthorizationRules'=>issue(Type=”“value=“true”);' 当我尝试上述操作时,我在powershell上获得了以下信息“PS0238:不应将授权或身份验证规则与访问控制策略一起配置”,因此您必须使用powershell并从此RPT中删除“访问控制策略”,然后仅尝试此命令,在Windows 2016 RTM上使用ADFS时,我仍然收到相同的错误MSIS9321,这不再有效。我在这里复制了这段代码,并使用-IssuanceAuthorizationRules尝试了默认的访问权限(允许所有人)和此处指定的权限,并且使用这两种权限,我继续得到“MSIS9321:接收到无效的OAuth请求。客户端被禁止访问资源”错误。