首页 > 解决方案 > 针对 ADFS 2016 的 Spring-Security 5 OAuth2 身份验证

问题描述

我正在尝试设置我的 spring-boot 2.2.0 应用程序以使用 OAuth2 在我的 ADFS 2016 上对用户进行身份验证。

不幸的是,它无法正常工作,因为 AFS 在每次请求时都会给我这个错误:

MSIS9604:发生错误。授权服务器无法完成请求。

在 ADFS 事件日志中,我有这个:

System.ArgumentNullException: Value cannot be null.

Parameter name: issuer

   at Microsoft.IdentityModel.Tokens.JSON.JsonWebSecurityToken.Initialize(String issuer, String audience, DateTime validFrom, DateTime validTo, IEnumerable`1 claims)    
   at Microsoft.IdentityModel.Tokens.JSON.JsonWebSecurityToken..ctor(String issuer, String audience, DateTime validFrom, DateTime validTo, SigningCredentials signingCredentials, IEnumerable`1 claims)    
   at Microsoft.IdentityServer.Web.Protocols.OAuth.OAuthProtocolHandler.CreateIdToken(String clientId, String nonce, SessionSecurityToken ssoToken, JsonWebSecurityToken accessToken, List`1 userInfoClaims)    
   at Microsoft.IdentityServer.Web.Protocols.OAuth.OAuthProtocolHandler.BuildTokenResponseWithSerializedToken(OAuthProtocolContext context, WrappedHttpListenerContext httpContext, Uri originalRequestBaseUri, SecurityTokenElement signOnTokenElement, ArtifactSecurityTokenType originalTokenType, String clientId, String clientRedirectUri, String resource, Boolean isKmsiRequested, String authMethod)    
   at Microsoft.IdentityServer.Web.Protocols.OAuth.OAuthAuthorization.OAuthAuthorizationProtocolHandler.CreateAuthorizationResponseMessage(OAuthAuthorizationRequestContext authorizationContext, SecurityToken ssoSecurityToken, Boolean ssoSignInAttempted)

这个发行人参数是什么?是否有可用于将 spring-security 5 Oauth2 连接到 ADFS 2016 的代码示例?

标签: spring-bootspring-securityoauth-2.0spring-security-oauth2adfs

解决方案


推荐阅读