尝试获取令牌时,带有用户凭据抛出错误的AcquireToken方法

时间:2019-05-07 06:34:37

标签: c# authentication jwt adal adfs3.0

我正在尝试使用用户凭据从ADFS服务器获取令牌,然后抛出此错误MSIS9605:不允许客户端访问所请求的资源。我正在尝试从预置ADFS服务器上获取令牌。

1 个答案:

答案 0 :(得分:0)

您需要创建一个规则,以根据传入的声明允许或拒绝用户。

在Windows Server中,您可以使用访问控制策略来创建一个规则,该规则将基于传入的声明来允许或拒绝用户。另外,您可以允许所有用户访问依赖方,使用“允许所有人访问控制策略”或“允许所有用户”规则模板

有关使用AD FS管理创建规则的信息,请参阅下面的文章。

https://technet.microsoft.com/en-us/windows-server-docs/identity/ad-fs/operations/create-a-rule-to-permit-or-deny-users-based-on-an-incoming-claim?f=255&MSPPError=-2147217396

或者您也可以将以下命令与在PowerShell中运行的相关参数一起使用。

Add-ADFSRelyingPartyTrust -Name "Fabrikam" -MetadataURL "https://fabrikam.com/federationmetadata/2007-06/federationmetadata.xml" -IssuanceAuthorizationRules '=> issue(Type ="http://schemas.microsoft.com/authorization/claims/permit", value="true");'

在Windows服务器上,即使将访问策略设置为“允许所有人”,您也需要显式授予客户端对资源的权限。

尝试以下命令:

Grant-AdfsApplicationPermission -ClientRoleIdentifier "clientName" -ServerRoleIdentifier "https://service.url"

希望有帮助。