Sounds great It is a pleasure to assist. On Monday, November 20, 2023 at 10:32:41 AM UTC+3:30 Udo Einspanier wrote:
> Yes, switching to BACK_CHANNEL solved the problem! I think I configured it > as FRONT_CHANNEL initially because the client is a UI without any > server-side components, so back channel did not make much sense. I did not > think about the redirect. > The unsupported token revocation is currently no problem for our app, > because the token is correctly removed during SLO. I don't think we have a > use case where the access token has be revoked separately. But still good > to know that this is a limitation for now. > > Thanks again for your help, > Udo > > On Friday, November 17, 2023 at 7:21:45 PM UTC+1 Meysam Shirazi wrote: > >> It appears that CAS displays the logout request on the logout page when >> using front channel logout. For auto redirect logout, use "logoutType": >> "BACK_CHANNEL" in the service definition. >> Yes, it appears that revoking by jwt token is not yet implemented. >> Concerning the logout endpoint, I just realized that the >> cas.logout.follow-service-redirects setting is being used for the CAS >> protocol with the /logout endpoint rather than the oidc protocol with the >> /oidcLogout endpoint. >> >> On Friday, November 17, 2023 at 5:30:02 PM UTC+3:30 Udo Einspanier wrote: >> >>> Thanks for patience and ongoing support. >>> >>> The redirect is not working as I expect. Expected behavior: the browser >>> is redirected automatically to the URL specified in >>> post_logout_redirect_uri. Actual behavior: CAS shows this page, where the >>> user has to manually click on the logout link that was supplied by the >>> client (GO TO ...). >>> [image: logout.png] >>> Is automatic redirect supported? If yes, do you know the required >>> configuration? >>> >>> No, the client does not receive an access token of the form "AT-...". We >>> have specified the access tokens to be encoded as JWT, via >>> "jwtAccessToken": true in the service definition. So the client sends the >>> JWT as "token" parameter to /revoke endpoint, which should be according to >>> the protocol specification. But my assumption is that CAS does not handle >>> JWT access tokens correctly during revoke. The >>> *access_tokensnkL58fGsQSM1f* that you mention is because I wanted to >>> replace the JWTs (id/acces_token) in the log with dummy values, because >>> they contain the server URL. >>> >>> Yes, I am aware that /logout is the endpoint to use for the CAS >>> protocol. But our client uses OIDC and not CAS protocol. So, it sends the >>> logout request to "end_session_endpoint" defined in >>> https://cas.server/cas/oidc/.well-known. Why would we require another >>> protocol just for the logout? >>> >>> On Thursday, November 16, 2023 at 10:18:57 PM UTC+1 Meysam Shirazi wrote: >>> >>>> Edit: ? --> : >>>> prefixes? (*TGT, ST, RT, AT, PT, TST, OC, SART, ODUC, PGT, SATQ, ODT*). >>>> --> prefixes: (*TGT, ST, RT, AT, PT, TST, OC, SART, ODUC, PGT, SATQ, >>>> ODT*). >>>> >>>> On Thursday, November 16, 2023 at 11:00:30 PM UTC+3:30 Meysam Shirazi >>>> wrote: >>>> >>>>> As you stated, the logout redirect is working: >>>>> *2023-11-15T09:49:04,668Z [http-nio-8080-exec-1] DEBUG >>>>> o.a.c.o.w.c.l.OidcLogoutEndpointController:145 eup.sso.cas {"message": >>>>> "Final logout redirect URL is >>>>> [https://cas.server/profile?client_id=test_jan >>>>> <https://cas.server/profile?client_id=test_jan>]"}* >>>>> Regarding the issue with revoking the access token, it appears that >>>>> the token is incorrect. Is there an access token >>>>> (AT-5-QAnGNlAgqS-HC5e0KuklngTKvA-ugvk5) that was erased following a >>>>> request >>>>> for a logout, but the client sent the incorrect token that begins with ( >>>>> *access_tokensnkL58fGsQSM1f...*) and is therefore not listed in the >>>>> ticket catalog because it does not begin with any of these ticket >>>>> prefixes? >>>>> (*TGT, ST, RT, AT, PT, TST, OC, SART, ODUC, PGT, SATQ, ODT*). >>>>> /logout endpoint, not /oidc/logout or /oidcLogout, is the default >>>>> logout url. It is the typical logout in CAS protocol >>>>> <https://apereo.github.io/cas/6.6.x/protocol/CAS-Protocol-Specification.html#23-logout> >>>>> >>>>> endpoint with a service parameter. >>>>> >>>>> On Wednesday, November 15, 2023 at 4:44:19 PM UTC+3:30 Udo Einspanier >>>>> wrote: >>>>> >>>>>> Thanks again. Agreed, that actually that looks like the redirect URI >>>>>> and logout URI must match. >>>>>> I found that the error in the logs appears not in the request to >>>>>> /oidcLogout, but to /revoke. Our client revokes the access token it >>>>>> received during login before sending the logout request, and that is >>>>>> where >>>>>> the error happens. So probably it is not related to the redirect problem >>>>>> (but still if you know why it happens would be good to know). >>>>>> I attached the debug log output for the revoke and succeeding logout >>>>>> request (replaced id_toke, access_token and host with dummy values). >>>>>> During >>>>>> logout I see at least this line which sounds like the >>>>>> post_logout_redirect_uri is fine: >>>>>> >>>>>> 2023-11-15T09:49:04,667Z [http-nio-8080-exec-1] DEBUG >>>>>> o.a.c.o.w.c.l.OidcLogoutEndpointController:107 eup.sso.cas {"message": >>>>>> "Requested logout URL [https://cas.server/profile] is authorized for >>>>>> redirects"} >>>>>> >>>>>> Not sure what you mean with "if you send the request to default >>>>>> /logout url". Shouldn't the OIDC logout request always be sent to the >>>>>> end_session_endpoint >>>>>> advertised in .well-known metadata? >>>>>> >>>>>> >>>>>> On Tuesday, November 14, 2023 at 8:06:28 PM UTC+1 Meysam Shirazi >>>>>> wrote: >>>>>> >>>>>>> About the logoutUrl I said that based on this parts of code: >>>>>>> [image: Untitled 2.png] >>>>>>> The ticket catalog error needs more details, so set cas.log.level to >>>>>>> debug or trace for more details. >>>>>>> >>>>>>> The configuration is *cas.logout.follow-service-redirects*, and the >>>>>>> default value is false, but I think it's working if you send the >>>>>>> request to >>>>>>> default /logout url. >>>>>>> On Tuesday, November 14, 2023 at 5:25:48 PM UTC+3:30 Udo Einspanier >>>>>>> wrote: >>>>>>> >>>>>>>> I also tried to always redirect to the same URL using redirect-url >>>>>>>> in the configuration, but this does not work eithr and shows the some >>>>>>>> logout page as before: >>>>>>>> >>>>>>>> cas: >>>>>>>> logout: >>>>>>>> followServiceRedirects: false >>>>>>>> removeDescendantTickets: true >>>>>>>> redirect-url: "https://..." >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Friday, November 10, 2023 at 8:56:25 AM UTC+1 Meysam Shirazi >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Hi Udo >>>>>>>>> Change *cas.log.level* to *debug *or make org.apereo.cas.oidc >>>>>>>>> log level to trace to see what happening. >>>>>>>>> common reason is post_logout_redirect_uri does not match service, >>>>>>>>> means post_logout_redirect_uri is not define as logoutUrl or matching >>>>>>>>> service id in your service definition. >>>>>>>>> >>>>>>>>> >>>>>>>>> On Friday, November 10, 2023 at 10:29:33 AM UTC+3:30 Udo >>>>>>>>> Einspanier wrote: >>>>>>>>> >>>>>>>>>> Hi Meysam, >>>>>>>>>> >>>>>>>>>> thanks for the quick reply. Yes, id_token_hint is part of the >>>>>>>>>> URL, I just left it out for brevity but should have included it. So >>>>>>>>>> here is >>>>>>>>>> the URL from CAS OIDC logout page with all parameters: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> https://.../cas/oidc/oidcLogout?id_token_hint=...&post_logout_redirect_uri=https://... >>>>>>>>>> >>>>>>>>>> But still no redirect from CAS to post_logout_redirect_uri. >>>>>>>>>> >>>>>>>>>> Any other ideas? >>>>>>>>>> >>>>>>>>>> Thanks, >>>>>>>>>> Udo >>>>>>>>>> >>>>>>>>>> On Friday, November 10, 2023 at 3:41:42 AM UTC+1 Meysam Shirazi >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> It needs idToken in id_token_hint url parameters) that contains >>>>>>>>>>> clientId, it can be the same id token that be retrieved in login >>>>>>>>>>> process. >>>>>>>>>>> On Thursday, November 9, 2023 at 4:20:04 PM UTC+3:30 Udo >>>>>>>>>>> Einspanier wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi, >>>>>>>>>>>> >>>>>>>>>>>> we have CAS 6.6 as OIDC provider. When our client initiates >>>>>>>>>>>> logout, it goes to >>>>>>>>>>>> https://.../cas/oidc/oidcLogout?post_logout_redirect_uri=https:/... >>>>>>>>>>>> >>>>>>>>>>>> In the YAML configuration we have: >>>>>>>>>>>> >>>>>>>>>>>> cas: >>>>>>>>>>>> logout: >>>>>>>>>>>> followServiceRedirects: true >>>>>>>>>>>> removeDescendantTickets: true >>>>>>>>>>>> >>>>>>>>>>>> I would expect CAS to redirect to the URL in parameter >>>>>>>>>>>> post_logout_redirect_uri, but instead >>>>>>>>>>>> shows a logout page titled "Logout successful" where the user >>>>>>>>>>>> can click on the logout URL >>>>>>>>>>>> specified in the logout request. >>>>>>>>>>>> Is there some additional setting required for OIDC, or are we >>>>>>>>>>>> missing something to allow automatic >>>>>>>>>>>> redirect without user interaction? >>>>>>>>>>>> >>>>>>>>>>>> Thanks and best regards, >>>>>>>>>>>> Udo >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- - Website: https://apereo.github.io/cas - Gitter Chatroom: https://gitter.im/apereo/cas - List Guidelines: https://goo.gl/1VRrw7 - Contributions: https://goo.gl/mh7qDG --- You received this message because you are subscribed to the Google Groups "CAS Community" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/a/apereo.org/d/msgid/cas-user/b3122836-0a20-48ce-92cc-d4fce4ead7f3n%40apereo.org.
