

# Okta
<a name="identity-idp-okta"></a>

Okta può essere configurato come provider di identità per l'accesso a AgentCore Gateway e Runtime o come provider di credenziali di AgentCore identità per l'accesso alle risorse in uscita. Ciò consente ai tuoi agenti di autenticare e autorizzare gli utenti degli agenti con Okta come provider di identità e server di autorizzazione, oppure ai tuoi agenti di ottenere le credenziali per accedere alle risorse autorizzate da Okta.

## In entrata
<a name="identity-idp-okta-inbound"></a>

Per aggiungere Okta come provider di identità e server di autorizzazione per l'accesso a AgentCore Gateway e Runtime, devi:
+ Configura un URL di rilevamento dal tuo tenant Okta. Questo aiuta AgentCore Identity a ottenere i metadati relativi al server di autorizzazione OAuth e alle chiavi di verifica dei token.
+ Inserisci `aud` attestazioni valide per il token. Questo aiuta a convalidare i token provenienti dal tuo IdP e consente l'accesso ai token che contengono le dichiarazioni previste.

 **Per configurare Okta per l'autenticazione in entrata** 

1. Apri la console per sviluppatori Okta.

1. Nella barra di navigazione a sinistra, scegli **Applicazioni**.

1. Scegli **Create App Integration** (Crea integrazione app).

1. Scegli **OIDC - OpenID Connect** come metodo di accesso per la tua applicazione.

1. Scegli **Web Application come tipo di applicazione**.

1. Fornisci un nome per la tua applicazione.

1. Seleziona **Codice di autorizzazione ( and/or ****Client Credentials**) in base alle tue esigenze.

1. Per gli **URI di Sign-in reindirizzamento, aggiungi l'**endpoint dell'applicazione che riceverà il token Okta.

1. Modifica la sezione **Assegnazioni** secondo necessità in base alle tue esigenze.

1. Scegli **Save** (Salva).

1. Crea un'API Okta per rappresentare la tua applicazione:
   + Nella barra di navigazione a sinistra, scegli **Sicurezza**.
   + Vai all'**API** e scegli **Aggiungi server di autorizzazione**.
   + Segui il flusso per creare un server di autorizzazione dedicato al tuo tenant Okta.
   + Una volta creato il server di autorizzazione, scegli la scheda **Politiche di accesso** nella pagina di panoramica per configurare una politica di accesso appropriata.
   + Definite gli ambiti personalizzati necessari per il server di autorizzazione necessario per la vostra applicazione.

1. Costruisci l'URL di scoperta per il tuo tenant Okta:

   ```
   https://your-tenant.okta.com/oauth2/your-authorization-server
   ```

1. Configura Inbound Auth con i seguenti valori:
   +  **Discovery URL:** l'URL creato nel passaggio precedente
   +  Gruppi di **destinatari consentiti:** il valore del pubblico che hai fornito durante la creazione dell'API nel passaggio 11

Per maggiori dettagli, consulta la documentazione di [Okta](https://developer.okta.com/docs/concepts/oauth-openid/).

### Aggiungi un claim client\_id ai claim del token di accesso
<a name="identity-idp-okta-client-id-claim"></a>

Per impostazione predefinita, Okta non include `client_id` come attestazione standard nei propri token. Per compilare l'attestazione nel token, è necessario personalizzare le attestazioni tramite il server di autorizzazione utilizzato per emettere i token.

 **Per aggiungere il claim client\_id ai token di accesso** 

1. **Nella barra di navigazione a sinistra, scegli Sicurezza.** Vai all'**API** e scegli il server di autorizzazione che intendi utilizzare per la tua applicazione.

1. Nella pagina dei dettagli del server di autorizzazione, scegli la scheda **Reclami** e scegli **Aggiungi reclamo**.

1. **Assegna un nome al nuovo claim **client\_id** e imposta il valore su app.clientID.**

1. **Imposta **Include nel tipo di token su Access Token**.**

1. Scegli **Save** (Salva).

Per maggiori dettagli, consulta la [documentazione di Okta](https://developer.okta.com/docs/guides/customize-tokens-returned-from-okta/main/).

## In uscita
<a name="identity-idp-okta-outbound"></a>

**Nota**  
AgentCore Identity emette un URL di callback OAuth2 univoco per ogni provider di credenziali creato. L'URL di callback univoco abilita l'associazione di sessione, che protegge lo scambio di codice di autorizzazione OAuth2 dalla riproduzione e dagli CSRF-style attacchi tra provider, garantendo che una risposta di autorizzazione possa essere riscattata solo contro lo specifico provider di credenziali che l'ha avviata. **Poiché l'URL è unico per provider, lo saprai solo dopo la chiamata.** `CreateOauth2CredentialProvider` Crea prima la tua applicazione Okta OIDC, quindi torna alla console per sviluppatori Okta per registrare l'URL di callback una volta AgentCore che Identity lo ha emesso.

 **Passaggio 1: creare l'applicazione Okta OIDC** 

Segui la procedura nella sezione In [entrata](#identity-idp-okta-inbound) per creare l'applicazione e il server di autorizzazione Okta OIDC. Quando ti viene richiesto di inserire gli **URI di Sign-in reindirizzamento** nelle impostazioni dell'applicazione, lascia il campo vuoto per ora: aggiungerai l'URL di callback univoco nel passaggio 3.

 **Fase 2: Creare il provider di credenziali di identità AgentCore ** 

Per configurare Okta come provider di risorse in uscita in AgentCore Identity, utilizza quanto segue:

```
{
  "name": "Okta",
  "credentialProviderVendor": "OktaOauth2",
  "oauth2ProviderConfigInput" : {
    "includedOauth2ProviderConfig": {
      "clientId": "your-client-id",
      "clientSecret": "your-client-secret",
      "authorizationEndpoint": "https://your-tenant.okta.com/oauth2/your-authorization-server/v1/authorize",
      "tokenEndpoint": "https://your-tenant.okta.com/oauth2/your-authorization-server/v1/token",
      "issuer": "https://your-tenant.okta.com/oauth2/your-authorization-server"
    }
  }
}
```

Per utilizzare [Okta OAuth 2.0 per conto dello scambio di token, utilizza un provider personalizzato per la configurazione avanzata](https://developer.okta.com/docs/guides/set-up-token-exchange/main/). [Per i dettagli, vedi Scambio di token con Identity. On-behalf-of AgentCore ](on-behalf-of-token-exchange.md)

```
{
  "name": "Okta",
  "credentialProviderVendor": "CustomOauth2",
  "oauth2ProviderConfigInput": {
    "customOauth2ProviderConfig": {
      "clientAuthenticationMethod": "CLIENT_SECRET_BASIC",
      "clientId": "your-client-id",
      "clientSecret": "your-client-secret",
      "oauthDiscovery": {
        "authorizationServerMetadata": {
          "authorizationEndpoint": "https://your-tenant.okta.com/oauth2/your-authorization-server/v1/authorize",
          "tokenEndpoint": "https://your-tenant.okta.com/oauth2/your-authorization-server/v1/token",
          "issuer": "https://your-tenant.okta.com/oauth2/your-authorization-server"
        }
      },
      "onBehalfOfTokenExchangeConfig": {
        "grantType": "TOKEN_EXCHANGE",
        "tokenExchangeGrantTypeConfig": {
          "actorTokenContent": "NONE"
        }
      }
    }
  }
}
```

La [CreateOauth2CredentialProvider](https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_CreateOauth2CredentialProvider.html)risposta include un `callbackUrl` campo. Questo URL è unico per questo fornitore di credenziali e ha il seguente aspetto:`https://bedrock-agentcore.us-east-1.amazonaws.com/identities/oauth2/callback/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX`. Salva questo valore per il passaggio successivo.

 **Passaggio 3: registra l'URL di callback univoco con Okta** 

**Torna alla console per sviluppatori Okta e aggiungi l'URL di callback univoco agli URI di reindirizzamento dell'applicazione. Sign-in **

1. Accedi alla console per sviluppatori Okta e apri l'applicazione OIDC che hai creato nel passaggio 1.

1. **Apri la scheda **Generale** e modifica le impostazioni di LOGIN.**

1. Aggiungi il `callbackUrl` valore restituito da `CreateOauth2CredentialProvider` per **Sign-in reindirizzare gli URI**.

1. Scegli **Save** (Salva).