@@ -51,20 +51,22 @@ Optional. Salt, value or filename, used in sub_funcs (pairwise, public) for crea
5151sub_funcs
5252#########
5353
54- Optional. Functions involved in * sub*ject value creation.
54+ Optional. Functions involved in subject value creation.
5555
5656
5757scopes_to_claims
58- ##############
58+ ################
5959
6060A dict defining the scopes that are allowed to be used per client and the claims
6161they map to (defaults to the scopes mapping described in the spec). If we want
6262to define a scope that doesn't map to claims (e.g. offline_access) then we
6363simply map it to an empty list. E.g.::
64- {
65- "scope_a": ["claim1", "claim2"],
66- "scope_b": []
67- }
64+
65+ {
66+ "scope_a": ["claim1", "claim2"],
67+ "scope_b": []
68+ }
69+
6870*Note *: For OIDC the `openid ` scope must be present in this mapping.
6971
7072
@@ -664,57 +666,14 @@ the following::
664666Clients
665667=======
666668
667- In this section there are some client configuration examples.
668-
669- A common configuration::
670-
671- endpoint_context.cdb['jbxedfmfyc'] = {
672- client_id: 'jbxedfmfyc',
673- client_salt: '6flfsj0Z',
674- registration_access_token: 'z3PCMmC1HZ1QmXeXGOQMJpWQNQynM4xY',
675- registration_client_uri: 'https://127.0.0.1:8000/registration_api?client_id=jbxedfmfyc',
676- client_id_issued_at: 1630256902,
677- client_secret: '19cc69b70d0108f630e52f72f7a3bd37ba4e11678ad1a7434e9818e1',
678- client_secret_expires_at: 1929727754,
679- application_type: 'web',
680- contacts: [
681- 'rp@example.com'
682- ],
683- token_endpoint_auth_method: 'client_secret_basic',
684- redirect_uris: [
685- [
686- 'https://127.0.0.1:8090/authz_cb/satosa',
687- {}
688- ]
689- ],
690- post_logout_redirect_uris: [
691- [
692- 'https://127.0.0.1:8090/session_logout/satosa',
693- null
694- ]
695- ],
696- response_types: [
697- 'code'
698- ],
699- grant_types: [
700- 'authorization_code'
701- ],
702- allowed_scopes: [
703- 'openid',
704- 'profile',
705- 'email',
706- 'offline_access'
707- ]
708- }
709-
669+ In this section there are some client configuration examples. That can be used
670+ to override the global configuration of the OP.
710671
711672How to configure the release of the user claims per clients::
712673
713674 endpoint_context.cdb["client_1"] = {
714675 "client_secret": "hemligt",
715676 "redirect_uris": [("https://example.com/cb", None)],
716- "client_salt": "salted",
717- "token_endpoint_auth_method": "client_secret_post",
718677 "response_types": ["code", "token", "code id_token", "id_token"],
719678 "add_claims": {
720679 "always": {
@@ -728,22 +687,71 @@ How to configure the release of the user claims per clients::
728687 },
729688 },
730689
731- Some of the allowed client configurations are (this is an ongoing work):
690+ The available configuration options are:
691+
692+ -------------
693+ client_secret
694+ -------------
695+
696+ The client secret. This parameter is required.
697+
698+ ------------------------
699+ client_secret_expires_at
700+ ------------------------
701+
702+ When the client_secret expires.
703+
704+ -------------
705+ redirect_uris
706+ -------------
707+
708+ The client's redirect uris.
709+
710+ -----------
711+ auth_method
712+ -----------
713+
714+ The auth_method that can be used per endpoint.
715+ E.g::
716+
717+ {
718+ "AccessTokenRequest": "client_secret_basic",
719+ ...
720+ }
721+
722+ ------------
723+ request_uris
724+ ------------
725+
726+ A list of `request_uris `.
727+
728+ See https://openid.net/specs/openid-connect-registration-1_0-29.html#ClientMetadata.
729+
730+ --------------
731+ response_types
732+ --------------
733+
734+ The allowed `response_types ` for this client.
735+
736+ See https://openid.net/specs/openid-connect-registration-1_0-29.html#ClientMetadata.
732737
733738---------------------
734739grant_types_supported
735740---------------------
736741
737742Configure the allowed grant types on the token endpoint.
738743
739- --------------
744+ See https://openid.net/specs/openid-connect-registration-1_0-29.html#ClientMetadata.
745+
746+ ----------------
740747scopes_to_claims
741- --------------
748+ ----------------
742749
743750A dict defining the scopes that are allowed to be used per client and the claims
744751they map to (defaults to the scopes mapping described in the spec). If we want
745752to define a scope that doesn't map to claims (e.g. offline_access) then we
746753simply map it to an empty list. E.g.::
754+
747755 {
748756 "scope_a": ["claim1", "claim2"],
749757 "scope_b": []
@@ -760,7 +768,7 @@ clients scopes_to_claims).
760768revoke_refresh_on_issue
761769-----------------------
762770
763- Configure whether to revoke the refresh token that was used to issue a new refresh token
771+ Configure whether to revoke the refresh token that was used to issue a new refresh token.
764772
765773----------
766774add_claims
@@ -800,3 +808,131 @@ E.g.::
800808 "by_scope": {
801809 id_token: True, # Map the requested scopes to claims and add them to the id token
802810 }
811+
812+ -----------------
813+ token_usage_rules
814+ -----------------
815+
816+ The usage rules for each token type. E.g.::
817+
818+ {
819+ "usage_rules": {
820+ "authorization_code": {
821+ "expires_in": 3600,
822+ "supports_minting": [
823+ "access_token",
824+ "id_token",
825+ ],
826+ "max_usage": 1,
827+ },
828+ "access_token": {
829+ "expires_in": self.params["access_token_lifetime"],
830+ },
831+ }
832+ }
833+
834+ --------------
835+ pkce_essential
836+ --------------
837+
838+ Whether pkce is essential for this client.
839+
840+ ------------------------
841+ post_logout_redirect_uri
842+ ------------------------
843+
844+ The client's post logout redirect uris.
845+
846+ See https://openid.net/specs/openid-connect-rpinitiated-1_0.html#RPLogout.
847+
848+ ----------------------
849+ backchannel_logout_uri
850+ ----------------------
851+
852+ The client's `backchannel_logout_uri `.
853+
854+ See https://openid.net/specs/openid-connect-backchannel-1_0.html#BCRegistration
855+
856+ -----------------------
857+ frontchannel_logout_uri
858+ -----------------------
859+
860+ The client's `frontchannel_logout_uri `.
861+
862+ See https://openid.net/specs/openid-connect-frontchannel-1_0.html#RPLogout
863+
864+ --------------------------
865+ request_object_signing_alg
866+ --------------------------
867+
868+ A list with the allowed algorithms for signing the request object.
869+
870+ See https://openid.net/specs/openid-connect-registration-1_0-29.html#ClientMetadata
871+
872+ -----------------------------
873+ request_object_encryption_alg
874+ -----------------------------
875+
876+ A list with the allowed alg algorithms for encrypting the request object.
877+
878+ See https://openid.net/specs/openid-connect-registration-1_0-29.html#ClientMetadata
879+
880+ -----------------------------
881+ request_object_encryption_enc
882+ -----------------------------
883+
884+ A list with the allowed enc algorithms for signing the request object.
885+
886+ See https://openid.net/specs/openid-connect-registration-1_0-29.html#ClientMetadata
887+
888+ ----------------------------
889+ userinfo_signed_response_alg
890+ ----------------------------
891+
892+ JWS alg algorithm [JWA] REQUIRED for signing UserInfo Responses.
893+
894+ See https://openid.net/specs/openid-connect-registration-1_0-29.html#ClientMetadata
895+
896+ -------------------------------
897+ userinfo_encrypted_response_enc
898+ -------------------------------
899+
900+ The alg algorithm [JWA] REQUIRED for encrypting UserInfo Responses.
901+
902+ See https://openid.net/specs/openid-connect-registration-1_0-29.html#ClientMetadata
903+
904+ -------------------------------
905+ userinfo_encrypted_response_alg
906+ -------------------------------
907+
908+ JWE enc algorithm [JWA] REQUIRED for encrypting UserInfo Responses.
909+
910+ See https://openid.net/specs/openid-connect-registration-1_0-29.html#ClientMetadata
911+
912+ ----------------------------
913+ id_token_signed_response_alg
914+ ----------------------------
915+
916+ JWS alg algorithm [JWA] REQUIRED for signing ID Token issued to this Client.
917+
918+ See https://openid.net/specs/openid-connect-registration-1_0-29.html#ClientMetadata
919+
920+ -------------------------------
921+ id_token_encrypted_response_enc
922+ -------------------------------
923+
924+ The alg algorithm [JWA] REQUIRED for encrypting ID Token issued to this Client.
925+
926+ See https://openid.net/specs/openid-connect-registration-1_0-29.html#ClientMetadata
927+
928+ -------------------------------
929+ id_token_encrypted_response_alg
930+ -------------------------------
931+
932+ JWE enc algorithm [JWA] REQUIRED for encrypting ID Token issued to this Client.
933+
934+ See https://openid.net/specs/openid-connect-registration-1_0-29.html#ClientMetadata
935+
936+ --------
937+ dpop_jkt
938+ --------
0 commit comments