Skip to content
This repository was archived by the owner on Jun 23, 2023. It is now read-only.

Commit 8387e9d

Browse files
committed
Add more client configurations
1 parent ed7e849 commit 8387e9d

1 file changed

Lines changed: 191 additions & 55 deletions

File tree

docs/source/contents/conf.rst

Lines changed: 191 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -51,20 +51,22 @@ Optional. Salt, value or filename, used in sub_funcs (pairwise, public) for crea
5151
sub_funcs
5252
#########
5353

54-
Optional. Functions involved in *sub*ject value creation.
54+
Optional. Functions involved in subject value creation.
5555

5656

5757
scopes_to_claims
58-
##############
58+
################
5959

6060
A dict defining the scopes that are allowed to be used per client and the claims
6161
they map to (defaults to the scopes mapping described in the spec). If we want
6262
to define a scope that doesn't map to claims (e.g. offline_access) then we
6363
simply 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::
664666
Clients
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

711672
How 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
---------------------
734739
grant_types_supported
735740
---------------------
736741

737742
Configure 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+
----------------
740747
scopes_to_claims
741-
--------------
748+
----------------
742749

743750
A dict defining the scopes that are allowed to be used per client and the claims
744751
they map to (defaults to the scopes mapping described in the spec). If we want
745752
to define a scope that doesn't map to claims (e.g. offline_access) then we
746753
simply 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).
760768
revoke_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
----------
766774
add_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

Comments
 (0)