인증 참조 authentication-reference
이 페이지를 사용하여 인증 필드 및 계약을 조회합니다. 설치 지침은 자체 ID 공급자를 통해 최종 사용자 인증을 참조하십시오.
인증 설정 authentication-settings
설정 > 인증을 엽니다. 각 환경은 자체 설정을 저장합니다. Workspace 선택기를 사용하여 편집할 환경을 선택합니다. 설정을 저장해도 다른 환경에는 영향을 주지 않습니다.
iss 클레임입니다. HTTPS여야 합니다. 또한 이 앱의 인증 서버로 게시됩니다. 앱당 ID 공급자 1명유효성 검사 규칙
offline_access이(가) 지원되는 범위 또는 작업에 나열됩니다.offline_access이(가) 이 앱에 대한 액세스 권한을 부여하지 않고 인증 서버에서 새로 고침 토큰을 요청하므로 이 앱이 광고하는 범위가 아닙니다. 나열할 필요가 없습니다. LLM 플랫폼은 인증 서버에서 직접 요청합니다Issuer의 후행 슬래시가 표준화되었습니다. iss 비교는 차이를 허용하므로 항상 뒤쪽 슬래시를 포함하는 공급자의 토큰이 여전히 유효합니다.
인증 모드 auth-modes
작업별 구성에서 작업별로 설정합니다.
noauthoauth2noauth 및 oauth2Required 작업의 처리기는 올바른 범위의 올바른 토큰이 없으면 실행되지 않습니다. Optional 작업의 처리기는 항상 실행되며 extra.challengeAuth()(으)로 로그인을 요청할 수 있습니다.
필수은(는) 인증되지 않은 호출자를 거부하는 유일한 모드입니다. 모든 동작이 필수인 경우에만 앱에서 모든 익명 호출을 거부합니다. 작업이 없음 또는 선택 사항인 경우 하나 이상의 작업이 익명 호출을 허용하므로 앱에서 혼합 인증을 사용합니다.
인증 모드는 인증 사용이 설정된 경우에만 적용됩니다. 변경 사항은 앱의 다음 배포에 적용됩니다.
인증 스위치를 변경하면 작업별 모드도 재작성됩니다.
Workspace을(를) 전환하면 모드가 다시 작성되지 않습니다. 선택기는 다른 환경의 저장된 구성을 변경하지 않고 로드합니다.
인증 사용을 설정하고 모든 작업을 없음(으)로 설정하면 앱에 인증이 필요하지 않지만 검색을 위해 인증 서버를 게시합니다. 앱을 완전히 공개하려면 스위치를 끕니다.
앱은 개별 작업에 대해 서로 다른 인증 모드를 사용할 수 있습니다. 각 플랫폼이 적용되는 방법은 LLM 플랫폼 동작을 참조하세요.
토큰 요구 사항 token-requirements
ID 공급자는 다음 요구 사항을 모두 충족하는 액세스 토큰을 발급해야 합니다. 런타임에서는 검사에 실패한 토큰을 없는 것으로 처리합니다. 호출자는 인증되지 않았으며 Required 작업이 호출자에게 로그인을 요구합니다.
RS256, RS384, RS512, ES256, ES384, ES512, PS256, PS384 또는 PS512. HS256 같은 HMAC 알고리즘이 거부되었습니다.issaudexpscope 또는 scpscope 문자열을 읽거나 scp의 문자열 배열로 돌아갑니다. 각 작업의 요구 사항에 따라 확인된 범위에 대해 이러한 모양 중 하나를 사용합니다.subgetAuthenticatedUser을(를) 통해 읽는 사용자 식별자Authorization: Bearer <token> 요청 헤더공급자에 포함된 추가 플랫 클레임(예: tenant 또는 email)이 처리기에 전달됩니다. 중첩된 오브젝트가 삭제되고 긴 문자열 값이 잘립니다.
ID 공급자 검색 discovery
LLM 플랫폼에서 인증 서버를 찾을 수 있도록 앱에서 자체 RFC 9728 보호된 리소스 메타데이터를 게시합니다. 보호된 리소스 메타데이터를 만들거나, 호스팅하거나, 구성할 필요가 없습니다.
ID 공급자는 다음 검색 정보를 제공해야 합니다.
jwks_uri을(를) 찾기 위해 RFC 8414 OAuth 인증 서버 메타데이터를 찾습니다. OIDC 검색 경로로 대체되지 않습니다https://auth.example.com/oauth2/default의 발급자가 https://auth.example.com/.well-known/oauth-authorization-server/oauth2/default에서 해당 메타데이터를 제공합니다.핸들러 인증 API handler-auth-api
패키지 @adobe/llm-apps-runtime에서 다음 도우미를 내보냅니다. 각 도우미는 핸들러에 수신되는 두 번째 인수인 extra을(를) 수락합니다.
getAuthenticatedUser(extra)sub 클레임 또는 호출이 인증되지 않은 경우 undefinedhasScope(extra, scope)scope이(가) 포함된 경우 true확인된 토큰 정보는 인증되지 않은 호출에 대해 undefined인 extra.authInfo에서 사용할 수 있습니다.
authInfo.tokenauthInfo.clientIdclient_id 또는 azp 클레임 또는 unknownauthInfo.scopesauthInfo.expiresAtexp 클레임과 같은 토큰 만료authInfo.resourceauthInfo.extrasub에 ID 공급자가 포함한 기타 일반 클레임이 포함되어 있습니다.extra.challengeAuth(options)은(는) 선택적 작업에서만 사용할 수 있습니다. 핸들러의 결과를 반환하여 사용자에게 컨텐츠를 반환하는 대신 로그인하도록 요청합니다.
도우미가 ChatGPT에 대한 도구 결과 챌린지를 반환합니다. Claude에는 전송 수준 HTTP 챌린지가 필요합니다. 런타임에서는 필수 작업에 대해 이 문제를 제공하지만 선택적 처리기 도우미를 통해서는 안 됩니다.
errorinvalid_token, insufficient_scope 또는 invalid_request. 기본값은 insufficient_scope입니다.errorDescriptionscopeerror을(를) 명시적으로 설정하십시오. 올바른 세션이 없는 호출자의 경우 invalid_token을(를) 사용하고, 토큰은 유효하지만 필수 범위가 없는 호출자의 경우에만 insufficient_scope을(를) 사용하십시오. 런타임에서는 값을 LLM 플랫폼에 전달하여 로그인 프롬프트의 문구를 선택합니다. 선호하는 프롬프트가 있는 코드가 아니라 조건을 정확하게 설명하는 코드를 전송하십시오.LLM 플랫폼 동작 platform-behavior
두 플랫폼 모두 동일한 앱에서 공개 작업과 보호된 작업을 지원하지만 로그인 트리거는 다릅니다.
extra.challengeAuth()현재 클라이언트 동작은 레이지 인증 중단 및 ChatGPT 인증을 참조하십시오. 커넥터 UI 및 정책은 계정 및 조직에 따라 다를 수 있습니다.