

# Okta의 Auth0
<a name="identity-idp-auth0"></a>

Auth0은 AgentCore Gateway 및 런타임에 액세스하기 위한 자격 증명 공급자 또는 아웃바운드 리소스 액세스를 위한 AgentCore 자격 증명 공급자로 구성할 수 있습니다. 이렇게 하면 에이전트가 Auth0을 자격 증명 공급자 및 권한 부여 서버로 사용하여 에이전트 사용자를 인증하고 권한을 부여하거나 에이전트가 Auth0에서 승인한 리소스에 액세스하기 위한 자격 증명을 얻을 수 있습니다.

## 인바운드
<a name="identity-idp-auth0-inbound"></a>

AgentCore Gateway 및 런타임에 액세스하기 위한 자격 증명 공급자 및 권한 부여 서버로 Auth0을 추가하려면 다음을 수행해야 합니다.
+ IDP 디렉터리에서 검색 URL을 구성합니다. 이렇게 하면 AgentCore Identity가 OAuth 권한 부여 서버 및 토큰 확인 키와 관련된 메타데이터를 가져올 수 있습니다.
+ 토큰에 유효한 `aud` 클레임을 입력합니다. 이렇게 하면 IDP에서 오는 토큰을 검증하고 예상 클레임이 포함된 토큰에 대한 액세스를 허용할 수 있습니다.

다음 절차에 따라 Auth0을 설정하고 게이트웨이 인증에 필요한 구성 값을 가져옵니다.

 **인바운드 인증을 위해 Auth0을 구성하려면** 

1. Auth0에서 API 생성:

   1. Auth0 대시보드에 로그인합니다.

   1. **APIs** 열고 **API 생성을** 선택합니다.

   1. API의 이름과 식별자를 입력합니다(예: "gateway-api").

   1. 서명 알고리즘을 선택합니다(RS256 권장).

   1. **생성(Create)**을 선택합니다.

1. API 범위 구성:

   1. API 설정에서 **범위** 탭으로 이동합니다.

   1. "invoke:gateway" 및 "read:gateway"와 같은 범위를 추가합니다.

1. 애플리케이션 생성:

   1. **애플리케이션을** 열고 **애플리케이션 생성을** 선택합니다.

   1. **Machine to Machine 애플리케이션을** 선택합니다.

   1. 1단계에서 생성한 API를 선택합니다.

   1. 생성한 범위에 대해 애플리케이션에 권한을 부여합니다.

   1. **생성(Create)**을 선택합니다.

1. 애플리케이션 설정에서 클라이언트 ID와 클라이언트 암호를 기록합니다. AgentCore 자격 증명에서 Auth0 공급자를 구성하려면이 값이 필요합니다.

1. Auth0 테넌트의 검색 URL을 구성합니다.

   ```
   https://your-domain/.well-known/openid-configuration
   ```

   여기서 {{your-domain}}은 Auth0 테넌트 도메인(예: "dev-example.us.auth0.com")입니다.

1. 다음 값을 사용하여 인바운드 인증을 구성합니다.

   1.  **검색 URL**: 이전 단계에서 구성된 URL

   1.  **허용된 대상**: 1단계에서 생성한 API 식별자

## 아웃바운드
<a name="identity-idp-auth0-outbound"></a>

**참고**  
AgentCore 자격 증명은 생성한 각 자격 증명 공급자에 대해 고유한 OAuth2 콜백 URL을 발급합니다. 고유한 콜백 URL을 사용하면 세션 바인딩이 가능하여 권한 부여 응답을 시작한 특정 자격 증명 공급자에 대해서만 사용할 수 있도록 하여 교차 공급자 재생 및 CSRF 스타일 공격으로부터 OAuth2 권한 부여 코드 교환을 보호합니다. URL은 공급자별로 고유하므로를 호출할 때까지 URL을 알 **** 수 없습니다`CreateOauth2CredentialProvider`. 먼저 Auth0 애플리케이션을 생성한 다음 Auth0 대시보드로 돌아가 AgentCore 자격 증명에서 콜백 URL을 발급한 후 콜백 URL을 등록합니다.

 **1단계: Auth0 애플리케이션 생성** 

다음 절차에 따라 Auth0 OAuth2 애플리케이션을 설정하고 AgentCore 자격 증명에 필요한 클라이언트 자격 증명을 가져옵니다. AgentCore 자격 증명이 고유한 콜백 URL을 발급한 후 3단계에서 리디렉션 URI를 등록합니다.

 **Auth0 OAuth2 애플리케이션을 구성하려면** 

1. Auth0 대시보드에 로그인합니다.

1. **애플리케이션을** 열고 **애플리케이션 생성을** 선택합니다.

1. 애플리케이션의 이름을 입력하고 애플리케이션 유형으로 **일반 웹 애플리케이션을** 선택합니다.

1. **생성(Create)**을 선택합니다.

1. 애플리케이션의 **설정** 탭에서 **지금은 허용된 콜백 URLs** 비워 둡니다. 3단계에서 고유한 콜백 URL을 추가합니다.

1. 애플리케이션에 필요한 연결, 범위 및 권한을 구성합니다.

1. 애플리케이션 설정에서 **클라이언트 ID**와 **클라이언트 암호를** 기록합니다. AgentCore 자격 증명에서 Auth0 공급자를 구성하려면이 값이 필요합니다.

1. Auth0 테넌트 도메인(예: `dev-example.us.auth0.com`)을 기록해 둡니다. 이를 사용하여 2단계에서 권한 부여, 토큰 및 발급자 엔드포인트를 구성합니다.

자세한 내용은 [애플리케이션 생성에 대한 Auth0의 설명서를 참조하세요](https://auth0.com/docs/get-started/auth0-overview/create-applications).

 **2단계: AgentCore 자격 증명 공급자 생성** 

Auth0을 아웃바운드 리소스 공급자로 구성하려면 다음을 사용합니다.

```
{
  "name": "NAME",
  "credentialProviderVendor": "Auth0Oauth2",
  "oauth2ProviderConfigInput" : {
    "includedOauth2ProviderConfig": {
      "clientId": "your-client-id",
      "clientSecret": "your-client-secret",
      "authorizationEndpoint": "https://your-auth0-tenant.auth0.com/authorize",
      "tokenEndpoint": "https://your-auth0-tenant.auth0.com/oauth/token",
      "issuer": "https://your-auth0-tenant.auth0.com"
    }
  }
}
```

[CreateOauth2CredentialProvider](https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_CreateOauth2CredentialProvider.html) 응답에는 `callbackUrl` 필드가 포함됩니다. 이 URL은이 자격 증명 공급자에 고유하며 다음과 같습니다`https://bedrock-agentcore.us-east-1.amazonaws.com/identities/oauth2/callback/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX`. 다음 단계를 위해이 값을 저장합니다.

 **3단계: Auth0에 고유한 콜백 URL 등록** 

Auth0 대시보드로 돌아가서 애플리케이션의 허용된 콜백에 고유한 콜백 URL을 추가합니다.

1. Auth0 대시보드에 로그인하고 1단계에서 생성한 애플리케이션을 엽니다.

1. **설정** 탭에서에서 반환한 `callbackUrl` 값을 허용된 콜백 URL`CreateOauth2CredentialProvider`에 붙여 넣습니다. ** URLs**

1. **변경 사항 저장(Save Changes)**을 선택합니다.