FAQ per App ID

Questa FAQ fornisce risposte a domande comuni sul servizio IBM Cloud® App ID.

Perché è necessario inserire l'URI di reindirizzamento?

Un URI di reindirizzamento è l'endpoint di callback della tua applicazione. Quando si autorizza l'URI, si dà a App ID l'autorizzazione a inviare gli utenti a quella posizione. Al runtime, App ID convalida l'URI contro il proprio allowlist prima di reindirizzare l'utente. Questo processo può aiutare a prevenire gli attacchi di phishing e riduce la possibilità che un aggressore riesca ad accedere ai token dei vostri utenti. Per ulteriori informazioni sugli URI di reindirizzamento, vedi Aggiunta di URI di reindirizzamento.

Non includere parametri di query nel tuo URL. Vengono ignorati nel processo di convalida. URL di esempio: http://host:[port]/path

Come funziona la crittografia in App ID?

Consulta la seguente tabella per le risposte alle domande più frequenti sulla crittografia.

Domande frequenti su come App ID gestisce la crittografia
Domanda Risposta
Perché utilizzate la crittografia? Un modo per proteggere le informazioni dei nostri utenti è la crittografia dei dati dei clienti a riposo e in transito. Il servizio crittografa i dati del cliente mentre sono inattivi utilizzando chiavi specifiche per il tenant e applica TLS 1.2+ in tutti i segmenti della rete.
Quali algoritmi vengono utilizzati in App ID? Il servizio utilizza AES e SHA-256 con salatura.
Utilizzate provider o moduli di crittografia open source o pubblici? Avete mai esposto le funzioni di crittografia? Il servizio utilizza le librerie avax.crypto Java, ma non espone mai una funzione di crittografia.
Come vengono archiviate le chiavi? Le chiavi sono generate, codificate con una chiave master specifica per ogni regione e poi archiviate localmente. Le chiavi master sono memorizzate in Key Protect. Ogni regione dispone della propria chiave della radice di attendibilità che viene archiviata in Key Protect, di cui viene eseguito il backup dall'HSM. Ogni istanza di servizio (tenant) ha le proprie chiavi di crittografia dei dati e di firma del token, che sono crittografate tramite la chiave della radice di attendibilità della regione.
Quale è la complessità della chiave che utilizzate? Il servizio utilizza 16 byte.
Si invocano API remote che espongono funzionalità di crittografia? No, non lo facciamo.

Quale sincronizzazione dell'orologio fa App ID uso?

App ID esegue in IBM Cloud, che utilizza un server NTP interno: servertime.service.softlayer.com.

La sincronizzazione della propria applicazione con App ID' s time source dipende da quale ambiente si sta utilizzando per eseguire l'applicazione.

  • Se l'applicazione è in esecuzione in IBM Cloud Classic Infrastructure, impostare i server NTP su servertime.service.softlayer.com.
  • Se l'applicazione è in esecuzione nell'infrastruttura IBM Cloud VPC, impostare i server NTP su time.adn.networklayer.com.
  • Se l'applicazione non è in esecuzione in IBM Cloud, non è possibile accedere a questi server di tempo. In questo caso, impostare i server NTP a time-a.nist.gov o time-b.nist.gov.

Qual è la differenza tra App ID e Keycloak?

Sia App ID che Keycloak possono essere utilizzati per aggiungere l'autenticazione alle applicazioni e ai servizi sicuri. La differenza principale tra le due offerte è il modo in cui sono fornite.

Keycloak viene fornito come software, il che significa che, come sviluppatore, sei responsabile di mantenere funzionante il prodotto dopo che lo scarichi. Sei responsabile di hosting, alta disponibilità, conformità, backup, protezione DDoS, bilanciamento del carico, firewall web, database e altro.

App ID è un'offerta completamente gestita offerta come "as-a-service". Ciò significa che IBM si occupa del funzionamento del servizio, gestisce i complimenti, disponibilità in più zone, SLA e altro ancora. App ID ha anche un'esperienza integrata con la piattaforma IBM Cloud che include le runtimes native e i servizi come il Kubernetes Service, Cloud Functions, e Activity Tracker.

Posso utilizzare lo stesso ID client in più di un'applicazione?

Anche se tecnicamente _can_ è possibile utilizzare le stesse credenziali in più di un'applicazione, si consiglia vivamente di non farlo per diversi motivi. In primo luogo, perché quando si condivide l'ID tra le applicazioni, qualsiasi tipo di attacco o compromissione colpisce l'intero ambiente anziché una sola applicazione. Ad esempio, se stai usando il tuo ID attraverso tre applicazioni e una di queste diventa compromessa, tutte e tre sono poi compromesse. Un aggressore è in grado di impersonare qualsiasi vostra app. Il secondo motivo è che quando si utilizza lo stesso ID client in più applicazioni, non c'è modo di differenziare le applicazioni. Ad esempio, non puoi dire quale applicazione è stata utilizzata per generare un token.

Come posso aggiornare la mia applicazione per utilizzare una nuova istanza di servizio senza perdere alcun dato

Puoi migrare le informazioni in una istanza di App ID a un'altra.

  1. Crea un'istanza del servizio.
  2. Duplica la tua configurazione del provider di identità utilizzando la GUI.
  3. Migra i tuoi profili utente. Gli utenti noti vengono esportati come un oggetto JSON. Gli utenti anonimi non possono essere migrati. Puoi scegliere di importare l'intero oggetto nella nuova istanza oppure suddividerlo e dividere gli utenti come ritieni adatto se hai più di una istanza. Per Cloud Directory, vedi Migrazione di utenti. Per i provider di identità federati, attieniti alla seguente procedura.
  4. Crea le credenziali dell'applicazione per richiamare la nuova istanza del servizio.
    1. Nella dashboard del servizio, passare alla scheda Applicazioni.
    2. Fai clic su Add Application e assegna un nome alla tua applicazione. Fai quindi clic su Save.
    3. Fai clic su View credentials nella tabella e copia l'output.
    4. Incolla le nuove credenziali nella tua applicazione.
  5. Aggiorna la tua applicazione per utilizzare le nuove credenziali, compresi gli eventuali URL.
  6. A seconda della tua configurazione, potresti dover ridistribuire o annullare l'associazione mediante bind per poi rieseguirla della tua applicazione.

Può App ID help configurare logout?

A seconda di come si configura la propria applicazione, App ID può aiutare a facilitare una funzionalità di log out per i propri utenti. Consulta la seguente tabella per vedere dove è disponibile la funzionalità per logout.

Opzioni della funzionalità di logout
Descrizione
App ID SDK I SDK di App ID hanno una funzionalità di logout integrata.
SSO Directory cloud[1] App ID fornisce la funzionalità di logout per la funzione SSO di Cloud Directory.
Ingress Ingress fornisce una funzionalità realizzata in logout.
Istio L'adattatore Istio è configurato per fornire la funzionalità di logout tramite OIDC.

Configurazione della disconnessione

Per configurare logout è necessario configurare la propria applicazione per inviare una richiesta al proprio provider di identità. Poi, per reindirizzare l'utente in un'area della propria applicazione che non richiede autenticazione. Nella maggior parte dei casi d'uso, una sessione del server applicativo potrebbe essere impostata dagli SDK di App ID, Ingress o Istio che lavora in collaborazione con un provider di identità federate come SAML o Cloud Directory per consentire l'autenticazione e l'autorizzazione.

Nel seguente esempio HTML, un App ID SDK viene utilizzato per configurare il log out. Ma, se si sta lavorando con un'altra opzione, è possibile utilizzare questo snippet come guida e aggiornarlo per adattarsi alle proprie esigenze.

<script>
  var ticker = setInterval(tick, 1000);
  var counter = 5;
  function tick() {
    var timerDiv = document.getElementById("timer");
    if (counter > 0) {
      timerDiv.innerText = "Logged out. Redirecting back in " + (counter--) + " seconds.";
    } else {
      document.location = "./appid_logout";
    }
  } </script>
<iframe height="0" width="0" src="https://login.microsoftonline.com/common/wsfederation?wa=wsignout1.0"></iframe>

  1. Tutti gli URL di reindirizzamento utilizzati con la funzione Cloud Directory SSO devono essere aggiunti all'elenco di permessi per la disconnessione URL nell'interfaccia utente App ID. ↩︎