Loading
Protezione dell'organizzazione Salesforce
Utilizzo delle chiavi API nelle intestazioni personalizzate con le credenziali denominate

Utilizzo delle chiavi API nelle intestazioni personalizzate con le credenziali denominate

I servizi Web definiscono spesso i propri protocolli di autenticazione mediante intestazioni personalizzate. In questi casi, è possibile creare un'intestazione personalizzata per una credenziale denominata o esterna e utilizzare le chiavi API come password.

Versioni (Edition) richieste

Disponibile in: Salesforce Classic (non in tutte le organizzazioni) e Lightning Experience
Disponibile in tutte le versioni.

Lo schema delle credenziali denominate include il supporto di protocolli di autenticazione come OAuth 2.0 e AWS Signature v4. Alcuni provider di servizi Web dispongono di protocolli di autenticazione che utilizzano intestazioni univoche per l'autenticazione. In questi casi, scegliere un protocollo di autenticazione Custom per la credenziale esterna e utilizzare un'intestazione personalizzata per eseguire l'autenticazione in tali sistemi.

Un approccio comune utilizzato dai fornitori di servizi Web per l'autenticazione personalizzata è l'uso delle chiavi API. Oltre all'autenticazione, le chiavi API possono essere utilizzate per vari servizi HTTP, ad esempio il caching o i cookie. Per le credenziali denominate, è possibile creare un'intestazione personalizzata che utilizza le chiavi API come protocollo di autenticazione, con il valore segreto della chiave utilizzato come password.

Ogni servizio Web può assegnare un nome arbitrario alle intestazioni. I nomi comuni includono ACCESS_TOKEN, bearer, Client-ID, developer-token e X-API-Key.

Per lo standard HTTP 1.x, una chiamata che utilizza una chiave API (hard-wired) può avere un aspetto simile a questo.

GET https://example.com HTTP/1.1
Client-ID: abc123

Qui il Client-ID della chiave API è anche il nome dell'intestazione e abc123 è il valore della chiave API utilizzata per l'autenticazione. Il nome e il valore vengono impostati dal sistema di autenticazione. In genere, questi parametri vengono recuperati tramite l'interfaccia utente del sistema esterno.

Lo standard HTTP include un'intestazione Authorization per l'autenticazione. Per impostazione predefinita, le credenziali denominate di Salesforce utilizzano questa intestazione di autorizzazione standard. È tuttavia possibile ignorare l'impostazione predefinita e creare un'intestazione di autorizzazione personalizzata. Questo esempio mostra l'intestazione Authorization utilizzata con una chiave API.

GET https://example.com HTTP/1.1 
Authorization: Client-ID abc123

I passaggi generali per l'utilizzo delle chiavi API con credenziali denominate sono:

  1. Creare una credenziale esterna, impostando il protocollo di autenticazione su Personalizzato. Una credenziale esterna memorizza le informazioni di autenticazione e autorizzazione e viene utilizzata dalle credenziali denominate.
  2. Memorizzare la chiave API come parametro di autorizzazione in una entità.
  3. Creare un'intestazione personalizzata per la credenziale esterna. L'intestazione fa riferimento alla chiave API.
  4. Creare una credenziale denominata che fa riferimento alla credenziale esterna.

Memorizzazione di una chiave API come parametro di autenticazione in un'entità

Si consiglia vivamente di memorizzare i parametri di autenticazione delle chiavi API come parte di un'entità di credenziale esterna.

La chiave API è un valore segreto. È previsto che i parametri di autenticazione contengano segreti e vengono archiviati in modo crittografato coerente con le altre informazioni sensibili. Inoltre, l'accesso ai segreti viene concesso in modo esplicito tramite un'entità.

Un'entità collega una credenziale esterna agli insiemi di autorizzazioni e ai profili. Aggiungendo parametri di autenticazione a un'entità, si abilitano gruppi diversi di utenti Salesforce al'utilizzo di token di autenticazione diversi per chiamare lo stesso servizio esterno.

  1. Creare una credenziale esterna e impostare il campo Protocollo di autenticazione su Personalizzato. Per istruzioni sulla creazione e la configurazione delle credenziali esterne, vedere Creazione o modifica di una credenziale esterna di autenticazione personalizzata. In questo esempio, la credenziale esterna è denominata MyCustAuthExternCred.
    Nuova credenziale esterna con autenticazione personalizzata
  2. Nella pagina della credenziale esterna, scorrere fino a Entità.
  3. Per creare un'entità, fare clic su Nuovo e impostare i campi seguenti.
    Mappatura dell'entità per l'autenticazione personalizzata
    Nome parametro
    Un nome per l'entità, ad esempio Amministratore o Team Marketing.
    Numero di sequenza
    Questo numero determina la mappatura utilizzata per la chiamata, in base a un ordine dal valore più basso al più alto. Impostare il numero di sequenza nel caso in cui un utente abbia più insiemi di autorizzazioni in più entità.
    Tipo di identità
    L'autenticazione personalizzata utilizza il tipo di identità Entità denominata. Entità denominata indica che gli utenti Salesforce condividono la stessa chiave API e non hanno un accesso univoco al servizio esterno. Non è possibile modificare il tipo di identità per l'autenticazione personalizzata.
    Nota
    Nota Al momento, solo il protocollo OAuth supporta l'accesso univoco per utente a un sistema remoto. In tal caso, ogni utente accede separatamente prima che l'integrazione funzioni nel proprio contesto utente.
    Nome
    Il nome per il parametro di autenticazione. In questo esempio, il nome è MyClientId.
    Valore
    Il valore della chiave API. In molti casi, la chiave API viene ricavata dall'interfaccia utente del servizio Web.
  4. Mappare l'entità a un insieme di autorizzazioni o a un profilo. Vedere Abilitazione delle entità delle credenziali esterne. È possibile mappare un'entità a più insiemi di autorizzazioni, gruppi di insiemi di autorizzazioni o profili.

Utilizzo delle chiavi API in un'intestazione personalizzata

Dopo aver aggiunto delle chiavi API a un'entità, è possibile utilizzarle in un'intestazione personalizzata.

  1. Nella credenziale esterna creata, scorrere fino a Intestazioni personalizzate e fare clic su Nuova.
  2. Compilare i campi per l'intestazione personalizzata.
    Creare un'intestazione personalizzata con formule.
    Nome
    Il nome dell'intestazione della richiesta HTTP standard, secondo le richieste del servizio esterno. In questo caso stiamo eseguendo l'autenticazione, quindi si utilizza il nome standard HTTP Authorization.
    Valore
    Il nome e il valore della chiave API. Può essere un'espressione letterale o di programmazione.
    Il valore può essere espresso a livello di programmazione con campi di unione e formule. Ad esempio, il valore può assumere questo formato.
    {!'Client-ID ' & $Credential.Container.ParameterName}
    In questo esempio, la stringa letterale Client-ID è concatenata con la chiave API e l'espressione si risolve come segue:
    {!'Client-ID ' & $Credential.MyCustAuthExternCred.MyClientId}
    Le formule possono essere utilizzate nei valori di intestazione tramite la sintassi {!FormulaGoesHere}. Qualsiasi elemento all'interno di {!} viene valutato come formula Salesforce. Le formule offrono una notevole efficacia e flessibilità per la creazione di valori di intestazione senza codice.
    I campi di unione forniscono l'accesso ai valori crittografati tramite la sintassi $Credential.Container.ParameterName. In questo esempio, Container è il MyCustAuthExternCred della credenziale esterna. ParameterName è il parametro di autenticazione principale MyClientId, mappato al valore della chiave API.
    Numero di sequenza
    Questo numero determina quale intestazione "vince" e viene utilizzata per la chiamata, in base a un ordine dal valore più basso al più alto. Se non si temono conflitti con altre intestazioni, lasciare questo campo come predefinito.
    La credenziale esterna ora mostra l'intestazione personalizzata con un riferimento al parametro di autorizzazione che contiene la chiave API.
    Credenziale esterna con autenticazione personalizzata

Se Client-ID è abc123, il callout risultante ha l'aspetto seguente. La credenziale denominata aggiunge Authorization: come nome dell'intestazione.

GET https://example.com HTTP/1.1 
Authorization: Client-ID abc123
Suggerimento
Suggerimento Assicurarsi di aver abilitato le credenziali esterne utente per gli utenti che utilizzano le credenziali denominate. Vedere Abilitazione delle credenziali utente esterne.

Utilizzo delle chiavi API con una credenziale denominata

Dopo aver creato una credenziale esterna che utilizza le chiavi API, è possibile farvi riferimento utilizzando una credenziale denominata.

  1. Disabilitare Genera intestazione di autorizzazione nella credenziale denominata. La disabilitazione di questa opzione garantisce che la credenziale denominata utilizzi l'intestazione Authorization personalizzata creata.
  2. In tale credenziale denominata, assicurarsi che l'opzione Consenti formule nell'intestazione HTTP sia abilitata.

A callout using this named credential returns successfully because it has the correct Authorization header. If the tokens expire or the URL changes, no changes to Apex code are needed. In addition to Apex, the credential can be used in no-code tools such as External Services that provide integration with Flow.

 
Caricamento
Salesforce Help | Article