Perché la mia richiesta di autenticazione SAML ha avuto esito negativo?
Si incontrano problemi con l'autenticazione SAML.
Perché la firma del messaggio SAML non può essere convalidata?
Quando verifichi la tua applicazione, ricevi il seguente messaggio di errore:
The SAML message signature could not be validated
Questo errore si verifica quando App ID non può verificare la firma inviata da SAML.
Per risolvere il problema, verifica che Inbound Signature sia impostato su None nella tua configurazione.
Perché manca il parametro RelayState
dalla mia risposta di autenticazione?
Il parametro RelayState
manca dalla tua risposta di autenticazione.
App ID invia un parametro opaco noto come RelayState
come parte della richiesta di autenticazione. Se non vedi il parametro nella tua risposta, il tuo provider di identità potrebbe non essere configurato per restituirlo correttamente.
RelayState
ha il seguente formato.
https://idp.example.org/SAML2/SSO/Redirect?SAMLRequest=request&RelayState=token
Verifica che il tuo provider SAML sia configurato per restituire il parametro RelayState
a App ID senza modificarlo in alcun modo.
Perché sto ricevendo un errore sul mio ID Name?
Quando invii una richiesta di autenticazione, ricevi un errore relativo a NameID
.
App ID, come provider di servizi, definisce il modo in cui vengono identificati gli utenti dal servizio e dal provider di identità. Con App ID, gli utenti vengono identificati nella richiesta di autenticazione NameID
nel campo NameID
come mostrato nel seguente esempio.
<NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</NameIDFormat>
Per risolvere il problema, assicurati che il tuo provider di identità NameID
sia formattato come un indirizzo email. Verificare che tutti gli utenti del registro del provider di identità abbiano un formato di indirizzo e-mail valido.
Quindi, verificare che il campo NameID
sia definito correttamente in modo da restituire sempre un'e-mail valida, anche se gli utenti del registro hanno più e-mail.
Errore di decrittografia della risposta
Ricevi uno dei seguenti messaggi di errore in risposta alla tua richiesta di autenticazione.
Messaggio di errore 1:
Unexpectedly received an encrypted assertion. Please enable response encryption in your App ID SAML configuration.
Messaggio di errore 2:
Could not decrypt SAML assertion. Ensure your SAML provider is configured with the App ID encryption.
Se il tuo provider di identità è configurato per la crittografia, App ID deve essere configurato per firmare le richieste di autenticazione SAML (AuthnRequest). Quindi, il tuo provider di identità deve essere configurato per attendersi la configurazione corrispondente. Potresti ricevere questi errori per uno dei seguenti motivi:
- App ID non è configurato per aspettarsi che la risposta SAML del provider di identità sia crittografata.
- App ID non può decrittografare correttamente le tue asserzioni.
Se ricevi il messaggio di errore 1, verifica che la tua configurazione SAML sia configurata per aspettarsi una risposta crittografata. Per impostazione predefinita, App ID non si aspetta che la risposta sia crittografata. Per configurare la
crittografia, imposta il parametro encryptResponse
su true utilizzando l'API.
Se ricevi il messaggio di errore 2, assicurati che il tuo certificato sia corretto. Puoi ottenere il certificato di firma dal file XML di metadati App ID. Assicurarsi di utilizzare la chiave con <KeyDescriptor use="signing">
.
Verifica che il tuo provider di identità sia configurato all'utilizzo di `` come algoritmo di firma.
Codice di errore del risponditore
Quando si invia una richiesta di autenticazione, si riceve il seguente messaggio di errore generico:
urn:oasis:names:tc:SAML:2.0:status:Responder
Anche se App ID invia la richiesta di autenticazione iniziale, il provider di identità deve eseguire l'autenticazione utente e restituire la risposta. Ci sono diversi motivi che possono indurre il vostro fornitore di identità a produrre questo messaggio di errore.
Potresti visualizzare il messaggio se il tuo provider di identità:
- Non riesce a trovare o verificare il nome utente.
- Non supporta il formato
NameID
definito nella richiesta di autenticazione (AuthnRequest
). - Non supporta il contesto di autenticazione.
- Richiede che la richiesta di autenticazione sia firmata o utilizzi un algoritmo specifico nella firma.
Per risolvere il problema, verifica la tua configurazione e il tuo nome utente. Verifica di aver definito le variabili e il contesto di autenticazione corretti. Verificate se la vostra richiesta deve essere firmata in un modo specifico.
Richiesta di autenticazione non supportata
Si riceve un messaggio relativo a una richiesta di autenticazione non supportata.
Quando App ID genera una richiesta di autenticazione, può utilizzare il contesto di autenticazione per richiedere la qualità dell'autenticazione e delle asserzioni SAML.
Per risolvere il problema, puoi aggiornare il tuo contesto di autenticazione. Per impostazione predefinita, App ID utilizza la classe di autenticazione urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
e il confronto
exact
. Puoi aggiornare il parametro di contesto per adattarsi al tuo caso di utilizzo utilizzando le API.
Errore di firma della richiesta SAML
Ricevi un errore che indica che una richiesta di autenticazione non può essere verificata.
App ID può essere configurato per firmare la richiesta di autenticazione SAML (AuthNRequest
), ma il tuo provider di identità deve essere configurato per attendersi la configurazione corrispondente.
Per risolvere il problema:
-
Verifica che IBM Cloud sia configurato per firmare la richiesta di autenticazione impostando il parametro
signRequest
sutrue
utilizzando l'API set SAML IdP. Si può verificare se la richiesta di autenticazione è firmata guardando la richiesta URL. La firma è inclusa come un parametro di query. Ad esempio,https://idp.example.org/SAML2/SSO/Redirect?SAMLRequest=request&SigAlg=value&Signature=value&RelayState=token
-
Verifica che il tuo provider di identità sia configurato con il certificato corretto. Per ottenere il certificato di firma, controllare il file XML dei metadati di IBM Cloud scaricato dalla dashboard IBM Cloud. Assicurarsi di utilizzare la chiave con
<KeyDescriptor use="signing">
. -
Verifica che il tuo provider di identità sia configurato all'utilizzo di `` come algoritmo di firma.
Perché il mio metodo di autenticazione non corrisponde?
Si riceve un messaggio che indica che il metodo di autenticazione fornito non corrisponde al metodo di autenticazione richiesto.
Ad esempio:
AADSTS75011: Authentication method ‘X509, Multifactor, X509Device’ by which the user authenticated with the service doesn't match requested authentication method 'Password, ProtectedTransport'.
Quando App ID genera una richiesta di autenticazione, il contesto di autenticazione viene utilizzato per richiedere la qualità dell'autenticazione e delle asserzioni SAML.
Per impostazione predefinita, App ID utilizza il confronto tra urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
e exact
in authnContext
come documentato in Understanding SAML,
mentre si sta cercando di utilizzare un metodo di autenticazione diverso. Nell'esempio fornito viene utilizzato il metodo di autenticazione X509, Multifactor
.
Per risolvere il problema, è possibile aggiornare l'impostazione del contesto di autenticazione per entrambi i valori class
e comparison
nel SAML authnContext
. Per aggiornare il parametro del contesto in
base al proprio caso d'uso, è possibile utilizzare l'API.
In alternativa, è possibile impostare un authnContext
vuoto nella configurazione SAML, come mostrato nell'esempio seguente.
"authnContext": { }