Hi
I need some help with OpenID Connect setup.
I have my cas 6.1 instance configured with OIDC. I can authenticate my user with
Then when trying to to get an authorization_code from it i get a 403
curl --location --request POST 'https://demo.domain.co.za/cas/oidc/token' \
--header 'Authorization: Basic Y2xpZW50OnNlY3JldA==' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'code=OC-1-9RHILYUUElF6YCOeWqSnK0BxuK8l1-bf' \
--data-urlencode 'grant_type=authorization_code' \
--data-urlencode 'redirect_uri=https://the-redirect-uri'
{"timestamp":"2020-05-19T09:33:21.868+0000","status":403,"error":"Forbidden","message":"No message available","path":"/cas/oidc/token"}
(The Authorization header does seem to work. I have the clientId and client Secret in there. And if I change it I get a 401)
I do not have any additional settings for OIDC in cas config, and I have json service definition with the following
{
"@class" : "org.apereo.cas.services.OidcRegisteredService",
"clientId": "client",
"clientSecret": "secret",
"serviceId" : "https://the-redirect-uri",
"name": "OIDC Test",
"id": 60,
"supportedResponseTypes": [ "java.util.HashSet", [ "code" ] ],
"supportedGrantTypes": [ "java.util.HashSet", [ "authorization_code" ] ],
}
Any ideas what the issue with the 403 could be?
I'm running in debug mode and also couldn't find any useful logging.. This is the output during the request for the authorization_code.
2020-05-19 11:38:52,750 DEBUG [org.apereo.cas.support.oauth.web.endpoints.OAuth20AuthorizeEndpointController] - <Building authorization response for grant type [AUTHORIZATION_CODE] with scopes [[openid]] for client id [client]>
2020-05-19 11:38:52,751 DEBUG [org.apereo.cas.support.oauth.web.response.callback.OAuth20AuthorizationCodeAuthorizationResponseBuilder] - <Generated OAuth code: [OC-1-ZUSkKuijTf-JvqqPijjsEaMrVxRSRPGb]>
2020-05-19 11:38:52,758 DEBUG [org.apereo.cas.ticket.registry.JpaTicketRegistry] - <Added ticket [OC-1-ZUSkKuijTf-JvqqPijjsEaMrVxRSRPGb] to registry.>
2020-05-19 11:38:52,783 DEBUG [org.apereo.cas.support.oauth.web.response.callback.OAuth20AuthorizationCodeAuthorizationResponseBuilder] - <Authorize request successful for client [client] with redirect uri [https://the-redirect-uri]>
2020-05-19 11:38:52,783 DEBUG [org.apereo.cas.support.oauth.web.response.callback.OAuth20AuthorizationCodeAuthorizationResponseBuilder] - <Redirecting to URL [https://the-redirect-uri?code=OC-1-ZUSkKuijTf-JvqqPijjsEaMrVxRSRPGb&state=af0ifjsldkj]>
2020-05-19 11:38:52,786 DEBUG [org.apereo.cas.support.oauth.util.OAuth20Utils] - <OAuth response type is [NONE]>
2020-05-19 11:39:06,232 DEBUG [org.apereo.cas.support.oauth.authenticator.OAuth20ClientIdClientSecretAuthenticator] - <Authenticating credential [#UsernamePasswordCredentials# | username: client | password: [PROTECTED] |]>
2020-05-19 11:39:06,232 DEBUG [org.apereo.cas.support.oauth.authenticator.OAuth20ClientIdClientSecretAuthenticator] - <Checking if the OAuth code issued contains code challenge>
2020-05-19 11:39:06,245 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - <Audit trail record BEGIN
=============================================================
WHO: audit:unknown
WHAT: [result=Service Access Granted,service=https://the-redirect-uri,requiredAttributes={}]
ACTION: SERVICE_ACCESS_ENFORCEMENT_TRIGGERED
APPLICATION: CAS
WHEN: Tue May 19 11:39:06 SAST 2020
CLIENT IP ADDRESS: 172.18.0.1
SERVER IP ADDRESS: 192.168.1.111
=============================================================
>
2020-05-19 11:39:06,245 DEBUG [org.apereo.cas.support.oauth.util.OAuth20Utils] - <Found: [OidcRegisteredService(super=OAuthRegisteredService(super=AbstractRegisteredService(serviceId=https://the-redirect-uri, name=OIDC Test, theme=null, informationUrl=null, privacyUrl=null, responseType=null, id=60, description=null, expirationPolicy=DefaultRegisteredServiceExpirationPolicy(deleteWhenExpired=false, notifyWhenDeleted=false, notifyWhenExpired=false, expirationDate=null), proxyPolicy=org.apereo.cas.services.RefuseRegisteredServiceProxyPolicy@1, proxyTicketExpirationPolicy=null, serviceTicketExpirationPolicy=null, singleSignOnParticipationPolicy=null, evaluationOrder=0, usernameAttributeProvider=org.apereo.cas.services.DefaultRegisteredServiceUsernameProvider@87297e2, logoutType=BACK_CHANNEL, requiredHandlers=[], environments=[], attributeReleasePolicy=ReturnAllowedAttributeReleasePolicy(super=AbstractRegisteredServiceAttributeReleasePolicy(attributeFilter=null, principalAttributesRepository=DefaultPrincipalAttributesRepository(), consentPolicy=DefaultRegisteredServiceConsentPolicy(enabled=true, excludedAttributes=null, includeOnlyAttributes=null, order=0), authorizedToReleaseCredentialPassword=false, authorizedToReleaseProxyGrantingTicket=false, excludeDefaultAttributes=false, authorizedToReleaseAuthenticationAttributes=true, principalIdAttribute=null, order=0), allowedAttributes=[]), multifactorPolicy=DefaultRegisteredServiceMultifactorPolicy(multifactorAuthenticationProviders=[], failureMode=UNDEFINED, principalAttributeNameTrigger=null, principalAttributeValueToMatch=null, bypassEnabled=false, forceExecution=false, bypassTrustedDeviceEnabled=false), logo=null, logoutUrl=null, accessStrategy=DefaultRegisteredServiceAccessStrategy(order=0, enabled=true, ssoEnabled=true, unauthorizedRedirectUrl=null, delegatedAuthenticationPolicy=DefaultRegisteredServiceDelegatedAuthenticationPolicy(allowedProviders=[], permitUndefined=true, exclusive=false), requireAllAttributes=true, requiredAttributes={}, rejectedAttributes={}, caseInsensitive=false), publicKey=null, properties={}, contacts=[]), clientSecret=secret, clientId=client, bypassApprovalPrompt=false, generateRefreshToken=false, renewRefreshToken=false, jwtAccessToken=false, codeExpirationPolicy=null, accessTokenExpirationPolicy=null, refreshTokenExpirationPolicy=null, deviceTokenExpirationPolicy=null, supportedGrantTypes=[authorization_code], supportedResponseTypes=[code]), jwks=null, jwksCacheDuration=0, jwksCacheTimeUnit=null, tokenEndpointAuthenticationMethod=client_secret_basic, signIdToken=true, encryptIdToken=false, idTokenEncryptionAlg=null, idTokenSigningAlg=null, userInfoSigningAlg=null, userInfoEncryptedResponseAlg=null, userInfoEncryptedResponseEncoding=null, idTokenEncryptionEncoding=null, sectorIdentifierUri=null, applicationType=web, subjectType=public, dynamicallyRegistered=false, implicit=false, dynamicRegistrationDateTime=null, scopes=[])] in secret check>
2020-05-19 11:39:06,246 DEBUG [org.apereo.cas.support.oauth.authenticator.OAuth20ClientIdClientSecretAuthenticator] - <Authenticated user profile [#CommonProfile# | id: client | attributes: {} | roles: [] | permissions: [] | isRemembered: false | clientName: null | linkedId: null |]>