我们正尝试使用带ADFS的OAuth预身份验证在Web应用程序代理后面建立一个后端Web服务站点。
首先在ADFS中,我们创建了一个应用程序组(本机应用程序访问Web API),然后使用OAuth预身份验证将其发布到WAP中,然后选择适当的ADFS应用程序组。
出于测试目的,我们使用fiddler尝试从该站点请求资源,并获得带有以下标头的401(这是我们目前所期望的)
WWW-Authenticate: Bearer authorization_uri=https://[OUR_ADFS_SERVER]/adfs/oauth2/authorize
使用 ADAL 库中的AuthenticationContext.AcquireTokenAsync
方法,指定授权URI和ADFS应用程序组的已定义参数,然后从ADFS收到有效的JWT。
当我们尝试使用JWT请求受保护的资源时,会出现问题,我们使用以下http标头Authorization: Bearer [JWT]
来指定它,但是我们仍然收到401,并且WAP在其事件日志中具有以下警告: / p>
Web Application Proxy received a request with a nonvalid edge token.
The token is not valid because it could not be parsed.
Error: Edge Token validation failed. Failed to serialize JSON object. Exception: The input
is not a valid Base-64 string as it contains a non-base 64 character, more than two
padding characters, or an illegal character among the padding characters.
Token:
[JWT DUMP]
Received token:
[JWT DUMP]