Configurare il gestore code IBM® MQ per autenticare utenti e applicazioni con token di autenticazione.
Se possibile, considerare l'utilizzo di un endpoint JWKS, consultare Configurazione di un gestore code per accettare i token di autenticazione utilizzando un endpoint JWKS, piuttosto che configurare manualmente i propri certificati di convalida token. L'utilizzo di JWKS in genere rende più semplice sia la configurazione iniziale che la manutenzione continua.
Scopri come funzionano i token con IBM MQ in Gestione dei token di autenticazione.
Prima di configurare il gestore code, verificare che l'oggetto AUTHINFO a cui si fa riferimento nell'attributo CONNAUTH del gestore code sia di tipo IDPWOS. L'autenticazione token è disponibile solo quando il gestore code è configurato per il controllo di ID utente e password del sistema operativo.
Verificare che l'attributo SecurityPolicy della stanza Service non sia impostato su Group. L'autenticazione token non è disponibile se SecurityPolicy è esplicitamente impostato su Gruppo. Se SecurityPolicy è impostato su Gruppo, rimuovere l'attributo SecurityPolicy dalla sezione Servizio, quindi riavviare il gestore code.
Informazioni su questa attività
Dalle applicazioni IBM MQ 9.3.4 è possibile autenticarsi con il gestore code utilizzando i token. IBM MQaccetta token Web JSON ( JWT ) da emittenti affidabili che seguono lo standard Internet propostoRFC7519 . Puoi utilizzare i token per autenticare un'identità, che può quindi essere adottata per i futuri controlli di autorizzazione.Configurare il gestore code per accettare i token salvando il certificato della chiave pubblica o la chiave simmetrica dell'emittente attendibile nel repository delle chiavi del gestore code. Aggiungere la sezione AuthToken al file qm.ini e aggiornare la configurazione della sicurezza in modo che il gestore code acquisisca la nuova configurazione.
È possibile configurare un keystore locale invece di utilizzare JWKS in un ambiente di verifica oppure quando non è possibile la connettività diretta al server di autenticazione dal gestore code. È anche possibile definire un keystore locale in aggiunta a qualsiasi endpoint JWKS.
Nota: dove sia un endpoint JWKS che un keystore locale forniscono un emittente e un KID corrispondenti per un token presentato, la chiave fornita dell'endpoint JWKS viene utilizzata di preferenza.
In queste situazioni, configurare il keystore locale nel modo seguente:
- Creare il repository delle chiavi
- Creare un repository di chiavi per il certificato della chiave pubblica o la chiave simmetrica ricevuta dall'emittente attendibile. È possibile utilizzare un repository delle chiavi CMS con estensione file .kdb o un repository delle chiavi PKCS#12 con estensione file .p12.
Immettere il seguente comando per creare un repository delle chiavi CMS :
runmqakm -keydb -create -db /var/mqm/qmgrs/qm1/tokenissuer/key.kdb -pw MyKeystorePassword -type cms
Se la
runmqakm il comando restituisce un errore, vedere
runmqakm -keydb . Se il comando viene completato correttamente, utilizzare il comando
ls per elencare il contenuto della directory:
ls -l /var/mqm/qmgrs/qm1/tokenissuer
Vengono visualizzati i seguenti file:
-rw------- 1 adminuser mqm 88 Feb 22 07:50 key.crl
-rw------- 1 adminuser mqm 88 Feb 22 07:50 key.kdb
-rw------- 1 adminuser mqm 88 Feb 22 07:50 key.rdb
- Se necessario, modificare la proprietà del gruppo per i file del repository chiavi creati in modo che al gruppo mqm possa essere concesso l'accesso in lettura. Inizialmente, solo l'utente admin che ha eseguito il comando ha accesso ai file creati.
chgrp mqm /var/mqm/qmgrs/qm1/tokenissuer/key.*
- Modificare la modalità dei file del repository delle chiavi per aggiungere autorizzazioni di lettura per il gruppo mqm. Ad esempio, il seguente comando aggiunge autorizzazioni di lettura / scrittura per il proprietario del file e autorizzazioni di sola lettura per il gruppo.
chmod 640 /var/mqm/qmgrs/qm1/tokenissuer/key.*
- Codificare la password del repository delle chiavi con il comando runqmcred e salvare la stringa codificata in un file.
- Creare un file che contenga la chiave iniziale utilizzata per codificare la password del repository delle chiavi.
Il file deve contenere la chiave iniziale come una singola riga di testo. La lunghezza massima della chiave iniziale è 256 byte. Se è già stata impostata una chiave iniziale per il gestore code utilizzando l'attributo gestore code
INITKEY , copiare il valore dell'attributo
INITKEY nel nuovo file. Se non è stata già impostata una chiave iniziale per il gestore code, creare una nuova chiave di codifica univoca e aggiungerla al file di chiavi iniziale.
Nota: per ulteriori informazioni, consultare
INITKEY. Se non si specifica la chiave iniziale, ne viene utilizzata una predefinita. È più sicuro utilizzare la propria chiave iniziale.
Nota: concedere le autorizzazioni minime necessarie sul file di chiavi iniziale per mantenere protetto il contenuto del file. Il file di chiavi iniziale viene utilizzato solo per codificare la password del repository delle chiavi. Pertanto, solo gli amministratori che utilizzano la chiave iniziale per codificare le password devono accedere alla lettura del file di chiavi iniziale.
- Se la chiave iniziale del gestore code non è ancora impostata, impostare il valore dell'attributo INITKEY del gestore code sulla chiave iniziale creata nel passo 2.a. Utilizzare il comando ALTER QMGR per impostare la chiave iniziale del gestore code. Ad esempio:
ALTER QMGR INITKEY('myEncrypt10nK3y')
- Immettere il comando runqmcred per codificare la password del repository delle chiavi. Utilizzare il parametro -sf per specificare il percorso del file che contiene la chiave iniziale.
runqmcred -sf initial.key
Quando richiesto, immettere la password del repository delle chiavi. La password codificata viene emessa dal comando.
5724-H72 (C) Copyright IBM Corp. 1994, 2026.
Enter password:
*************
<QM>!2!b5rb01sMzFzc1ClZeQMryruWFM3HSm8DKyEaZK7qzWY=!TrWdU57DCDXM0Qah99I/Lg==
Copiare la stringa sull'ultima riga e salvarla in un file.
- Utilizzare uno dei seguenti metodi per aggiungere il certificato della chiave pubblica o la chiave simmetrica dell'emittente del token al repository chiavi.
- Per aggiungere il certificato della chiave pubblica RSA al repository chiavi, immettere il seguente comando:
runmqakm -cert -add -db /var/mqm/qmgrs/qm1/tokenissuer/key.kdb -pw MyKeystorePassword -label keylabel
-file keyfile
- Per aggiungere una chiave simmetrica con codifica base64 al repository delle chiavi, immettere il seguente comando:
runmqakm -secretkey -add -db /var/mqm/qmgrs/qm1/tokenissuer/key.kdb -pw MyKeystorePassword -label keylabel
-file keyfile -format ascii
Dove
keylabel è l'etichetta da allegare al certificato o alla chiave segreta e
keyfile è il nome del file che contiene il certificato o la chiave segreta codificata base64 .
- Aggiungere la stanza AuthToken e i seguenti attributi al file qm.ini :
- Il percorso del repository delle chiavi, specificato utilizzando l'attributo KeyStore .
- Il file che contiene la password per il contenitore chiavi, specificato utilizzando l'attributo KeyStorePwdFile .
- L'etichetta del certificato o della chiave simmetrica che è stata aggiunta al passo 3, specificata utilizzando l'attributo CertLabel .
Ad esempio:
AuthToken:
KeyStore=/var/mqm/qmgrs/qm1/tokenissuer/key.kdb
KeyStorePwdFile=/var/mqm/qmgrs/qm1/tokenissuer/key.pw
CertLabel=rsakey
Dove
key.kdb è il nome del repository delle chiavi creato nel passo
1.ae
key.pw è il file che contiene la password crittografata per il repository delle chiavi creato nel passo
2.c.
- Se il gestore code è configurato per adottare l'ID utente contenuto nella richiesta utente del token da utilizzare nei successivi controlli di autorizzazione, aggiungere l'attributo UserClaim alla sezione AuthToken .
Per determinare se il gestore code è configurato per adottare l'ID utente nel token, immettere il comando MQSC riportato di seguito:
DISPLAY AUTHINFO(authinfo_name) ADOPTCTX
Dove
authinfo_name è il valore dell'attributo
CONNAUTH del gestore code. Se il valore dell'attributo
ADOPTCTX è
YES, il gestore code è configurato in modo da adottare l'ID utente nel token e l'attributo
UserClaim deve essere specificato nella stanza
AuthToken .
Impostare il valore dell'attributo
UserClaim sul nome della richiesta token che contiene l'ID utente da adottare. Ad esempio, se il token contiene l'asserzione
"AppUser": "MyUserName", aggiungere la seguente riga alla stanza
AuthToken :
UserClaim=AppUser
- Aggiornare la configurazione di sicurezza del gestore code in modo che acquisisca la configurazione del token dal file qm.ini . Immettere il seguente comando per avviare il comando runmqsc :
runmqsc qm1
quindi emettere il comando MQSC riportato di seguito:
REFRESH SECURITY TYPE(CONNAUTH)
Cosa fare successivamente
Collabora con gli sviluppatori per aiutarli a comprendere come utilizzare i token nelle applicazioni per l'autenticazione con il gestore code.