Autenticazione backend

Se si dispone di uno skill che richiede l'autenticazione con un provider di identità, è possibile impostare un servizio di autenticazione per abilitare l'interazione tra Digital Assistant e tale provider di identità.

Ad esempio, potrebbe essere necessario impostare un servizio di autenticazione se si sta creando uno skill per un canale di Microsoft Teams, uno skill che accede a un calendario di Google o Outlook o uno skill richiamato da una conversazione avviata dall'applicazione che utilizza un ID utente autenticato per identificare l'utente.

È inoltre necessario impostare un servizio di autenticazione se la propria competenza utilizza un componente integrato OAuth 2.0 Client, OAuth 2.0 Collegamento account o Reimposta token OAuth2.

Se si dispone di un'istanza di Digital Assistant abbinata a una sottoscrizione a un servizio Oracle Cloud Applications basato su Fusion, ad esempio Oracle Sales Automation o Oracle Fusion Cloud Human Capital Management, non è necessario eseguire alcuna operazione per configurare l'autenticazione backend per le competenze fornite. Questo è stato curato per voi.

Componenti di sicurezza integrati

Oracle Digital Assistant fornisce i seguenti componenti di sicurezza:

  • OAuth 2.0 Client : ottiene un token di accesso OAuth2 del tipo di privilegio Credenziali client che un componente personalizzato può utilizzare per accedere alle risorse client protette da IAM OCI o Oracle Access Manager (OAM).

    Se il flusso della finestra di dialogo è sviluppato in modalità YAML, utilizzare System.OAuth2Client .

    Prima di utilizzare questo componente in uno skill, registrare un'applicazione come descritto in Registrazione provider identità, quindi chiedere all'amministratore di aggiungere un servizio per il client come descritto in Authentication Services. Se si dispone di un'istanza di Digital Assistant abbinata a una sottoscrizione a un servizio Oracle Cloud Applications basato su Fusion, ad esempio Oracle Sales Cloud o Oracle Human Capital Management Cloud, il dominio di Identity OCI IAM dispone già di un'applicazione registrata e di un servizio di autenticazione creato.

  • OAuth 2.0 Collegamento account : ottiene un token di accesso OAuth2 con il tipo di privilegio Codice autorizzazione che un componente personalizzato può utilizzare per accedere alle risorse protette da uno dei seguenti provider di identità:
    • IAM OCI
    • Oracle Access Manager (OAM)
    • Piattaforma Microsoft Identity
    • Piattaforma Google Identity

    Se il flusso della finestra di dialogo è sviluppato in modalità YAML, utilizzare System.OAuth2AccountLink .

    Un altro utilizzo di questo componente consiste nell'autenticazione degli utenti per le conversazioni abilitate per l'applicazione che identificano gli utenti Mobile in base ai nomi utente, come descritto in Creazione di un canale per l'applicazione esterna.

    Prima di utilizzare questo componente in uno skill, registrare un'applicazione come descritto in Registrazione provider identità, quindi chiedere all'amministratore di aggiungere un servizio per il client come descritto in Authentication Services. Se si dispone di un'istanza di Digital Assistant abbinata a una sottoscrizione a un servizio Oracle Cloud Applications basato su Fusion, ad esempio Oracle Sales Cloud o Oracle Human Capital Management Cloud, il dominio di Identity OCI IAM dispone già di un'applicazione registrata e di un servizio di autenticazione già creato.

  • Reimposta OAuth 2.0 token : revoca tutti i token di aggiornamento e accesso dell'utente collegato da un servizio di autenticazione specificato. Si tratta di flussi di dialogo che utilizzano il componente Collegamento account OAuth 2.0.

    Se il flusso della finestra di dialogo è sviluppato in modalità YAML, utilizzare System.OAuth2ResetTokens .

    Si noti che non è possibile utilizzare questo componente con la piattaforma di identità Microsoft perché non supporta la revoca dei token di accesso tramite chiamate REST, solo tramite l'interfaccia della riga di comando.

  • OAuth Collegamento account : ottiene il codice di autorizzazione per i provider di identità che supportano il protocollo OAuth2. Il componente personalizzato deve scambiare questo codice per un token di accesso. Questo componente non utilizza un servizio di autenticazione.

    Se il flusso della finestra di dialogo è sviluppato in modalità YAML, utilizzare System.OAuthAccountLink .

Registrazione provider di identità

Un amministratore deve registrare un'applicazione (detta anche client OAuth) con il provider di identità (IDP) prima di poter utilizzare il componente OAuth2Client, OAuth2AccountLink o OAuthAccountLink in una competenza.

Registra un'applicazione con IAM o OAM OCI

Prima di poter utilizzare un componente OAuth2Client, OAuth2AccountLink o OAuthAccountLink in una competenza, un amministratore deve registrare un'applicazione riservata (definita anche client OAuth) con IAM o OAM OCI.

Nota

Se si dispone di un'istanza di Digital Assistant abbinata a una sottoscrizione a un servizio Oracle Cloud Applications basato su Fusion, ad esempio Oracle Sales Cloud o Oracle Human Capital Management Cloud, il dominio di Identity OCI IAM dispone già di un'applicazione registrata per tale servizio.

Per informazioni su come registrare un'applicazione con IAM OCI, consulta la sezione relativa all'aggiunta di un'applicazione riservata nella documentazione di Oracle Cloud Infrastructure. Le informazioni sulla registrazione di un'applicazione con OAM sono disponibili in Configurazione dei servizi OAuth in Amministrazione di Oracle Access Management.

Quando registri un'applicazione (client) con IAM o OAM OCI, dovrai fornire le seguenti informazioni:

  • Tipi di privilegio consentiti: l'applicazione deve utilizzare il tipo di privilegio Codice autorizzazione o il tipo di privilegio Credenziali client.

  • Scope o ruoli: includere le risorse a cui devono accedere i componenti personalizzati. Se si include il tipo di privilegio del token di aggiornamento, è necessario aggiungere anche l'ambito corrispondente, ovvero offline_access per IAM OCI.

  • URL di reindirizzamento o di callback: per restituire il codice di autorizzazione è necessario fornire l'URL utilizzato dall'IDP. Alcuni provider di identità fanno riferimento a questo come URL di reindirizzamento o URI di callback. Per capire cosa usare per l'URL di reindirizzamento, vai alla pagina Canali e apri qualsiasi canale Facebook o Webhook (se non ne hai, creane uno fittizio). Utilizzare il dominio e la porta dell'URL del webhook del canale (ad esempio, https://<domain>:<port>/connectors/v2/tenants/<tenantId>/listeners/facebook/channels/<channelId>) per creare l'URL di reindirizzamento, che deve essere nel formato https://<domain>:<port>/connectors/v2/callback. Ad esempio, https://example.com:443/connectors/v2/callback.

    Se il provisioning dell'istanza viene eseguito su Oracle Cloud Platform (come tutte le istanze della versione 19.4.1), utilizzare v1 anziché v2.

Se si utilizza OAuth2Client o OAuth2AccountLink per l'autenticazione con il provider di identità, dopo aver creato l'applicazione (client OAuth), annotare le credenziali client, il token IDP e l'URL di autorizzazione. Queste informazioni saranno necessarie quando si crea un servizio di autenticazione come descritto in Servizi di autenticazione.

Registrare un'applicazione con Microsoft Identity Platform

Per registrare un'applicazione con la piattaforma Microsoft Identity, seguire le istruzioni di Microsoft all'indirizzo Quickstart: Register a application with the Microsoft Identity platform.

Impostare il tipo di applicazione su Web.

Dovrai fornire l'URL utilizzato dalla piattaforma per rispedire il codice di autorizzazione. Per capire cosa usare per l'URL, vai alla pagina Canali di Digital Assistant e apri qualsiasi canale Facebook o Webhook (se non ne hai, creane uno fittizio). Utilizzare il dominio e la porta dell'URL del webhook del canale (ad esempio, https://<domain>:<port>/connectors/v2/tenants/<tenantId>/listeners/facebook/channels/<channelId>) per creare l'URL di reindirizzamento, che deve essere nel formato https://<domain>:<port>/connectors/v2/callback. Ad esempio, https://example.com:443/connectors/v2/callback.

Dopo aver registrato l'applicazione, è necessario creare un segreto client come descritto nell'argomento Microsoft Creare un nuovo segreto applicazione. Questo segreto verrà utilizzato quando si crea un servizio di autenticazione per l'applicazione.

Registra un'applicazione con Google OAuth2 Autorizzazione

Per registrare un'applicazione con Google OAuth2, è necessario creare un progetto e abilitare le API necessarie, come illustrato nell'argomento di Google Abilita API per il progetto. Se si prevede di utilizzare i componenti del calendario, assicurarsi di abilitare sia l'API Google Calendar che l'API CalDAV.

Successivamente, ottenere l'ID client e il segreto dell'applicazione come descritto nell'argomento di Google Crea credenziali di autorizzazione.

Nella schermata di consenso OAuth, specificare gli ambiti ai quali l'applicazione dovrà disporre dell'autorizzazione di accesso. Per ulteriori informazioni, vedere l'argomento di Google relativo all'identificazione degli ambiti di accesso.

Servizi di autenticazione

Per utilizzare i componenti di sicurezza OAuth 2.0 Client e OAuth 2.0 AccountLink, l'amministratore deve prima aggiungere un servizio per l'IDP nella pagina Servizi di autenticazione. È possibile creare servizi per i tipi di privilegio Codice autorizzazione e Credenziale client. I servizi di autenticazione supportano i provider di identità IAM e R2PS3 OAM OCI.

Nota

Se si dispone di un'istanza di Digital Assistant abbinata a una sottoscrizione a un servizio Oracle Cloud Applications basato su Fusion, ad esempio Oracle Sales Cloud o Oracle Human Capital Management Cloud, è già stato creato un servizio di autenticazione per il dominio di Identity IAM OCI associato all'istanza di Digital Assistant.

Prima di creare un servizio, è necessario chiedere all'amministratore IDP di fornire le informazioni necessarie per aggiungerlo.

Aggiungi un servizio codice autorizzazione

Di seguito viene descritto come creare un servizio di autenticazione per il codice di autorizzazione del tipo di privilegio per IAM, OAM, Microsoft Identity Platform e Google Identity Platform OCI. Questo tipo di privilegio esegue l'autenticazione in base al nome utente e alla password.

  1. Aprire il menu laterale e fare clic su Impostazioni > Servizi di autenticazione.
  2. Fare clic su + Servizio.
  3. Selezionare il tipo di assegnazione Codice autorizzazione.
  4. Immettere i seguenti valori.
    • Provider di identità: il tipo di provider di identità (IDP) utilizzato.

    • Nome: nome per identificare il servizio di autenticazione.

    • URL endpoint token: l'URL del provider di identità per richiedere i token di accesso.

      • IAM OCI: utilizzare https://<IAM-Service-Instance>.identity.oraclecloud.com/oauth2/v1/token.

      • OAM: utilizzare http://<Managed-Server-Host>:<Managed-Server-Port>/oauth2/rest/token.

      • Microsoft Identity Platform: usa https://login.microsoftonline.com/<Azure-Active-Directory-TenantID>/oauth2/v2.0/token.

      • Google Identity Platform: utilizza https://www.googleapis.com/oauth2/v4/token.

    • Endpoint autorizzazione: l'URL del provider di identità per la pagina con cui gli utenti eseguono l'autenticazione immettendo il nome utente e la password.

      • IAM OCI: utilizzare https://<IAM-Service-Instance>.identity.oraclecloud.com/oauth2/v1/authorize.

      • OAM: utilizzare http://<host>:<port>/oauth2/rest/authz.

      • Microsoft Identity Platform: usa https://login.microsoftonline.com/<Azure-Active-Directory-TenantID>/oauth2/v2.0/authorize.

      • Google Identity Platform: utilizza https://accounts.google.com/o/oauth2/v2/auth.

    • URL richiesta codice di autorizzazione breve: (facoltativo) versione abbreviata dell'URL di autorizzazione, che è possibile ottenere da un servizio di abbreviazione URL (che consente di inviare i parametri di query). Questo potrebbe essere necessario perché l'URL di autorizzazione-code-request generato potrebbe essere troppo lungo per SMS e smartphone meno recenti.

      Per impostazione predefinita, gli URL di richiesta del codice di autorizzazione per ciascuna piattaforma sono:

      • IAM e OAM OCI:

        {Authorization Endpoint URL}?client_id={clientId}&response_type=code&scope={scope}&redirect_uri={redirectUri}&state={state}
      • Piattaforma Microsoft Identity:

        {Authorization Endpoint URL}?client_id={clientId}&response_type=code&scope={scope}&redirect_uri={redirectUri}&response_mode=query&state={state}
      • Google Identity Platform:

        {Authorization Endpoint URL}?client_id={clientId}&response_type=code&scope={scope}&redirect_uri={redirectUri}&access_type=offline&prompt=consent&state={state}

      Di seguito è riportato un esempio dell'URL visualizzato in un messaggio di testo.

      Descrizione di long-url.png:
      Descrizione dell'immagine long-url.png

      Ad esempio, è possibile ottenere una versione abbreviata di questo URL:

      {Authorization Endpoint
            URL}?client_id={clientId}&response_type=code&scope={scope}&redirect_uri={redirectUri}&state={state}

      Utilizzando l'URL di richiesta del codice di autorizzazione breve, Oracle Digital Assistant crea l'URL di richiesta del codice di autorizzazione come riportato di seguito.

      {Short Authorization Code Request URL}?state={state}
    • Revoca URL endpoint token: (facoltativo) se si desidera revocare da un flusso di finestre di dialogo tutti i token di aggiornamento e di accesso dell'utente collegato, è necessario l'URL del token di revoca dell'aggiornamento dell'IDP. Se si fornisce questo URL, è possibile utilizzare il componente Reimposta token OAuth 2.0 per revocare i token dell'utente per questo servizio.

      • IAM OCI: utilizzare https://<IAM-Service-Instance>.identity.oraclecloud.com/oauth2/v1/revoke.

      • OAM: utilizzare https://<host>:<port>/ms_oauth/oauth2/endpoints/<OAuth-Service-Name>/tokens.

      • Piattaforma Microsoft Identity: non supportata.

      • Google Identity Platform: utilizza https://oauth2.googleapis.com/revoke.

    • ID client e Segreto client: l'ID e il segreto del client per l'applicazione IDP (client OAuth) registrata come descritto in Registrazione del provider di identità. Con la piattaforma di identità Microsoft, utilizzare l'ID applicazione e il segreto.

    • Scope: lista separata da spazi degli ambiti che devono essere inclusi quando Digital Assistant richiede un token di accesso dal provider. Include tutti gli ambiti necessari per accedere alle risorse. Se i token di aggiornamento sono abilitati, includere l'ambito necessario per ottenere il token di aggiornamento (in genere offline_access).

      • IAM OCI: utilizzare l'ambito urn:opc:idm:__myscopes__ quando è necessario ottenere un token di accesso contenente tutti gli ambiti consentiti. Utilizzare l'ambito urn:opc:idm:role.<roll-name>, ad esempio urn:opc:idm:role.User%20Administrator), quando è necessario ottenere un token di accesso contenente gli ambiti applicabili di un determinato ruolo.

      • Piattaforma Microsoft Identity: è necessario includere openid email profile offline_access. Se si prevede di utilizzare i componenti del calendario, è necessario includere https://graph.microsoft.com/Calendars.ReadWrite. Per altre autorizzazioni, utilizzare il formato https://graph.microsoft.com/<permission>. Sostituire <permission> con un nome di autorizzazione valido dal riferimento alle autorizzazioni di Microsoft Graph.

      • Google Identity Platform: è necessario includere https://www.googleapis.com/auth/userinfo.email, utilizzato per ottenere l'ID di login dell'utente. Se si prevede di utilizzare i componenti del calendario, è necessario includere https://www.googleapis.com/auth/calendar. Per altri ambiti, vedere OAuth 2.0 Scopes for Google APIs.

    • Richiesta di risarcimento oggetto: la richiesta di profilo con token di accesso da utilizzare per identificare l'utente.

      • OCI IAM e OAM: in genere si tratta della richiesta sub (oggetto). Tuttavia, se la richiesta sub contiene un ID utente interno, non è utile per Digital Assistant. In questi casi, specificare una richiesta di profilo che consenta a Digital Assistant di identificare l'utente, ad esempio email o name.
      • Microsoft Identity Platform: usa preferred_username.

      • Google Identity Platform: utilizza email.

    • Aggiorna periodo di conservazione token: il numero di giorni per mantenere il token di aggiornamento nella cache di Digital Assistant. Se si lascia vuoto, il valore predefinito è 7.
    Descrizione di auth-service-ac.png
    Descrizione dell'immagine auth-service-ac.png
  5. Fare clic su Crea.

Suggerimento

Per IAM OCI, quando un utente si collega tramite un componente collegamento account OAuth 2 (Visual Flow Designer) o un componente System.OAuth2AccountLink (modalità YAML), è possibile memorizzare automaticamente le informazioni del profilo dell'utente IAM per la durata di una sessione. Vedere Memorizza profilo utente per la durata della sessione.

Aggiungi servizio credenziali client

Di seguito viene descritto come creare un servizio di autenticazione per le credenziali del tipo di privilegio. Questo tipo di privilegio esegue l'autenticazione in base all'ID client e al segreto client.

  1. Aprire il menu laterale e fare clic su Impostazioni > Servizi di autenticazione.
  2. Fare clic su + Servizio.
  3. Selezionare il tipo di privilegio Credenziali client.
  4. Immettere i seguenti valori.
    • Provider di identità: il tipo di provider di identità (IDP) utilizzato.

    • Nome: nome per identificare il servizio di autenticazione.

    • URL endpoint token: l'URL del provider di identità per richiedere i token di accesso.

    • ID client e Segreto client: l'ID e il segreto del client per l'applicazione IDP (client OAuth) registrata come descritto in Registrazione del provider di identità.

    • Scope: gli ambiti che devono essere inclusi quando Digital Assistant richiede un token di accesso dal provider. Include tutti gli ambiti necessari per accedere alle risorse.



  5. Fare clic su Crea.

Identità utente in Digital Assistant

In Oracle Digital Assistant sono disponibili due opzioni principali per la gestione delle identità degli utenti di una determinata abilità:

  • Consente a Digital Assistant di assemblare un profilo utente temporaneo e provvisorio basato sul canale dell'utente e gli eventuali dettagli utente forniti dal provider del canale. In questi casi, una persona che accede alla stessa abilità attraverso canali diversi avrebbe profili diversi per ciascun canale. I dettagli di questo profilo vengono memorizzati per 14 giorni. Questo è il funzionamento predefinito.
  • Creare un'identità utente unificata per ogni utente riconosciuto su più canali e che può essere reso persistente per un periodo di tempo più lungo (o più breve). In questa modalità, puoi fornire agli utenti le opzioni per acconsentire o negare il consenso al collegamento dei loro dettagli di identità e memorizzarli con l'identità utente unificata. Questo approccio è disponibile per i canali Twilio, Slack e MS Teams.
Nota

L'associazione a un utente unificato aiuta anche con le notifiche push. Consente al servizio di notifica di determinare quale dei canali dell'utente è possibile ricevere una notifica e quindi inoltrare il messaggio a tale canale.

Configurazione dell'identità utente unificata

È possibile configurare le competenze per gli identificativi utente unificati con i passi generali riportati di seguito.

  1. Abilita collegamento account canale nell'istanza di Digital Assistant.
  2. Aggiungere un servizio di codici di autorizzazione nell'istanza di Digital Assistant.
  3. Nel flusso della finestra di dialogo dello skill, aggiungere un componente OAuth 2.0 Collegamento account (per la modalità finestra di dialogo Visual) o System.OAuth2AccountLink (per la modalità YAML).
  4. Nel componente configurare la gestione del consenso utente per la memorizzazione dei dati di identità utente unificata.

L'ID utente unificato per un determinato utente viene impostato la prima volta che l'utente accede all'assistente digitale e viene autenticato con un'autorizzazione utilizzando il componente OAuth 2.0. Cioè, l'identità autenticata iniziale diventa il "punto di verità". Tutti gli ID account canale per lo stesso utente autenticato OAuth 2.0 sono associati all'ID utente unificato.

Abilita collegamento account canale

È possibile abilitare il collegamento degli account canale per consentire il riconoscimento delle identità utente su più canali di uno skill. Ad esempio, se un utente avvia una conversazione in un canale ed è in attesa di una risposta, potrebbe anche ricevere una notifica di tale risposta nell'altro canale.

Per abilitare il collegamento del canale, effettuare le operazioni riportate di seguito.

  1. Fare clic su icona per aprire il menu laterale per aprire il menu laterale e selezionare Impostazioni > Servizi identità unificati.
  2. Impostare l'opzione Collegamento account canale su Attiva.
Nota

Prima della release 22.12, era possibile abilitare il collegamento degli account canale nelle singole competenze includendo un componente OAuth 2.0 Collegamento account nella competenza e impostando la proprietà associateWithUnifiedUser su true. A partire dalle 22.12, questa proprietà è deprecata e non ha alcun effetto, anche se rimane nella YAML di un componente.

Privacy utente finale: opzioni di consenso utente

Dopo aver attivato il collegamento dell'account canale, è possibile configurare la modalità di gestione del consenso utente per ogni skill singolarmente, utilizzando la proprietà requiresAssociationConsent nel componente Collegamento account OAuth 2.0 della competenza. Sono disponibili le opzioni riportate di seguito.

  • Yes: presenta all'utente le seguenti scelte di consenso per l'associazione dei dati dell'account canale con un ID utente unificato:
    • Conto associato. Conferma che l'utente ha approvato il collegamento dell'identità di canale corrente con l'ID utente unificato centralizzato.
    • Non collegare mai questo account. Indica che questo account canale specifico non deve essere associato all'ID utente unificato. L'utente non viene successivamente chiesto se collegare questo account in futuro. (anche se l'utente può in seguito invertire tale decisione).
    • Non al momento. Non collega gli account per la sessione corrente, ma non impedisce all'utente di ricevere la richiesta di approvazione nelle sessioni successive. La richiesta di consenso viene temporaneamente soppressa dopo che l'utente ha selezionato questa opzione, ma potrebbe riapparire quando l'utente esegue di nuovo l'autenticazione più di 24 ore dopo.
  • No . L'account canale utente viene collegato automaticamente all'ID utente unificato senza che all'utente venga richiesto il consenso.
  • Notify. L'account canale utente viene collegato automaticamente all'ID utente unificato e l'utente viene informato di tale fatto.

Il valore predefinito della proprietà è Yes.

Personalizza prompt e messaggi consenso utente

Esiste un set di prompt e messaggi visualizzati nella conversazione quando a un utente viene notificato che le informazioni sull'identità dell'account canale vengono collegate a un'identità utente unificata o se vengono fornite opzioni di consenso. È possibile modificare la frase di questi prompt nei messaggi nel bundle di risorse dello skill.

Per accedere a questi prompt e messaggi specifici nel bundle di risorse:

  1. Nella competenza, fare clic su Icona Bundle risorse per aprire il bundle delle risorse.
  2. Selezionare la scheda Configurazione.
  3. Nel campo Filtro immettere OAuthAccount2Link - consent per visualizzare le voci del bundle correlate al consenso.

Conservazione dei dati utente unificati

Il periodo di tempo in cui vengono memorizzati i dati di identità utente unificata viene impostato a livello di istanza.

Per configurare il periodo di tempo durante il quale tali dati vengono memorizzati:

  1. Fare clic su icona per aprire il menu laterale per aprire il menu laterale e selezionare Impostazioni > Servizi identità unificati.
  2. Impostare l'opzione Elimina i dati dell'account canale dell'utente dopo il periodo di conservazione specificato su Attiva.

    Se non è attivato, i dati dell'account del canale dell'utente verranno conservati a tempo indeterminato.

  3. Nel campo Periodo di conservazione per i dati utente dell'account canale (in giorni), immettere il numero di giorni in cui si desidera memorizzare i dati.

    Il minimo di 7 e il massimo è 1100.

    Nota

    I job per la rimozione dei dati vengono eseguiti una sola volta ogni 24-48 ore. Pertanto, a seconda dell'ora del job, i dati potrebbero essere conservati per un massimo di 48 ore in più rispetto al periodo di conservazione designato.
Nota

L'eliminazione dei dati dell'account canale dell'utente dopo il periodo di conservazione specificato interessa solo i dati correlati al canale memorizzati come parte di un'identità utente unificata. Se il collegamento dell'account canale non è stato abilitato, i dati del profilo dell'utente dal canale verranno conservati per 14 giorni.

Per i canali in cui il collegamento dei canali non è supportato, si applica anche il periodo di 14 giorni, anche se il collegamento degli account dei canali è stato abilitato a livello globale.