I'm hoping that these things are true, to help set a baseline of understanding of what you have configured:
- You're following along with the
Admin API
's Authentication quickstart
- Your
External Application
was created in the Users & Groups part of Banno's back office
- That
External Application
is configured with the Service account type
I think the above is true, given that you mention using the @jkhy/banno-client-creds-helper tool to successfully get an Access Token
from the Admin API
. (You do indeed need to authenticate with the Admin API
and get an Access Token
any time you want to use its API endpoints.)
If the above is true, then you're configured to use the Client Credentials OAuth flow. The Client Credentials flow differs quite a bit from the way that the Authorization Code flow works for the Consumer API
in that the Client Credentials flow uses a 'Signed JWT' to obtain an Access Token
.
The structure of the JWT is described in https://jackhenry.dev/open-api-docs/admin-api/overview/authentication/clientcredentialsflow/. Notably the sub
and iss
portions of the JWT are where you pass in the Client ID, so you don't need the client_id
part of the request as you showed in the screenshot.
The JWT is signed with the private key from the public key + private key pair. This is the trickiest part of the entire process. If you take a look at the client-assertion.js file from the @jkhy/banno-client-creds-helper, that's where the signing magic happens.
I'm not familiar with how to do that sort of JWT signing in Postman, unfortunately.