Creazione di modelli di profili attendibili gestiti dall'azienda
In un'azienda in cui si hanno molti account secondari, configurare manualmente i profili di fiducia in ogni account può richiedere molto tempo ed essere fonte di errori. Utilizza modelli di profilo affidabili per concedere in modo dinamico agli utenti federati l'accesso agli account della tua azienda.
È possibile stabilire un rapporto di fiducia solo con gli utenti federati quando si utilizzano modelli di profili attendibili gestiti dall'azienda. Per configurare profili attendibili negli account secondari per risorse di calcolo, servizi di IBM Cloud e ID servizio, vedere Creazione di profili attendibili.
Un utente non deve essere membro di un account per applicare un profilo attendibile. Un utente può applicare un profilo se ha lo stesso provider di identità ( IdP ) del profilo attendibile e soddisfa le condizioni di attendibilità. Ad esempio, un utente nella directory aziendale ha bisogno di accedere a un gruppo di account per svolgere un compito specifico. Creare un modello di profilo di fiducia con condizioni di fiducia che si rivolgono a quell'utente e alle politiche di cui ha bisogno. Quindi, assegnare il modello di profilo attendibile agli account a cui è necessario accedere. Ora l'utente può passare da un account all'altro applicando il profilo di fiducia in ciascun account e ha un accesso coerente tra gli account.
Gli amministratori del servizio Identity possono aggiungere relazioni e criteri di attendibilità al profilo attendibile gestito dall'azienda nel proprio account, ma non possono modificare quelli definiti nel modello.
Prima di iniziare
-
Prima di iniziare, è necessario Abilitare l'autenticazione da un provider di identità esterno.
-
Per sapere come i modelli IAM gestiti a livello aziendale rendono la tua azienda più sicura, consulta Come funziona l'accesso IAM gestito a livello aziendale.
-
Devi essere un membro dell'account aziendale per creare e assegnare modelli IAM gestiti dall'azienda.
-
Per creare un modello IAM gestito dall'azienda, assicurati di avere i seguenti diritti di accesso:
- Una policy con il ruolo di amministratore dei modelli su tutti i servizi di gestione degli account IAM
-
Per assegnare un modello IAM gestito dall'azienda agli account secondari, assicurati di avere i seguenti diritti di accesso:
- Una politica con il ruolo di amministratore assegnazione modelli su tutti i servizi di gestione account IAM
- Una policy con almeno il ruolo di Viewer sul servizio Enterprise
Per impostazione predefinita, nessun utente ha i ruoli di amministratore dei modelli o di amministratore delle assegnazioni dei modelli, incluso il proprietario dell'account.
-
Gli account nuovi ed esistenti nella vostra azienda devono optare per lo IAM gestito dall'azienda. Per ulteriori informazioni, vedere Opting in to enterprise-managed IAM.
Creazione di un modello di profilo attendibile
Considera l'utilizzo di modelli di profilo affidabili quando gli utenti hanno bisogno di accedere a molti account secondari o se un gruppo di utenti ha bisogno di un accesso temporaneo a più account secondari.
Per creare un modello di profilo attendibile, completare i seguenti passaggi:
-
Accedere a Gestione > Accesso (IAM) > Modelli e selezionare Profili attendibili nella console IBM Cloud.
-
Fai clic su Crea.
-
Immettere un nome e una descrizione per il modello di profilo attendibile che ne descriva lo scopo per gli utenti aziendali.
-
Inserisci un nome, un indirizzo e-mail e una descrizione per il profilo attendibile gestito dall'azienda che ne descriva lo scopo per gli utenti degli account secondari e assicurati di includere nella descrizione un elenco delle azioni disponibili per questo profilo attendibile.
Nell'e-mail è possibile aggiungere un indirizzo e-mail personale o una lista di distribuzione.
È possibile utilizzare variabili sostitutive nel nome del profilo per personalizzarlo per ogni account. Sono supportate le seguenti variabili:
${template_id}: Sarà sostituito da un identificatore unico per il modello di profilo attendibile.${template_name}: Sarà sostituito dal nome attuale del modello di profilo attendibile.${template_version}: Sarà sostituito dalla versione corrente del modello di profilo di fiducia.${account_id}: Sarà sostituito dall'identificatore dell'account a cui è assegnato il modello di profilo attendibile.${account_name}: Sarà sostituito dal nome dell'account a cui è assegnato il modello di profilo attendibile.
Le modifiche a valori quali il nome dell'account non causano l'aggiornamento del nome del profilo di fiducia. Il nome del profilo viene impostato quando si assegna il modello a un account o si aggiorna la versione del modello. Ciò significa che se il nome dell'account cambia in seguito, il nome del profilo non verrà aggiornato automaticamente. Il nuovo nome dell'account verrà utilizzato solo alla successiva assegnazione del modello o all'aggiornamento.
-
Fai clic su Crea.
(Opzionale) Aggiungere relazioni di fiducia
Singoli utenti
Stabilite la fiducia con i singoli utenti all'interno o all'esterno del vostro account utilizzando il loro ID IAM IBM Cloud.
Per stabilire un rapporto di fiducia, completate i seguenti passaggi:
- Fare clic su Relazione di fiducia > Utenti individuali.
- Fare clic su Aggiungi e selezionare Utenti account o Utenti esterni per invitare i membri dell'azienda e assegnare il modello.
- Fare clic su Utenti dell'account per aggiungere un utente all'account.
- Selezionare un utente o più utenti.
- Fare clic su Aggiungi per aggiungere l'utente a un profilo associato.
- Fare clic su Utenti esterni per aggiungere utenti che non fanno parte dell'account.
- Inserire l'ID IAM.
- Immettere gli ID dei conti associati. È possibile aggiungere più di un account e includere un account diverso da quello su cui l'utente sta lavorando.
- (Facoltativo) Immetti una descrizione.
- Fare clic su Aggiungi per aggiungere l'utente a un profilo associato.
- Fare clic su Utenti dell'account per aggiungere un utente all'account.
Fare clic sull'icona Azioni L' accanto agli utenti che si desidera modificare o rimuovere, selezionando Aggiungi o Rimuovi.
Utenti federati
Instaurare un rapporto di fiducia con gli utenti federati creando condizioni basate sugli attributi presenti nella directory aziendale. Quando gli utenti federati soddisfano le condizioni definite dall'utente, possono applicare il profilo.
Per stabilire un rapporto di fiducia, completate i seguenti passaggi:
- Fare clic su Relazione di fiducia > Utenti federati.
- Fare clic su Aggiungi e selezionare Utenti federati da IBMid o **Utenti federati da IBM Cloud AppID come metodo di autenticazione e inserire il provider di identità predefinito (**IdP ).
- Aggiungere condizioni basate sui dati dell' IdP, per definire come e quando gli utenti federati possono applicare il profilo.
- Fare clic su Aggiungi una condizione per definire più condizioni. Gli utenti federati devono soddisfare tutte le condizioni per applicare il profilo di fiducia. Per ulteriori informazioni sui campi utilizzati per creare le condizioni, vedere Proprietà delle condizioni IAM.
- Visualizza i dati del provider di identità per cercare nomi e valori di attributi nei tuoi dati personali dal tuo IdP. Per ulteriori informazioni, vedere Utilizzo dei dati dell' IdP e per creare profili affidabili.
- Definire la durata della sessione per stabilire per quanto tempo un utente può applicare il profilo prima di dover eseguire nuovamente l'autenticazione.
- Fai clic su Aggiungi.
Fare clic sull'icona Azioni L' accanto agli utenti federati che si desidera modificare o rimuovere, selezionando Aggiungi o Rimuovi.
Risorse di calcolo
Stabilire la fiducia con le risorse di calcolo per consentire ai programmi in esecuzione in un cluster specifico di accedere in modo sicuro alle risorse necessarie.
Per stabilire un rapporto di fiducia, completate i seguenti passaggi:
- Fare clic su Relazione di fiducia > Risorse di calcolo.
- Fare clic su Aggiungi e selezionare un servizio di calcolo.
- Fare clic su Aggiungi una condizione per definire più condizioni. Per ulteriori informazioni sui campi utilizzati per creare le condizioni, vedere Proprietà delle condizioni IAM.
- Fai clic su Aggiungi.
Fare clic sull'icona Azioni L' accanto alla risorsa di calcolo che si desidera modificare o rimuovere, selezionando Aggiungi o Rimuovi.
Servizi IBM Cloud
Stabilire la fiducia con i servizi di IBM Cloud consentendo l'istanza di un servizio cloud identificato dal nome della risorsa cloud.
Per stabilire un rapporto di fiducia, completate i seguenti passaggi:
- Fare clic su Relazione fiduciaria > IBM Cloud servizi.
- Fare clic su Aggiungi e inserire il CRN.
- (Facoltativo) Immetti una descrizione.
- Fai clic su Aggiungi.
Fare clic sull'icona Azioni accanto al servizio IBM Cloud che si desidera modificare o rimuovere, selezionando Aggiungi o Rimuovi.
ID servizio
Stabilire la fiducia con gli ID dei servizi autenticando i servizi. È possibile creare un ID servizio per un servizio specifico, con chiavi API generate per autenticarlo in modo sicuro. Inoltre, l'ID del servizio può assumere un profilo di fiducia, ereditando le autorizzazioni e accedendo alle risorse secondo le necessità.
Per stabilire un rapporto di fiducia, completate i seguenti passaggi:
- Fare clic su Relazione di fiducia > ID servizio.
- Fare clic su Aggiungi e inserire un ID servizio.
- (Facoltativo) Immetti una descrizione.
- Fai clic su Aggiungi.
Fare clic sull'icona Azioni L' accanto all'ID del servizio che si desidera modificare o rimuovere, selezionando Aggiungi o Rimuovi.
(Opzionale) Aggiungere le politiche di accesso
Le politiche di accesso consentono l'accesso agli account figlio agli utenti federati che possono applicare il profilo.
-
Fare clic su Accesso > Aggiungi.
-
Inserisci un nome e descrivi la politica che desideri assegnare.
Si crea un modello di policy con ogni policy configurata per un modello di profilo attendibile. È possibile fare riferimento a un modello di policy per assegnare l'accesso in altri modelli IAM aziendali.
-
Selezionare un servizio o un gruppo di servizi e fare clic su Avanti.
-
Scegliere l'accesso a Tutte le risorse o selezionare Risorse specifiche in base agli attributi e fare clic su Avanti.
-
Nella sezione Ruoli e azioni, selezionare i ruoli che definiscono l'ambito di accesso. È possibile creare modelli di ruolo personalizzati all'interno di un flusso di modelli di criterio e anche selezionare un ruolo personalizzato dai modelli di ruolo personalizzati esistenti per il servizio selezionato.
- Fare clic su Crea ruolo personalizzato per definire una combinazione personalizzata di azioni.
- Inserire un nome di modello.
- (Facoltativo) Inserisci una descrizione del modello.
- Inserisci un nome per il ruolo personalizzato.
- Inserire un ID per il ruolo personalizzato.
- (Facoltativo) Inserisci una descrizione per il ruolo personalizzato.
- Seleziona le azioni e fai clic su Crea. Il ruolo personalizzato viene elencato e selezionato insieme ad altri ruoli già selezionati per il criterio.
Utilizzare la barra di ricerca per cercare i ruoli che supportano determinate azioni. Ad esempio, cercare lettura, modifica o visualizzazione per visualizzare l'elenco dei ruoli a cui si applicano queste azioni.
-
(Opzionale) Aggiungere condizioni per specificare quando si desidera che la politica conceda l'accesso.
-
Fai clic su Aggiungi.
Rimuovi le politiche di accesso
È possibile rimuovere le politiche prima che un modello venga confermato e assegnato.
Aggiornamento dei dettagli del modello
È possibile aggiornare il nome del modello, il nome del profilo di fiducia e le descrizioni in qualsiasi momento prima di confermare il modello. Per aggiornare i dettagli del modello, procedere come segue:
- Vai su Gestisci > Accesso (IAM) > Modelli.
- Selezionare il modello di profilo attendibile che si desidera aggiornare.
- Fare clic sull 'icona
nella sezione Dettagli.
- Apporta gli aggiornamenti necessari al nome del modello, al nome del profilo attendibile e alle descrizioni.
- Fare clic su Salva.
Se è necessario effettuare aggiornamenti dopo aver confermato il modello, creare una nuova versione.
Rivedere il proprio modello di profilo di fiducia
Rivedere e confermare il modello di profilo attendibile in modo che non possano essere apportate ulteriori modifiche alla versione. In questo modo, l'amministratore dell'assegnazione dei modelli può essere sicuro di assegnare la versione solo quando hai confermato che è pronta.
- Fare clic su Panoramica > Revisione.
- Verificare che il modello di profilo attendibile sia configurato secondo le proprie aspettative.
- Fare clic sulla casella di controllo per confermare che non è possibile apportare modifiche alla versione.
- Fai clic su Commit.
Assegnare un modello di profilo affidabile agli account figlio
Assegna il modello di profilo attendibile agli account secondari della tua azienda.
È possibile assegnare un modello IAM solo agli account figlio e ai gruppi di account, non all'account aziendale.
-
Fare clic su Assegna account.
-
Selezionare gli account e i gruppi di account a cui si desidera assegnare il modello.
In ciascuno degli account figlio a cui assegni il modello, crei un profilo attendibile gestito dall'azienda. Gli utenti nell'account figlio possono determinare che un profilo attendibile proviene da un modello IAM gestito dall'azienda tag sul profilo.
-
Fai clic su Assegna.
Se un'operazione non riesce, fare clic su Riprova.
Creazione di una nuova versione
Se si desidera apportare modifiche a un modello di profilo affidabile che è stato impegnato o assegnato, creare una nuova versione. È possibile creare una nuova versione basata sull'ultima versione o una versione diversa selezionata.
Per creare una nuova versione di un modello di profilo affidabile, completare i seguenti passaggi:
-
Vai a Gestisci > Accesso (IAM) > Modelli nella console di amministrazione ( IBM Cloud ).
-
Scegli il modello di profilo che preferisci.
-
Fare clic sull'icona Nuova versione Icona
.
-
Selezionare la versione che si desidera come base per la nuova versione.
-
Inserisci un nuovo nome e una nuova descrizione per il modello o mantieni quelli che stai già utilizzando.
L'inserimento di un nuovo nome modello aggiorna il nome modello per questa versione e per tutte le versioni precedenti. La descrizione del modello è memorizzata separatamente per ogni versione.
-
Inserisci un nuovo nome e una nuova descrizione per il profilo di fiducia oppure mantieni quelli che stai già utilizzando.
L'inserimento di un nuovo nome di profilo attendibile sostituisce il nome del profilo attendibile precedente visualizzato negli account secondari dopo l'assegnazione della nuova versione.
-
Seleziona gli oggetti che vuoi trasferire nella nuova versione.
- (Opzionale) Selezionare Rapporti di fiducia.
- (Opzionale) Selezionare Accesso.
-
Fai clic su Crea.
-
Apportare eventuali altre modifiche alla configurazione.
-
Fare clic su Rivedi e confermare la nuova versione. Per ulteriori informazioni, vedere Revisione del modello del profilo di fiducia.
Per assegnare una nuova versione di un modello di profilo attendibile, completare i seguenti passaggi:
- Vai a Gestisci > Accesso (IAM) > Modelli nella console di amministrazione ( IBM Cloud ).
- Fare clic su Profili attendibili.
- Fare clic sull'ic ona Espandi tabella
sul modello con cui si desidera lavorare.
- Selezionare la versione attualmente assegnata agli account figlio.
- Fare clic su Assegnazioni.
- Fare clic su Aggiorna nell'account o nell'assegnazione del gruppo di account in cui si desidera assegnare una versione diversa.
- Fai clic su " Seleziona una versione ".
- Selezionare la versione che si desidera sostituire alla versione attuale.
- Fai clic su Aggiorna.
- Ripetere questi passaggi per ogni account o gruppo di account a cui si desidera assegnare una versione diversa.
La nuova versione del modello che assegni sostituisce la vecchia versione. Ulteriori informazioni su Assegnazione di una nuova versione.
Rimozione di un incarico
È possibile rimuovere un modello assegnato da uno o più account a cui è stato assegnato. Potresti volerlo fare se il modello non funziona come previsto. Quando si rimuove un modello assegnato da un account, per impostazione predefinita viene ripristinata la versione precedente del modello. Se l'assegnazione rimossa è per la prima o unica versione di un modello, il profilo di fiducia nell'account figlio viene rimosso.
Per rimuovere un incarico, segui questi passaggi:
- Vai a Gestisci > Accesso (IAM) > Modelli nella console di amministrazione ( IBM Cloud ).
- Fare clic su Profili attendibili e selezionare il modello di profilo attendibile.
- Fare clic su Aggiorna assegnazioni.
- Per rimuovere un'assegnazione da uno o più account, deseleziona gli account in cui desideri rimuovere l'assegnazione del modello.
- Per rimuovere un incarico da tutti gli account a cui è assegnato il modello, fare clic su Annulla assegnazione a tutti.
Creazione di un modello di profilo attendibile utilizzando la CLI
Considera l'utilizzo di modelli di profilo attendibili quando hai molti account figlio che richiedono lo stesso profilo attendibile. Ad esempio, la tua organizzazione potrebbe avere standard interni o richiedere la conformità alle normative del settore.
Per creare un modello di profilo attendibile tramite la CLI, procedere come segue:
-
Creare un file JSON che configuri la definizione del modello di profilo attendibile. Per ulteriori informazioni sugli attributi che è possibile utilizzare nel file JSON, consultare l'API di identità IAM.
Il seguente file JSON di esempio specifica l'
account_ide dell'account aziendale, l'namee del modello e la configurazione dell'profile. Questo profilo di fiducia è destinato agli amministratori di database. Un utente specifico è autorizzato ad applicare il modello come definito inidentities. È definito ancherules, che concede l'accesso al profilo in base agli attributi di SAML.{ "account_id": "5bbe28be34524sdbdaa34d37d1f2294a", "name": "dbadmintemplate", "profile": { "name": "Profile for DB Admins", "description": "allows users to admin db instances", "identities": [ { "type": "user", "identifier": "IBMid-123456789", "accounts": [ "5bbe28be34524sdbdaa34d37d1f2294a" ] } ], "rules": [ { "type": "Profile", "realm_name": "${IDP_REALM_NAME}", "expiration": 43200, "conditions": [ { "claim": "group", "operator": "EQUALS", "value": "\"admins\"" } ] } ] }, "policy_template_references": [ { "id": "Policy Template-12345", "version": 1 } ] } -
Creare il modello di profilo attendibile utilizzando il comando
trusted-profile-template-createcome mostrato nella seguente richiesta di esempio:ibmcloud iam trustedprofile-template-create dbadmintemplate --file /path/to/db_trusted-profile_template.json
Aggiornamento di un modello di profilo affidabile utilizzando la CLI
È possibile aggiornare un modello di profilo attendibile in qualsiasi momento prima di confermarlo. Per aggiornare una versione specifica di un modello di profilo attendibile, completare i seguenti passaggi:
-
Aggiorna il tuo file JSON con la nuova definizione del modello di profilo attendibile. Per ulteriori informazioni sugli attributi che è possibile utilizzare nel file JSON, consultare l'API di identità IAM.
{ "account_id": "5bbe28be34524sdbdaa34d37d1f2294a", "name": "DBAdministrator", "profile": { "name": "Profile for DB Admins", "description": "allows users to admin db instances", "identities": [ { "type": "user", "identifier": "IBMid-123456789", "accounts": [ "5bbe28be34524sdbdaa34d37d1f2294a" ] } ], "rules": [ { "type": "Profile", "realm_name": "${IDP_REALM_NAME}", "expiration": 43200, "conditions": [ { "claim": "group", "operator": "EQUALS", "value": "\"admins\"" } ] } ] }, "policy_template_references": [ { "id": "Policy Template-12345", "version": 1 } ] }
Quando si aggiorna il nome del modello, questo aggiorna il nome per ogni versione.
{: note}
1. Per aggiornare una versione specifica di un modello di profilo attendibile, utilizzare il comando `trusted-profile-template-version-update` come mostrato nella seguente richiesta di esempio:
```bash {: codeblock}
ibmcloud iam trustedpprofile-template-version-update DBAdministrator 1 --file /path/to/db_trusted-profile_template.json
## Impegnare un modello di profilo affidabile utilizzando la CLI
{: #commit-trusted-profile-template-cli cli}
Rivedere il modello di profilo di fiducia e confermarlo in modo che non possano essere apportate ulteriori modifiche alla versione. L'impegno di una versione è un passo necessario prima di poterla assegnare agli account figlio. In questo modo, l'amministratore dell'assegnazione dei modelli può essere sicuro di assegnare la versione solo quando hai confermato che è pronta.
La seguente richiesta di esempio impegna la versione `1` del modello di profilo attendibile denominato `DBAdministrator`:
```bash {: codeblock}
ibmcloud iam trusted-profile-template-version-commit DBAdministrator 1
## Assegnare un modello di profilo attendibile agli account figlio utilizzando la CLI
{: #assign-trusted-profile-template-cli cli}
Assegna il modello di profilo attendibile agli account secondari della tua azienda.
È possibile assegnare un modello IAM solo agli account figlio e ai gruppi di account, non all'account aziendale.
{: note}
Per creare un'assegnazione per un modello di profilo attendibile, completare i seguenti passaggi:
1. Elenca i modelli di profilo attendibili nel tuo account aziendale e annota il nome del modello e il numero di versione del modello di profilo attendibile che desideri assegnare agli account secondari:
```bash {: codeblock}
ibmcloud iam trusted-profile-templates
1. Assegna il modello a un `Account` o a un `AccountGroup` utilizzando il comando `account-trusted profile-assignment-create`.
ibmcloud iam trusted-profile-assignment-create DBAdministrator 1 AccountGroup 955fc2274567474f8da802d5c376504b
Se un'operazione non riesce, utilizzare il metodo " `trusted-profile-assignment-update` " per riprovare.
{: tip}
## Creazione di una nuova versione tramite la CLI
{: #new-version-trusted-profile-template cli}
Se si desidera apportare modifiche a un modello di profilo affidabile che è stato impegnato o assegnato, creare una nuova versione.
1. Aggiorna il tuo file JSON con la nuova definizione del modello di profilo attendibile. Per ulteriori informazioni sugli attributi che è possibile utilizzare nel file JSON, consultare [l'API di identità IAM](/docs/apis/iam-identity-token-api#create-profile-template-version).
1. Utilizzare il metodo " `trusted-profile-template-version-create` " per creare una nuova versione. La seguente richiesta di esempio crea una nuova versione del modello `DBAdministrator`.
ibmcloud iam trusted-profile-template-version-create DBAdministrator --file /path/to/db_trusted-profile_template.json
## Aggiornamento di un incarico utilizzando la CLI
{: #update-assignment-trusted-profile-cli cli}
Aggiorna un incarico per migrare a una nuova versione o riprova un incarico non riuscito.
La nuova versione del modello che assegni sostituisce la vecchia versione. Ulteriori informazioni su [Assegnazione di una nuova versione](/docs/enterprise-management?topic=enterprise-management-working-with-versions#new-version).
{: note}
1. Elenca le assegnazioni di profili attendibili nel tuo account aziendale e annota l' `template_id` e per l'assegnazione che desideri aggiornare:
ibmcloud iam trusted-profile-assignments
1. Aggiornare l'assegnazione del profilo attendibile. Se si sta riprovando un incarico, utilizzare lo stesso numero di versione. La seguente richiesta di esempio migra l'assegnazione `ProfileTemplate-cac1b203-5956-4981-bdec-0a4af4feab4d` alla versione 2.
ibmcloud iam trusted-profile-assignment-update ProfileTemplate-cac1b203-5956-4981-bdec-0a4af4feab4d 2
## Rimuovere un'assegnazione utilizzando la CLI
{: #remove-assignment-trusted-profile-cli cli}
È possibile rimuovere un'assegnazione di modello da un account o da un gruppo di account a cui è assegnato il modello. Potresti volerlo fare se il modello non funziona come previsto. Quando si rimuove un modello assegnato da un account, per impostazione predefinita viene ripristinata la versione precedente del modello. Se l'assegnazione rimossa è per la prima o unica versione di un modello, il profilo attendibile gestito dall'azienda nell'account figlio viene rimosso.
Per rimuovere un incarico, segui questi passaggi:
1. Elenca gli incarichi nel conto utilizzando il metodo dell' `account-trusted profile-assignments`. Prendi nota dell' `ASSIGNMENT_ID` e per l'assegnazione che vuoi rimuovere.
1. Rimuovere l'assegnazione utilizzando il metodo " `account-trusted profile-assigment-delete` ". La seguente richiesta di esempio rimuove l'assegnazione `AccountSettingsAssignment-63d65ed159ff463b8ec09ea77d22a05b`.
ibmcloud iam account-trusted profile-assignment-delete AccountSettingsAssignment-63d65ed159ff463b8ec09ea77d22a05b
## Eliminazione di una versione tramite la CLI
{: #delete-trusted-profile-template-version-cli cli}
Prima di poter eliminare una versione del modello di profilo attendibile, è necessario rimuovere tutte le assegnazioni per quella versione del modello. Eliminare una versione specifica completando i seguenti passaggi:
1. Elenca i modelli di profilo attendibili nel tuo account aziendale e annota il nome del modello e il numero di versione per la versione che desideri eliminare:
ibmcloud iam account-trusted profile-templates
1. Elimina la versione:
ibmcloud iam account-trusted profile-template-delete AccountSettingsTemplateUpdated 2
1. Per eliminare tutte le versioni, ripetere questi passaggi. Assicurati di rimuovere prima le assegnazioni per ogni versione.
## Creazione di un modello di profilo affidabile utilizzando l'API
{: #create-trusted-profile-template-api api}
Considera l'utilizzo di modelli di profilo attendibili quando hai molti account figlio che richiedono lo stesso profilo attendibile. Ad esempio, la tua organizzazione potrebbe avere standard interni o richiedere la conformità alle normative del settore.
Per creare un modello di profilo attendibile utilizzando l'API, completare i seguenti passaggi:
1. Configurare la definizione del modello di profilo attendibile. Per ulteriori informazioni sugli attributi che è possibile utilizzare, consultare [l'API di identità IAM](/docs/apis/iam-identity-token-api#create-profile-template).
L'esempio seguente specifica l' account_id e dell'account aziendale, l' name e del modello e la configurazione dell' profile. Questo profilo di fiducia è destinato agli amministratori di database. Un utente
specifico è autorizzato ad applicare il modello come definito in identities. È definito anche rules, che concede l'accesso al profilo in base agli attributi di SAML.
{
"account_id": "5bbe28be34524sdbdaa34d37d1f2294a",
"name": "dbadmintemplate",
"profile": {
"name": "Profile for DB Admins",
"description": "allows users to admin db instances",
"identities": [
{
"type": "user",
"identifier": "IBMid-123456789",
"accounts": [
"5bbe28be34524sdbdaa34d37d1f2294a"
]
}
],
"rules": [
{
"type": "Profile",
"realm_name": "${IDP_REALM_NAME}",
"expiration": 43200,
"conditions": [
{
"claim": "group",
"operator": "EQUALS",
"value": "\"admins\""
}
]
}
]
},
"policy_template_references": [
{
"id": "Policy Template-12345",
"version": 1
}
]
}
ProfileClaimRuleConditions condition = new ProfileClaimRuleConditions.Builder()
.claim("blueGroups")
.operator("EQUALS")
.value("\"cloud-docs-dev\"")
.build();
List<ProfileClaimRuleConditions> conditions = new ArrayList<>();
conditions.add(condition);
TrustedProfileTemplateClaimRule claimRule = new TrustedProfileTemplateClaimRule.Builder()
.name("My Rule")
.realmName(realmName)
.type(claimRuleType)
.expiration(43200)
.conditions(conditions)
.build();
TemplateProfileComponentRequest profile = new TemplateProfileComponentRequest.Builder()
.addRules(claimRule)
.name(profileTemplateProfileName)
.description("Trusted profile created from a template")
.build();
CreateProfileTemplateOptions createProfileTemplateOptions = new CreateProfileTemplateOptions.Builder()
.name(profileTemplateName)
.description("IAM enterprise trusted profile template example")
.accountId(enterpriseAccountId)
.profile(profile)
.build();
Response<TrustedProfileTemplateResponse> response = service.createProfileTemplate(createProfileTemplateOptions).execute();
TrustedProfileTemplateResponse trustedProfileTemplateResult = response.getResult();
// Save the id for use by other test methods.
profileTemplateId = trustedProfileTemplateResult.getId();
profileTemplateVersion = trustedProfileTemplateResult.getVersion().longValue();
System.out.println(trustedProfileTemplateResult);
```
```javascript {: javascript codeblock}
const condition = {
claim: "blueGroups",
operator: "EQUALS",
value: "\"cloud-docs-dev\"",
}
const claimRule = {
name: "My Rule",
realm_name: realmName,
type: 'Profile-SAML',
expiration: 43200,
conditions: [condition],
}
const profile = {
rules: [claimRule],
name: "Profile-From-Example-Template",
description: "Trusted profile created from a template",
}
const templateParams = {
name: "Example-Profile-Template",
description: "IAM enterprise trusted profile template example",
accountId: enterpriseAccountId,
profile: profile,
}
try {
const res = await iamIdentityService.createProfileTemplate(templateParams);
profileTemplateEtag = res.headers.etag;
const { result } = res;
profileTemplateId = result.id;
profileTemplateVersion = result.version;
console.log(JSON.stringify(result, null, 2));
} catch (err) {
console.warn(err);
}
```
```python {: python codeblock}
profile_claim_rule_conditions = {}
profile_claim_rule_conditions['claim'] = 'blueGroups'
profile_claim_rule_conditions['operator'] = 'EQUALS'
profile_claim_rule_conditions['value'] = '\"cloud-docs-dev\"'
profile_claim_rule = {}
profile_claim_rule['name'] = 'My Rule'
profile_claim_rule['realm_name'] = 'https://sdk.test.realm/1234'
profile_claim_rule['type'] = 'Profile-SAML'
profile_claim_rule['expiration'] = 43200
profile_claim_rule['conditions'] = [profile_claim_rule_conditions]
profile = {}
profile['name'] = 'Profile-From-Example-Template'
profile['description'] = 'Trusted profile created from a template'
profile['rules'] = [profile_claim_rule]
create_response = iam_identity_service.create_profile_template(
name='Example-Profile-Template',
description='IAM enterprise trusted profile template example',
account_id=enterprise_account_id,
profile=profile,
)
profile_template = create_response.get_result()
print('\ncreate_profile_template() response: ', json.dumps(profile_template, indent=2))
global profile_template_id
profile_template_id = profile_template['id']
global profile_template_version
profile_template_version = profile_template['version']
```
```go {: go codeblock}
profileClaimRuleConditions := new(iamidentityv1.ProfileClaimRuleConditions)
profileClaimRuleConditions.Claim = core.StringPtr("blueGroups")
profileClaimRuleConditions.Operator = core.StringPtr("EQUALS")
profileClaimRuleConditions.Value = core.StringPtr("\"cloud-docs-dev\"")
profileTemplateClaimRule := new(iamidentityv1.TrustedProfileTemplateClaimRule)
profileTemplateClaimRule.Name = core.StringPtr("My Rule")
profileTemplateClaimRule.RealmName = &realmName
profileTemplateClaimRule.Type = &claimRuleType
profileTemplateClaimRule.Expiration = core.Int64Ptr(int64(43200))
profileTemplateClaimRule.Conditions = []iamidentityv1.ProfileClaimRuleConditions{*profileClaimRuleConditions}
profile := new(iamidentityv1.TemplateProfileComponentRequest)
profile.Name = &profileTemplateProfileName
profile.Description = core.StringPtr("Example Profile created from Profile Template")
profile.Rules = []iamidentityv1.TrustedProfileTemplateClaimRule{*profileTemplateClaimRule}
createOptions := &iamidentityv1.CreateProfileTemplateOptions{
Name: &profileTemplateName,
Description: core.StringPtr("Example Profile Template"),
AccountID: &enterpriseAccountID,
Profile: profile,
}
createResponse, response, err := iamIdentityService.CreateProfileTemplate(createOptions)
b, _ := json.MarshalIndent(createResponse, "", " ")
fmt.Println(string(b))
// Grab the ID and Etag value from the response for use in the update operation
profileTemplateId = *createResponse.ID
profileTemplateVersion = *createResponse.Version
profileTemplateEtag = response.GetHeaders().Get("Etag")
```
Salvare l' ProfileTemplate e ID e il valore entity_tag dalla risposta per utilizzarli nelle operazioni di aggiornamento.
{ tip}
## Aggiornamento di un modello di profilo affidabile utilizzando l'API
{: #update-trusted-profile-template-api api}
È possibile aggiornare un modello di profilo attendibile in qualsiasi momento prima di confermarlo. Per ulteriori informazioni sugli attributi che è possibile utilizzare nel file JSON, consultare [l'API di identità IAM](/docs/apis/iam-identity-token-api#update-profile-template-version). Per aggiornare una versione specifica di un modello di profilo attendibile, completare i seguenti passaggi:
1. Elenca i modelli di profilo attendibili nel tuo account aziendale e annota l'ID `ProfileTemplate` e l'ETag nella risposta per la versione del modello che desideri aggiornare.
```bash {: curl codeblock}
curl -X GET 'https://iam.cloud.ibm.com/v1/profile_templates?account_id=5bbe28be34524sdbdaa34d37d1f2294a' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
ListProfileTemplatesOptions listOptions = new ListProfileTemplatesOptions.Builder()
.accountId(enterpriseAccountId)
.build();
Response<TrustedProfileTemplateList> response = service.listProfileTemplates(listOptions).execute();
TrustedProfileTemplateList listResult = response.getResult();
System.out.println(listResult);
const params = {
accountId: enterpriseAccountId,
}
try {
const res = await iamIdentityService.listProfileTemplates(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
list_response = iam_identity_service.list_profile_templates(account_id=enterprise_account_id)
profile_template_list = list_response.get_result()
print('\nlist_profile_templates response: ', json.dumps(profile_template_list, indent=2))
listOptions := &iamidentityv1.ListProfileTemplatesOptions{
AccountID: &enterpriseAccountID,
}
listResponse, response, err := iamIdentityService.ListProfileTemplates(listOptions)
b, _ := json.MarshalIndent(listResponse, "", " ")
fmt.Println(string(b))
1. Aggiorna la definizione del modello di profilo attendibile.
```bash {: curl codeblock}
curl -X PUT 'https://iam.cloud.ibm.com/v1/profile_templates/{template_id}/versions/{version}' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN' -d '{ "account_id": "5bbe28be34524sdbdaa34d37d1f2294a", "name": "db admin template", "profile": { "name": "Profile for DB Admins", "description": "allows users to admin db instances", "rules": [ { "type": "Profile", "realm_name": "${IDP_REALM_NAME}", "expiration": 43200, "conditions": [ { "claim": "name", "operator": "EQUALS", "value": ""My Name"" } ] } ] }, "policy_template_references": [ { "id": "Policy Template-12345", "version": 1 } ] }'
```java {: java codeblock}
UpdateProfileTemplateVersionOptions updateOptions = new UpdateProfileTemplateVersionOptions.Builder()
.accountId(enterpriseAccountId)
.templateId(profileTemplateId)
.version(Long.toString(profileTemplateVersion))
.ifMatch(profileTemplateEtag)
.name(profileTemplateName)
.description("IAM enterprise trusted profile template example - updated")
.build();
Response<TrustedProfileTemplateResponse> updateResponse = service.updateProfileTemplateVersion(updateOptions).execute();
TrustedProfileTemplateResponse updateResult = updateResponse.getResult();
// Grab the Etag value from the response for use in the update operation.
profileTemplateEtag = updateResponse.getHeaders().values("Etag").get(0);
System.out.println(updateResult);
const params = {
accountId: enterpriseAccountId,
templateId: profileTemplateId,
version: profileTemplateVersion,
ifMatch: profileTemplateEtag,
name: "Example-Profile-Template",
description: "IAM enterprise trusted profile template example - updated",
}
try {
const res = await iamIdentityService.updateProfileTemplateVersion(params);
profileTemplateEtag = res.headers.etag;
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
{
"id": "ProfileTemplate-767fc1f6-c77c-4196-b3d6-a009a5a536e9",
"version": 1,
"account_id": "5bbe28be34524sdbdaa34d37d1f2294a",
"name": "db admin template",
"committed": false,
"profile": {
"name": "Profile for DB Admins",
"description": "allows users to admin db instances",
"rules": [
{
"type": "Profile-SAML",
"realm_name": "${IDP_REALM_NAME}",
"expiration": 43200,
"conditions": [
{
"claim": "name",
"operator": "EQUALS",
"value": "\"My Name\""
}
]
}
]
},
"policy_template_references": [
{
"id": "Policy Template-12345",
"version": "1"
}
],
"created_at": "2023-03-07T13:55:33:428+0000",
"created_by_id": "IBMid-12345678901",
"last_modified_at": "2023-03-07T13:55:33:428+0000",
"last_modified_by_id": "IBMid-12345678901",
"entity_tag": "1-2da85a8f1172fc3527378318d3182778",
"crn": "crn:v1:staging:public:iam-identity::a/5bbe28be34524sdbdaa34d37d1f2294a::template:ProfileTemplate-767fc1f6-c77c-4196-b3d6-a009a5a536e9"
}
{
"id": "ProfileTemplate-767fc1f6-c77c-4196-b3d6-a009a5a536e9",
"version": 1,
"account_id": "5bbe28be34524sdbdaa34d37d1f2294a",
"name": "db admin template",
"committed": false,
"profile": {
"name": "Profile for DB Admins",
"description": "allows users to admin db instances",
"rules": [
{
"type": "Profile-SAML",
"realm_name": "${IDP_REALM_NAME}",
"expiration": 43200,
"conditions": [
{
"claim": "name",
"operator": "EQUALS",
"value": "\"My Name\""
}
]
}
]
},
"policy_template_references": [
{
"id": "Policy Template-12345",
"version": "1"
}
],
"created_at": "2023-03-07T13:55:33:428+0000",
"created_by_id": "IBMid-12345678901",
"last_modified_at": "2023-03-07T13:55:33:428+0000",
"last_modified_by_id": "IBMid-12345678901",
"entity_tag": "1-2da85a8f1172fc3527378318d3182778",
"crn": "crn:v1:staging:public:iam-identity::a/5bbe28be34524sdbdaa34d37d1f2294a::template:ProfileTemplate-767fc1f6-c77c-4196-b3d6-a009a5a536e9"
}
Quando si aggiorna il nome del modello, questo aggiorna il nome per ogni versione.
Impegnare un modello di profilo affidabile utilizzando l'API
Rivedi il modello di profilo di fiducia e confermalo in modo da non poter più apportare modifiche alla versione. L'impegno di una versione è un passo necessario prima di poterla assegnare agli account figlio. In questo modo, l'amministratore dell'assegnazione dei modelli può essere sicuro di assegnare la versione solo quando si conferma che è pronta.
- Ottieni la versione di un modello di profilo affidabile che desideri rivedere e confermare.
curl -X GET 'https://iam.cloud.ibm.com/v1/profile_templates/{template_id}/versions/{version}' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
GetProfileTemplateVersionOptions getProfileTemplateOptions = new GetProfileTemplateVersionOptions.Builder()
.templateId(profileTemplateId)
.version(Long.toString(profileTemplateVersion))
.build();
Response<TrustedProfileTemplateResponse> response = service.getProfileTemplateVersion(getProfileTemplateOptions).execute();
TrustedProfileTemplateResponse profileTemplateResult = response.getResult();
profileTemplateEtag = response.getHeaders().values("Etag").get(0);
System.out.println(profileTemplateResult);
const params = {
templateId: profileTemplateId,
version: profileTemplateVersion,
}
try {
const res = await iamIdentityService.getProfileTemplateVersion(params);
profileTemplateEtag = res.headers.etag;
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
get_response = iam_identity_service.get_profile_template_version(
template_id=profile_template_id, version=str(profile_template_version)
)
profile_template = get_response.get_result()
print('\nget_profile_template response: ', json.dumps(profile_template, indent=2))
global profile_template_etag
profile_template_etag = get_response.get_headers()['Etag']
profile_template_etag is not None
getOptions := &iamidentityv1.GetProfileTemplateVersionOptions{
TemplateID: &profileTemplateId,
Version: core.StringPtr(strconv.FormatInt(profileTemplateVersion, 10)),
}
getResponse, response, err := iamIdentityService.GetProfileTemplateVersion(getOptions)
b, _ := json.MarshalIndent(getResponse, "", " ")
fmt.Println(string(b))
profileTemplateEtag = response.GetHeaders().Get("Etag")
- Rivedere la risposta per confermare che è pronta per l'impegno.
- Impegna la versione del modello di profilo attendibile.
curl -X POST 'https://iam.cloud.ibm.com/v1/profile_templates/{template_id}/{version}/commit' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
CommitProfileTemplateOptions commitOptions = new CommitProfileTemplateOptions.Builder()
.templateId(profileTemplateId)
.version(Long.toString(profileTemplateVersion))
.build();
Response<Void> commitResponse = service.commitProfileTemplate(commitOptions).execute();
const commitParams = {
templateId: profileTemplateId,
version: profileTemplateVersion,
}
try {
const res = await iamIdentityService.commitProfileTemplate(commitParams);
} catch (err) {
console.warn(err);
}
commit_response = iam_identity_service.commit_profile_template(
template_id=profile_template_id, version=str(profile_template_version)
)
commitOptions := &iamidentityv1.CommitProfileTemplateOptions{
TemplateID: &profileTemplateId,
Version: core.StringPtr(strconv.FormatInt(profileTemplateVersion, 10)),
}
response, err := iamIdentityService.CommitProfileTemplate(commitOptions)
Assegnazione di un modello di profilo attendibile agli account secondari utilizzando l'API
Assegna il modello di profilo attendibile agli account secondari della tua azienda.
È possibile assegnare un modello IAM solo agli account figlio e ai gruppi di account, non all'account aziendale.
Per creare un'assegnazione per un modello di profilo attendibile, completare i seguenti passaggi:
- Elenca i modelli di profilo attendibili nel tuo account aziendale e annota l'ID e la versione di
ProfileTemplatenella risposta per la versione del modello che desideri assegnare.
curl -X GET 'https://iam.cloud.ibm.com/v1/profile_templates?account_id=5bbe28be34524sdbdaa34d37d1f2294a' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
ListProfileTemplatesOptions listOptions = new ListProfileTemplatesOptions.Builder()
.accountId(enterpriseAccountId)
.build();
Response<TrustedProfileTemplateList> response = service.listProfileTemplates(listOptions).execute();
TrustedProfileTemplateList listResult = response.getResult();
System.out.println(listResult);
const params = {
accountId: enterpriseAccountId,
}
try {
const res = await iamIdentityService.listProfileTemplates(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
list_response = iam_identity_service.list_profile_templates(account_id=enterprise_account_id)
profile_template_list = list_response.get_result()
print('\nlist_profile_templates response: ', json.dumps(profile_template_list, indent=2))
listOptions := &iamidentityv1.ListProfileTemplatesOptions{
AccountID: &enterpriseAccountID,
}
listResponse, response, err := iamIdentityService.ListProfileTemplates(listOptions)
b, _ := json.MarshalIndent(listResponse, "", " ")
fmt.Println(string(b))
ibmcloud iam trusted-profile-templates
- Assegna il modello a un
AccountoAccountGroup.
curl -X POST 'https://iam.cloud.ibm.com/v1/profile_assignments' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN' -d '{
"template_id": "ProfileTemplate-cac1b203-5956-4981-bdec-0a4af4feab4d",
"template_version": 1,
"target_type": "Account",
"target": "5bbe28be34524e88a34d37d1f2294a8a"
}'
CreateTrustedProfileAssignmentOptions assignOptions = new CreateTrustedProfileAssignmentOptions.Builder()
.templateId(profileTemplateId)
.templateVersion(profileTemplateVersion)
.targetType("Account")
.target(enterpriseSubAccountId)
.build();
Response<TemplateAssignmentResponse> assignResponse = service.createTrustedProfileAssignment(assignOptions).execute();
TemplateAssignmentResponse assignmentResponseResult = assignResponse.getResult();
// Save the id for use by other test methods.
profileTemplateAssignmentId = assignmentResponseResult.getId();
// Grab the Etag value from the response for use in the update operation.
profileTemplateAssignmentEtag = assignResponse.getHeaders().values("Etag").get(0);
System.out.println(assignmentResponseResult);
const assignParams = {
templateId: profileTemplateId,
templateVersion: profileTemplateVersion,
targetType: "Account",
target: enterpriseSubAccountId,
}
try {
const assRes = await iamIdentityService.createTrustedProfileAssignment(assignParams);
const { result } = assRes;
profileTemplateAssignmentId = result.id;
profileTemplateAssignmentEtag= assRes.headers.etag;
console.log(JSON.stringify(result, null, 2));
} catch (err) {
console.warn(err);
}
assign_response = iam_identity_service.create_trusted_profile_assignment(
template_id=profile_template_id,
template_version=profile_template_version,
target_type='Account',
target=enterprise_subaccount_id,
)
assignment = assign_response.get_result()
print('\ncreate_trusted_profile_assignment() response: ', json.dumps(assignment, indent=2))
global profile_template_assignment_id
profile_template_assignment_id = assignment['id']
global profile_template_assignment_etag
profile_template_assignment_etag = assign_response.get_headers()['Etag']
assignOptions := &iamidentityv1.CreateTrustedProfileAssignmentOptions{
TemplateID: &profileTemplateId,
TemplateVersion: &profileTemplateVersion,
TargetType: core.StringPtr("Account"),
Target: &enterpriseSubAccountID,
}
assignResponse, response, err := iamIdentityService.CreateTrustedProfileAssignment(assignOptions)
b, _ := json.MarshalIndent(assignResponse, "", " ")
fmt.Println(string(b))
// Grab the Etag and id for use by other test methods.
profileTemplateAssignmentEtag = response.GetHeaders().Get("Etag")
profileTemplateAssignmentId = *assignResponse.ID
Se un incarico non riesce, utilizzare l'operazione Aggiorna incarico per riprovare.
Creazione di una nuova versione utilizzando l'API
Se si desidera apportare modifiche a un modello di profilo affidabile che è stato impegnato o assegnato, creare una nuova versione.
curl -X POST 'https://iam.cloud.ibm.com/v1/profile_templates/{template_id}/versions/' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN' -d '{
"account_id": "5bbe28be34524sdbdaa34d37d1f2294a",
"name": "db admin template",
"profile": {
"name": "Profile for DB Admins",
"description": "allows users to admin db instances",
"rules": [
{
"type": "Profile",
"realm_name": "${IDP_REALM_NAME}",
"expiration": 43200,
"conditions": [
{
"claim": "name",
"operator": "EQUALS",
"value": "\"My Name\""
}
]
}
]
},
"policy_template_references": [
{
"id": "Policy Template-12345",
"version": 1
}
]
}'
ProfileClaimRuleConditions condition = new ProfileClaimRuleConditions.Builder()
.claim("blueGroups")
.operator("EQUALS")
.value("\"cloud-docs-dev\"")
.build();
List<ProfileClaimRuleConditions> conditions = new ArrayList<>();
conditions.add(condition);
TrustedProfileTemplateClaimRule claimRule = new TrustedProfileTemplateClaimRule.Builder()
.name("My Rule")
.realmName(realmName)
.type(claimRuleType)
.expiration(43200)
.conditions(conditions)
.build();
List<String> accounts = new ArrayList<String>();
accounts.add(enterpriseAccountId);
ProfileIdentityRequest profileIdentity = new ProfileIdentityRequest.Builder()
.identifier(iamId)
.accounts(accounts)
.type("user")
.description("Identity description")
.build();
List<ProfileIdentityRequest> identities = new ArrayList<ProfileIdentityRequest>();
identities.add(profileIdentity);
TemplateProfileComponentRequest profile = new TemplateProfileComponentRequest.Builder()
.addRules(claimRule)
.name(profileTemplateProfileName)
.description("Trusted profile created from a template - new version")
.identities(identities)
.build();
CreateProfileTemplateVersionOptions createOptions = new CreateProfileTemplateVersionOptions.Builder()
.accountId(enterpriseAccountId)
.templateId(profileTemplateId)
.name(profileTemplateName)
.description("IAM enterprise trusted profile template example - new version")
.profile(profile)
.build();
Response<TrustedProfileTemplateResponse> createResponse = service.createProfileTemplateVersion(createOptions).execute();
TrustedProfileTemplateResponse createResult = createResponse.getResult();
// Save the version for use by other test methods.
profileTemplateVersion = createResult.getVersion().longValue();
System.out.println(createResult);
const condition = {
claim: "blueGroups",
operator: "EQUALS",
value: "\"cloud-docs-dev\"",
}
const claimRule = {
name: "My Rule",
realm_name: realmName,
type: 'Profile-SAML',
expiration: 43200,
conditions: [condition],
}
const identity = {
identifier: iamId,
accounts: [enterpriseAccountId],
type: "user",
description: "Identity description",
}
const profile = {
rules: [claimRule],
name: "Profile-From-Example-Template",
description: "Trusted profile created from a template - new version",
identities: [identity],
}
const templateParams = {
templateId: profileTemplateId,
name: "Example-Profile-Template",
description: "IAM enterprise trusted profile template example - new version",
accountId: enterpriseAccountId,
profile: profile,
}
try {
const res = await iamIdentityService.createProfileTemplateVersion(templateParams);
const { result } = res;
profileTemplateVersion = result.version;
console.log(JSON.stringify(result, null, 2));
} catch (err) {
console.warn(err);
}
profile_claim_rule_conditions = {}
profile_claim_rule_conditions['claim'] = 'blueGroups'
profile_claim_rule_conditions['operator'] = 'EQUALS'
profile_claim_rule_conditions['value'] = '\"cloud-docs-dev\"'
profile_claim_rule = {}
profile_claim_rule['name'] = 'My Rule'
profile_claim_rule['realm_name'] = 'https://sdk.test.realm/1234'
profile_claim_rule['type'] = 'Profile-SAML'
profile_claim_rule['expiration'] = 43200
profile_claim_rule['conditions'] = [profile_claim_rule_conditions]
profile_identity = {}
profile_identity['identifier'] = iam_id
profile_identity['accounts'] = [enterprise_account_id]
profile_identity['type'] = 'user'
profile_identity['description'] = 'Identity description'
profile = {}
profile['name'] = 'Profile-From-Example-Template'
profile['description'] = 'Trusted profile created from a template - new version'
profile['rules'] = [profile_claim_rule]
profile['identities'] = [profile_identity]
create_response = iam_identity_service.create_profile_template_version(
template_id=profile_template_id,
name='Example-Profile-Template',
description='IAM enterprise trusted profile template example - new version',
account_id=enterprise_account_id,
profile=profile,
)
profile_template = create_response.get_result()
print('\ncreate_profile_template_version() response: ', json.dumps(profile_template, indent=2))
global profile_template_version
profile_template_version = profile_template['version']
profileClaimRuleConditions := new(iamidentityv1.ProfileClaimRuleConditions)
profileClaimRuleConditions.Claim = core.StringPtr("blueGroups")
profileClaimRuleConditions.Operator = core.StringPtr("EQUALS")
profileClaimRuleConditions.Value = core.StringPtr("\"cloud-docs-dev\"")
profileTemplateClaimRule := new(iamidentityv1.TrustedProfileTemplateClaimRule)
profileTemplateClaimRule.Name = core.StringPtr("My Rule")
profileTemplateClaimRule.RealmName = &realmName
profileTemplateClaimRule.Type = &claimRuleType
profileTemplateClaimRule.Expiration = core.Int64Ptr(int64(43200))
profileTemplateClaimRule.Conditions = []iamidentityv1.ProfileClaimRuleConditions{*profileClaimRuleConditions}
profile := new(iamidentityv1.TemplateProfileComponentRequest)
profile.Name = &profileTemplateProfileName
profile.Description = core.StringPtr("Example Profile created from Profile Template - new version")
profile.Rules = []iamidentityv1.TrustedProfileTemplateClaimRule{*profileTemplateClaimRule}
createOptions := &iamidentityv1.CreateProfileTemplateVersionOptions{
Name: &profileTemplateName,
Description: core.StringPtr("Example Profile Template - new version"),
AccountID: &enterpriseAccountID,
TemplateID: &profileTemplateId,
Profile: profile,
}
createResponse, response, err := iamIdentityService.CreateProfileTemplateVersion(createOptions)
b, _ := json.MarshalIndent(createResponse, "", " ")
fmt.Println(string(b))
// save the new version to be used in subsequent calls
profileTemplateVersion = *createResponse.Version
Aggiornamento di un incarico utilizzando l'API
Aggiorna un incarico per migrare a una nuova versione o riprova un incarico non riuscito.
La nuova versione del modello che assegni sostituisce la vecchia versione. Ulteriori informazioni su Assegnazione di una nuova versione.
- Elenca le assegnazioni di profili attendibili nel tuo account aziendale e annota l'ID e la versione di
TemplateAssignmentper l'assegnazione che desideri aggiornare:
curl -X GET 'https://iam.cloud.ibm.com/v1/profile_assignments?account_id=5bbe28be34524sdbdaa34d37d1f2294a' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
ListTrustedProfileAssignmentsOptions listOptions = new ListTrustedProfileAssignmentsOptions.Builder()
.accountId(enterpriseAccountId)
.templateId(profileTemplateId)
.build();
Response<TemplateAssignmentListResponse> listResponse = service.listTrustedProfileAssignments(listOptions).execute();
TemplateAssignmentListResponse listResult = listResponse.getResult();
System.out.println(listResult);
const params = {
accountId: enterpriseAccountId,
templateId: profileTemplateId,
}
try {
const res = await iamIdentityService.listTrustedProfileAssignments(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
list_response = iam_identity_service.list_trusted_profile_assignments(
account_id=enterprise_account_id, template_id=profile_template_id
)
assignment_list = list_response.get_result()
print('\nlist_trusted_profile_assignments() response: ', json.dumps(assignment_list, indent=2))
listOptions := &iamidentityv1.ListTrustedProfileAssignmentsOptions{
AccountID: &enterpriseAccountID,
TemplateID: &profileTemplateId,
}
listResponse, response, err := iamIdentityService.ListTrustedProfileAssignments(listOptions)
b, _ := json.MarshalIndent(listResponse, "", " ")
fmt.Println(string(b))
- Aggiornare l'assegnazione del profilo attendibile. Se si sta riprovando un incarico, utilizzare lo stesso numero di versione. La seguente richiesta di esempio migra l'assegnazione alla versione 2.
curl -X PATCH 'https://iam.cloud.ibm.com/v1/profile_assignments/<assignment_id>' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN' -d '{
"template_version": 2
}'
UpdateTrustedProfileAssignmentOptions updateOptions = new UpdateTrustedProfileAssignmentOptions.Builder()
.assignmentId(profileTemplateAssignmentId)
.templateVersion(profileTemplateVersion)
.ifMatch(profileTemplateAssignmentEtag)
.build();
Response<TemplateAssignmentResponse> updateResponse = service.updateTrustedProfileAssignment(updateOptions).execute();
TemplateAssignmentResponse updateResult = updateResponse.getResult();
// Grab the Etag value from the response for use in the update operation.
profileTemplateAssignmentEtag = updateResponse.getHeaders().values("Etag").get(0);
System.out.println(updateResult);
const assignParams = {
assignmentId: profileTemplateAssignmentId,
templateVersion: profileTemplateVersion,
ifMatch: profileTemplateAssignmentEtag,
}
try {
const assRes = await iamIdentityService.updateTrustedProfileAssignment(assignParams);
console.log(JSON.stringify(assRes.result, null, 2));
} catch (err) {
console.warn(err);
}
assign_response = iam_identity_service.update_trusted_profile_assignment(
assignment_id=profile_template_assignment_id,
template_version=profile_template_version,
if_match=profile_template_assignment_etag,
)
assignment = assign_response.get_result()
print('\nupdate_profile_template_assignment response: ', json.dumps(assignment, indent=2))
profile_template_assignment_etag = assign_response.get_headers()['Etag']
updateOptions := &iamidentityv1.UpdateTrustedProfileAssignmentOptions{
AssignmentID: &profileTemplateAssignmentId,
TemplateVersion: &profileTemplateVersion,
IfMatch: &profileTemplateAssignmentEtag,
}
updateResponse, response, err := iamIdentityService.UpdateTrustedProfileAssignment(updateOptions)
b, _ := json.MarshalIndent(updateResponse, "", " ")
fmt.Println(string(b))
// Grab the Etag and id for use by other test methods.
profileTemplateAssignmentEtag = response.GetHeaders().Get("Etag")
Rimuovere un incarico utilizzando l'API
È possibile rimuovere un'assegnazione di modello da un account o da un gruppo di account a cui è assegnato il modello. Potresti volerlo fare se il modello non funziona come previsto o non è più necessario. Quando si rimuove un modello assegnato da un account, per impostazione predefinita viene ripristinata la versione precedente del modello, se esiste. Se l'assegnazione rimossa è per la prima o unica versione di un modello, il profilo attendibile gestito dall'azienda negli account secondari viene rimosso.
Per rimuovere un incarico, segui questi passaggi:
- Elenca le assegnazioni di profili attendibili nel tuo account aziendale e annota l'ID dell'
TemplateAssignmente per l'assegnazione che desideri rimuovere.
curl -X GET 'https://iam.cloud.ibm.com/v1/profile_assignments?account_id=5bbe28be34524sdbdaa34d37d1f2294a' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
ListTrustedProfileAssignmentsOptions listOptions = new ListTrustedProfileAssignmentsOptions.Builder()
.accountId(enterpriseAccountId)
.templateId(profileTemplateId)
.build();
Response<TemplateAssignmentListResponse> listResponse = service.listTrustedProfileAssignments(listOptions).execute();
TemplateAssignmentListResponse listResult = listResponse.getResult();
System.out.println(listResult);
const params = {
accountId: enterpriseAccountId,
templateId: profileTemplateId,
}
try {
const res = await iamIdentityService.listTrustedProfileAssignments(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
list_response = iam_identity_service.list_trusted_profile_assignments(
account_id=enterprise_account_id, template_id=profile_template_id
)
assignment_list = list_response.get_result()
print('\nlist_trusted_profile_assignments() response: ', json.dumps(assignment_list, indent=2))
listOptions := &iamidentityv1.ListTrustedProfileAssignmentsOptions{
AccountID: &enterpriseAccountID,
TemplateID: &profileTemplateId,
}
listResponse, response, err := iamIdentityService.ListTrustedProfileAssignments(listOptions)
b, _ := json.MarshalIndent(listResponse, "", " ")
fmt.Println(string(b))
- Rimuovi l'assegnazione.
La rimozione di un incarico potrebbe rendere attivo un incarico precedente. Per ulteriori informazioni, vedere Lavorare con le versioni modello.
curl -X DELETE 'https://iam.cloud.ibm.com/v1/profile_assignments/<assignment_id>' -H 'Authorization: Bearer $TOKEN' }'
DeleteTrustedProfileAssignmentOptions deleteOptions = new DeleteTrustedProfileAssignmentOptions.Builder()
.assignmentId(profileTemplateAssignmentId)
.build();
Response<ExceptionResponse> deleteResponse = service.deleteTrustedProfileAssignment(deleteOptions).execute();
const params = {
assignmentId: profileTemplateAssignmentId,
}
try {
const res = await iamIdentityService.deleteTrustedProfileAssignment(params);
} catch (err) {
console.warn(err);
}
delete_response = iam_identity_service.delete_trusted_profile_assignment(
assignment_id=profile_template_assignment_id
)
deleteOptions := &iamidentityv1.DeleteTrustedProfileAssignmentOptions{
AssignmentID: &profileTemplateAssignmentId,
}
excResponse, response, err := iamIdentityService.DeleteTrustedProfileAssignment(deleteOptions)
Eliminazione di una versione utilizzando l'API
Prima di poter eliminare una versione del modello di profilo attendibile, è necessario rimuovere tutte le assegnazioni per quella versione del modello. Eliminare una versione specifica completando i seguenti passaggi:
- Elenca i modelli di profilo attendibili nel tuo account aziendale e annota l'ID e la versione di
ProfileTemplatenella risposta per la versione del modello che desideri eliminare.
curl -X GET 'https://iam.cloud.ibm.com/v1/profile_templates?account_id=5bbe28be34524sdbdaa34d37d1f2294a' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
ListProfileTemplatesOptions listOptions = new ListProfileTemplatesOptions.Builder()
.accountId(enterpriseAccountId)
.build();
Response<TrustedProfileTemplateList> response = service.listProfileTemplates(listOptions).execute();
TrustedProfileTemplateList listResult = response.getResult();
System.out.println(listResult);
const params = {
accountId: enterpriseAccountId,
}
try {
const res = await iamIdentityService.listProfileTemplates(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
list_response = iam_identity_service.list_profile_templates(account_id=enterprise_account_id)
profile_template_list = list_response.get_result()
print('\nlist_profile_templates response: ', json.dumps(profile_template_list, indent=2))
listOptions := &iamidentityv1.ListProfileTemplatesOptions{
AccountID: &enterpriseAccountID,
}
listResponse, response, err := iamIdentityService.ListProfileTemplates(listOptions)
b, _ := json.MarshalIndent(listResponse, "", " ")
fmt.Println(string(b))
- Elimina la versione:
curl -X DELETE 'https://iam.cloud.ibm.com/v1/profile_templates/{template_id}/versions/{version}' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
DeleteProfileTemplateVersionOptions deleteOptions = new DeleteProfileTemplateVersionOptions.Builder()
.templateId(profileTemplateId)
.version("1")
.build();
Response<Void> deleteResponse = service.deleteProfileTemplateVersion(deleteOptions).execute();
const params = {
templateId: profileTemplateId,
version: 1,
}
try {
const res = await iamIdentityService.deleteProfileTemplateVersion(params);
} catch (err) {
console.warn(err);
}
delete_response = iam_identity_service.delete_profile_template_version(
template_id=profile_template_id, version='1'
)
deleteOptions := &iamidentityv1.DeleteProfileTemplateVersionOptions{
TemplateID: &profileTemplateId,
Version: core.StringPtr("1"),
}
response, err := iamIdentityService.DeleteProfileTemplateVersion(deleteOptions)
Eliminazione di tutte le versioni utilizzando l'API
Assicurati di rimuovere prima le assegnazioni per ogni versione.
curl -X DELETE 'https://iam.cloud.ibm.com/v1/profile_templates/ProfileTemplate-767fc1f6-c77c-4196-b3d6-a009a5a536e9' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
DeleteAllVersionsOfProfileTemplateOptions deleteTeplateOptions = new DeleteAllVersionsOfProfileTemplateOptions.Builder()
.templateId(profileTemplateId)
.build();
Response<Void> deleteResponse = service.deleteAllVersionsOfProfileTemplate(deleteTeplateOptions).execute();
const params = {
templateId: profileTemplateId,
}
try {
const res = await iamIdentityService.deleteAllVersionsOfProfileTemplate(params);
} catch (err) {
console.warn(err);
}
delete_response = iam_identity_service.delete_all_versions_of_profile_template(
template_id=profile_template_id
)
deleteOptions := &iamidentityv1.DeleteAllVersionsOfProfileTemplateOptions{
TemplateID: &profileTemplateId,
}
response, err := iamIdentityService.DeleteAllVersionsOfProfileTemplate(deleteOptions)