feat: new endpoints(/login, /userinfo, /v2/logout) #11
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue Item:
Background:
/login
and/userinfo
endpoints for client apps (SPA) to interact with./login
function as part of relying party when a user clicks on login button from the landing page./userinfo
function as part of relying party when a user wants to verify the session cookie created by NGINX Plus is still valid or to get some user info about users which is needed for the Client Apps./logout
function is required to extend the sign-off function on the IdP'send_session_endpoint
. Afterwards the NGINX Plus' logout redirection URI (which is redirected by IdP after successful logout from IdP) can clear session cookies and redirect to the either original landing page or a custom logout page.Description:
Added
/userinfo
endpoint:$oidc_userinfo_endpoint
as same as authz and token endpoints here (openid_connect_configuration.conf
) ./userinfo
endpoint here(openid_connect.server_conf
) in a location block of NGINX Plus to interact with IdP'suserinfo_endpoint
which is defined in the endpoint ofwell-known/openid-configuration
.userinfo_endpoint
by addingaccess_token
as a bearer token.Exposed
/login
endpoint:/login
endpoint as a location block here (openid_connect.server_conf
)authorization_endpoint
configured in the map variable of$oidc_authz_endpoint
in (openid_connect_configuration.conf
).Exposed
/v2/logout
endpoint or enhance/logout
endpoint:Add a map variable of
$oidc_end_session_endpoint
as same as authz and token endpoints here (openid_connect_configuration.conf
) .Add a map of
$post_logout_return_uri
: After the successful logout from the IdP, NGINX Plus calls this URI to redirect to either the original page or a custom logout page. The default is original page based on the configuration of$redirect_base
.Exposed endpoints of
/v2/logout
and/v2/_logout
/v2/logout
: NGINX Plus calls IdP's end session endpoint ($oidc_end_session_endpoint
) to finish the session by IdP./v2/_logout
(Callback endpoint):FYI. We can just enhance endpoints of
/logout
and/_logout
without adding new endpoints of/v2/logout
and/v2/_out
if this doesn't block the existing customer, and if they can update this reference implementation in their configuration:/v2/logout
&/v2/_logout
to/logout
and/_logout
.Capture logout endpoint (
oidc_logout_endpoint
of IDP in a map variable as same as authz and token endpoints here (openid_connect_configuration.conf
).Splitted an example of quick start guide from this repo to an external repo to avoid confusion here:
Assumptions:
$oidc_logout_redirect_uri
at the time of creating the resource credentials along with/_codexch
.