Okta
Okta는 AgentCore Gateway 및 런타임에 액세스하기 위한 자격 증명 공급자 또는 아웃바운드 리소스 액세스를 위한 AgentCore 자격 증명 공급자로 구성할 수 있습니다. 이렇게 하면 에이전트가 Okta를 자격 증명 공급자 및 권한 부여 서버로 사용하여 에이전트 사용자를 인증하고 권한을 부여하거나 에이전트가 Okta에서 승인한 리소스에 액세스하기 위한 자격 증명을 얻을 수 있습니다.
인바운드
AgentCore Gateway 및 런타임에 액세스하기 위한 자격 증명 공급자 및 권한 부여 서버로 Okta를 추가하려면 다음을 수행해야 합니다.
-
Okta 테넌트에서 검색 URL을 구성합니다. 이렇게 하면 AgentCore Identity가 OAuth 권한 부여 서버 및 토큰 확인 키와 관련된 메타데이터를 가져올 수 있습니다.
-
토큰에 유효한
aud클레임을 입력합니다. 이렇게 하면 IdP에서 오는 토큰을 검증하고 예상 클레임이 포함된 토큰에 대한 액세스를 허용할 수 있습니다.
인바운드 인증을 위해 Okta를 구성하려면
-
Okta 개발자 콘솔을 엽니다.
-
왼쪽 탐색 모음에서 애플리케이션을 선택합니다.
-
앱 통합 생성(Create App Integration)을 선택합니다.
-
OIDC - OpenID Connect를 애플리케이션의 로그인 방법으로 선택합니다.
-
애플리케이션 유형으로 웹 애플리케이션을 선택합니다.
-
애플리케이션의 이름을 제공합니다.
-
필요에 따라 권한 부여 코드 및/또는 클라이언트 자격 증명을 선택합니다.
-
로그인 리디렉션 URIs 경우 Okta 토큰을 수신할 애플리케이션 엔드포인트를 추가합니다.
-
필요에 따라 할당 섹션을 조정합니다.
-
저장을 선택합니다.
-
Okta API를 생성하여 애플리케이션을 나타냅니다.
-
왼쪽 탐색 모음에서 보안을 선택합니다.
-
API로 이동하여 권한 부여 서버 추가를 선택합니다.
-
흐름에 따라 Okta 테넌트 전용 권한 부여 서버를 생성합니다.
-
권한 부여 서버가 생성되면 개요 페이지에서 액세스 정책 탭을 선택하여 적절한 액세스 정책을 구성합니다.
-
애플리케이션에 필요한 권한 부여 서버에 필요한 사용자 지정 범위를 정의합니다.
-
-
Okta 테넌트의 검색 URL을 구성합니다.
https://your-tenant.okta.com/oauth2/your-authorization-server -
다음 값을 사용하여 인바운드 인증을 구성합니다.
-
검색 URL: 이전 단계에서 구성된 URL
-
허용된 대상: 11단계에서 API를 생성할 때 제공한 대상 값입니다.
-
자세한 내용은 Okta 설명서를 참조하세요
액세스 토큰 클레임에 client_id 클레임 추가
Okta는 기본적으로 토큰에 표준 클레임client_id으로를 포함하지 않습니다. 토큰에 클레임을 채우려면 토큰을 발급하는 데 사용하는 권한 부여 서버를 통해 클레임을 사용자 지정해야 합니다.
액세스 토큰에 client_id 클레임을 추가하려면
-
왼쪽 탐색 모음에서 보안을 선택합니다. API로 이동하여 애플리케이션에 사용할 권한 부여 서버를 선택합니다.
-
권한 부여 서버의 세부 정보 페이지에서 클레임 탭을 선택하고 클레임 추가를 선택합니다.
-
새 클레임 client_id의 이름을 지정하고 값을 app.clientId로 설정합니다.
-
토큰 유형에 포함을 액세스 토큰으로 설정합니다.
-
저장을 선택합니다.
자세한 내용은 Okta 설명서를 참조하세요
아웃바운드
참고
AgentCore 자격 증명은 생성한 각 자격 증명 공급자에 대해 고유한 OAuth2 콜백 URL을 발급합니다. 고유한 콜백 URL을 사용하면 세션 바인딩이 가능하여 권한 부여 응답을 시작한 특정 자격 증명 공급자에 대해서만 사용할 수 있도록 하여 교차 공급자 재생 및 CSRF 스타일 공격으로부터 OAuth2 권한 부여 코드 교환을 보호합니다. URL은 공급자별로 고유하므로를 호출할 때까지 URL을 알 수 없습니다CreateOauth2CredentialProvider. 먼저 Okta OIDC 애플리케이션을 생성한 다음, AgentCore Identity가 콜백 URL을 발급한 후 Okta 개발자 콘솔로 돌아가 콜백 URL을 등록합니다.
1단계: Okta OIDC 애플리케이션 생성
인바운드 섹션의 절차에 따라 Okta OIDC 애플리케이션 및 권한 부여 서버를 생성합니다. 애플리케이션 설정에서 로그인 리디렉션 URIs를 입력하라는 메시지가 표시되면 지금은 필드를 비워 둡니다. 3단계에서 고유한 콜백 URL을 추가합니다.
2단계: AgentCore 자격 증명 공급자 생성
AgentCore 자격 증명에서 Okta를 아웃바운드 리소스 공급자로 구성하려면 다음을 사용합니다.
{ "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" } } }
Okta OAuth 2.0 토큰 교환on-behalf-of
{ "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" } } } } }
CreateOauth2CredentialProvider 응답에는 callbackUrl 필드가 포함됩니다. 이 URL은이 자격 증명 공급자에 고유하며 다음과 같습니다https://bedrock-agentcore.us-east-1.amazonaws.com/identities/oauth2/callback/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX. 다음 단계를 위해이 값을 저장합니다.
3단계: Okta에 고유한 콜백 URL 등록
Okta 개발자 콘솔로 돌아가서 애플리케이션의 로그인 리디렉션 URIs에 고유한 콜백 URL을 추가합니다.
-
Okta 개발자 콘솔에 로그인하고 1단계에서 생성한 OIDC 애플리케이션을 엽니다.
-
일반 탭을 열고 LOGIN 설정을 편집합니다.
-
에서 반환한
callbackUrl값을 로그인 리디렉션 URIsCreateOauth2CredentialProvider에 추가합니다. -
저장을 선택합니다.