Docusign grant an access token to service integrations with JWT grant - docusignapi

i need to grant an access token to service integrations with JWT grant without asking the users to make and to approve access by the application. If possible i need an example. Thanks for your help.

Yes, you can do this by using administrative consent. It enables the administrator to proactively grant consent on behalf of their users.
You need:
The Access Management with SSO feature in your DocuSign account.
Claim the email domain used by your users. See doc section To prove ownership of a domain.
Use the Connected Apps feature to administratively grant signature and impersonation scopes to your application.

Related

Docusign C# JWT Authentication Problem : Consent Required Exception

Currently doing a POC for one of our customer requirement. We will have a single admin user for the organization so JWT authentication suits our requirement. Since my developer account has not got admin feature enabled I cant grant administrative consent to my application, so we are blocked. Can you please give admin access to my account.
Just trying to follow through the steps in the video.
https://www.youtube.com/watch?v=WAejcu-O1oE
While Karan's recommendation to contact Support to have the Admin module enabled in your sandbox is accurate, I would also remind you that Individual Consent is available for all account plans to grant permission to use JWT Auth

Microsoft Graph: Selective consent to application-level permissions

So i have an AAD app that requests a number of permissions. I have delegate permissions and application permission.
I want all my customer to use the same app but then admins should be able decide which permissions they would prefer to allow.
So for instance I have Calendar.Read and Calendar.ReadWrite application-permission requests on my app. Some admins will only like to consent to Calendar.Read.
Is this even possible? As per this documentation
I tried having the customer admin consent to only Calendar.Read using
// Line breaks are for legibility only.
GET https://login.microsoftonline.com/{tenant}/v2.0/adminconsent?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&state=12345
&redirect_uri=http://localhost/myapp/permissions
&scope= https://graph.microsoft.com/calendars.read
I can see in the customers enterprise applications that that Calendar.Read is permitted under Admin consent tab. Unfortunately its registered of type Delegate. I need the permission to be of type Application. How do I do this?
As expected when i try to get client credentials token, the token has no permissions so i cannot use the token to make any calls. What am i missing here?
There are settings which admins can choose for enabling the admin consent workflow and choose reviewers:
Admin Consent
Please refer this DOC
For configuring the user content please refer this DOC

MS Graph Daemon App - Obtaining Bearer Token

I’m creating a daemon app, e.g. a 'non-user interactive' app, authentication will be performed on behalf of end-users using a ‘service account’. So the no sign in prompt required.
The 'service account' has the relevant Delegated Permissions and Admin Approval is consented for the app, the app permissions are set as 'Application Permissions'.
Company policy forbids the Client Credential flow, so no access to the 'client_secret'. If I try using the ROPC flow with the service account username/password the POST request returns the 'Invalid Grant' error.
I’m confused as to what flow I’d use/can use to obtain a bearer token, that will enable the app to call MS Graph API?
The question is similar to this, though I cannot use Client Flow: Can a MS Graph background/daemon app impersonate a user account without user interaction
To impersonate a user (i.e. delegated access, using delegated permissions) and access Microsoft Graph on behalf of the user, the user must have signed in to the application at some point (or to an upstream application).
The alternative is for the service to authenticate as itself (i.e. using the Client Credentials flow) and access Microsoft Graph directly.
The Microsoft Identity platform does not support impersonation of arbitrary users who have not actually signed in to the app.
In general, using the Resource Owner Password Credential (ROPC) flow to impersonate a user account using that account's username and password is strongly discouraged.

User requirements for granting DocuSign Consent

I am running a POC for a Service-based DocuSign integration with JWT Authentication. We would like to leverage embedded sending, enabling multiple customers to send documents for signatures. I am trying to understand how we will manage users and consent in this scenario.
To grant consent for multiple clients, do we need to have a user created in or organization for each of our customers? Do these users need to be admins? Are we able to grant consent to a DocuSign user outside our organization?
Thank you
So, JWT requires consent of the user, but only once. This process is the same as Auth Code Grant, requires the user has a membership in a DocuSign account, log in (not in an iframe) by either entering their password or using IDP for SSO and then they are asked to allow the integration to access specific resources (eSignature in your case) as well as allow it to impersonate them. That is critical for JWT.
If you want to make it a bit easier, you'll have to become an ISV. As an ISV there are ways to consent to an app for an organization and you can also have some level of control over your customers' accounts.
Partner Integration Guide for ISVs

How can I make an application and grant it admin consent from the demo account?

I'm developing an integration that needs admin consent, without the interaction of a user. I see that in order to give consent to an application I need to do that from the organization dashboard.
The problem is that the demo account doesn't have organization features nor the organization dashboard.
When using JWT Token auth with DocuSign you need to grant consent one-time as you have mentioned, there are two ways to accomplish this:
Using Organizations Interface (which is an Enterprise level feature).
Initiate the request through the API
When going through API the user still needs to interactively grant consent through a browser however the request is initiated through DocuSign's Authentication Service.
See here for steps to take to grant consent through the API:
https://docs.docusign.com/esign/guide/authentication/oa2_jwt.html#granting-consent
In terms of the User Consent vs. Admin consent part of your question, they are actually the same thing the only difference is that the admin consent is done through the admin console and can apply to all users, the user consent is on a per user basis.
If you don't want the individual users to grant consent then you must use the organization admin panel to give consent.
To have organization administration added to your demo/developer sandbox account, please ask your DocuSign sales or technical contact to have it added.

Resources