有什么方法可以支持 WIF 4.5 上的 JWTSecurityTokenHandler 吗?
Is there any way I can support JWTSecurityTokenHandler on WIF 4.5?
我想在使用 WIF 4.5 的 WebAPI 应用程序上支持 JWT(Json Web 令牌)。
我正在使用 System.IdentityModel.Tokens.Jwt 5.0.0 nuget 包,它有一个 JWTSecurityTokenHandler
似乎与旧版本的 WIF 集成。
问题是处理程序派生了 Microsoft.IdentityModel.Tokens.SecurityTokenHandler
,而不是配置部分所期望的来自 System.IdentityModel.Tokens.SecurityTokenHandler
。
因此我得到一个可以理解的异常:
Parser Error Message: ID1029: The custom type is not suitable because it does not extend the correct base class.
CustomType: 'System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler, System.IdentityModel.Tokens.Jwt, Version=5.0.0.127, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
BaseClass: 'System.IdentityModel.Tokens.SecurityTokenHandler'
我的配置如下:
<system.identityModel>
<identityConfiguration>
<audienceUris>
<add value="http://localhost:49482/" />
</audienceUris>
<securityTokenHandlers>
<add type="System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler, System.IdentityModel.Tokens.Jwt" />
<securityTokenHandlerConfiguration>
<certificateValidation certificateValidationMode="PeerTrust" />
</securityTokenHandlerConfiguration>
</securityTokenHandlers>
</identityConfiguration>
</system.identityModel>
如何在 WIF 4.5 上支持 JWT?有什么办法可以使用这个包来做到这一点吗?我做错了什么吗?
这个包是针对 .net 标准 1.4 编写的,它不包含 System.IdentityModel
API,所以这个包没有与 WIF 集成。
基于https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/issues/94,如果你想通过WIF配置使用System.IdentityModel,你需要回到包的3.x版本。
您当然可以始终编写自己的 System.IdentityModel.Tokens.SecurityTokenHandler
实现来包装 Microsoft.IdentityModel.Tokens.SecurityTokenHandle
我想在使用 WIF 4.5 的 WebAPI 应用程序上支持 JWT(Json Web 令牌)。
我正在使用 System.IdentityModel.Tokens.Jwt 5.0.0 nuget 包,它有一个 JWTSecurityTokenHandler
似乎与旧版本的 WIF 集成。
问题是处理程序派生了 Microsoft.IdentityModel.Tokens.SecurityTokenHandler
,而不是配置部分所期望的来自 System.IdentityModel.Tokens.SecurityTokenHandler
。
因此我得到一个可以理解的异常:
Parser Error Message: ID1029: The custom type is not suitable because it does not extend the correct base class.
CustomType: 'System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler, System.IdentityModel.Tokens.Jwt, Version=5.0.0.127, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
BaseClass: 'System.IdentityModel.Tokens.SecurityTokenHandler'
我的配置如下:
<system.identityModel>
<identityConfiguration>
<audienceUris>
<add value="http://localhost:49482/" />
</audienceUris>
<securityTokenHandlers>
<add type="System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler, System.IdentityModel.Tokens.Jwt" />
<securityTokenHandlerConfiguration>
<certificateValidation certificateValidationMode="PeerTrust" />
</securityTokenHandlerConfiguration>
</securityTokenHandlers>
</identityConfiguration>
</system.identityModel>
如何在 WIF 4.5 上支持 JWT?有什么办法可以使用这个包来做到这一点吗?我做错了什么吗?
这个包是针对 .net 标准 1.4 编写的,它不包含 System.IdentityModel
API,所以这个包没有与 WIF 集成。
基于https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/issues/94,如果你想通过WIF配置使用System.IdentityModel,你需要回到包的3.x版本。
您当然可以始终编写自己的 System.IdentityModel.Tokens.SecurityTokenHandler
实现来包装 Microsoft.IdentityModel.Tokens.SecurityTokenHandle