@@ -96,8 +96,9 @@ def __init__(
9696 client_claims = None , app_name = None , app_version = None ):
9797 """Create an instance of application.
9898
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:
101102 For :class:`PublicClientApplication`, you simply use `None` here.
102103 For :class:`ConfidentialClientApplication`,
103104 it can be a string containing client secret,
@@ -114,6 +115,17 @@ def __init__(
114115 which will be sent through 'x5c' JWT header only for
115116 subject name and issuer authentication to support cert auto rolls.
116117
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+
117129 :param dict client_claims:
118130 *Added in version 0.5.0*:
119131 It is a dictionary of extra claims that would be signed by
0 commit comments