From 168dc75f96ed32942a21a2d5bc03419d74a12f67 Mon Sep 17 00:00:00 2001 From: Maxime Besson Date: Wed, 18 Mar 2020 21:03:52 +0100 Subject: [PATCH] OIDC: return id_token in hybrid flow (#2120) --- .../lib/Lemonldap/NG/Portal/Lib/OpenIDConnect.pm | 5 +++++ lemonldap-ng-portal/t/32-Auth-and-issuer-OIDC-hybrid.t | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Lib/OpenIDConnect.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Lib/OpenIDConnect.pm index ba7061c36..8d8e317c8 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Lib/OpenIDConnect.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Lib/OpenIDConnect.pm @@ -383,6 +383,11 @@ sub buildHybridAuthnResponse { ? ( token_type => 'bearer', access_token => $access_token ) : () ), + ( + $id_token + ? ( id_token => $id_token ) + : () + ), ( $expires_in ? ( expires_in => $expires_in ) : () ), ( $state ? ( state => $state ) : () ), ( $session_state ? ( session_state => $session_state ) : () ) diff --git a/lemonldap-ng-portal/t/32-Auth-and-issuer-OIDC-hybrid.t b/lemonldap-ng-portal/t/32-Auth-and-issuer-OIDC-hybrid.t index ca6b1612b..9f8778aa7 100644 --- a/lemonldap-ng-portal/t/32-Auth-and-issuer-OIDC-hybrid.t +++ b/lemonldap-ng-portal/t/32-Auth-and-issuer-OIDC-hybrid.t @@ -193,9 +193,10 @@ my %prms = map { split /=/, $_ } split /&/, $query; ok( $prms{token_type}, ' token_type found' ); ok( $prms{session_state}, ' session_state found' ); ok( $prms{access_token}, ' access_token found' ); +ok( $prms{id_token}, ' id_token found' ); ok( $prms{state}, ' state found' ); ok( $prms{session_state}, ' session_state found' ); -count(5); +count(6); my $at; ok( $at = $rp->p->_userDB->getUserInfo( 'op', $prms{access_token} ),