@@ -96,8 +96,9 @@ def __init__(
96
96
client_claims = None , app_name = None , app_version = None ):
97
97
"""Create an instance of application.
98
98
99
- :param client_id: Your app has a client_id after you register it on AAD.
100
- :param client_credential:
99
+ :param str client_id: Your app has a client_id after you register it on AAD.
100
+
101
+ :param str client_credential:
101
102
For :class:`PublicClientApplication`, you simply use `None` here.
102
103
For :class:`ConfidentialClientApplication`,
103
104
it can be a string containing client secret,
@@ -114,6 +115,17 @@ def __init__(
114
115
which will be sent through 'x5c' JWT header only for
115
116
subject name and issuer authentication to support cert auto rolls.
116
117
118
+ Per `specs <https://tools.ietf.org/html/rfc7515#section-4.1.6>`_,
119
+ "the certificate containing
120
+ the public key corresponding to the key used to digitally sign the
121
+ JWS MUST be the first certificate. This MAY be followed by
122
+ additional certificates, with each subsequent certificate being the
123
+ one used to certify the previous one."
124
+ However, your certificate's issuer may use a different order.
125
+ So, if your attempt ends up with an error AADSTS700027 -
126
+ "The provided signature value did not match the expected signature value",
127
+ you may try use only the leaf cert (in PEM/str format) instead.
128
+
117
129
:param dict client_claims:
118
130
*Added in version 0.5.0*:
119
131
It is a dictionary of extra claims that would be signed by
0 commit comments