驗證參考 authentication-reference
您可以在此頁面查詢驗證欄位與合約。 如需安裝歷程,請參閱使用您自己的身分識別提供者來驗證一般使用者。
驗證設定 authentication-settings
在設定 > 驗證下找到。 每個欄位都依環境儲存 — Workspace選擇器會選取您正在編輯的欄位,而且儲存時不會影響其他欄位。
iss宣告。 必須是HTTPS。 也作為此應用程式的授權伺服器發佈。 每個應用程式一個身分提供者驗證規則
offline_access已列在 支援的領域 或動作中offline_access會向您的授權伺服器要求重新整理Token,而不是授與此應用程式的存取權,因此這不是此應用程式通告的範圍。 您不需要列出它 — LLM平台會直接從您的授權伺服器要求它簽發者上的結尾斜線會正規化,而iss比較容許差異 — 一律發出結尾斜線的提供者仍會驗證。
驗證模式 auth-modes
在 每個動作組態 下設定每個動作。
noauthoauth2noauth 和 oauth2必要動作的處理常式,永遠不會在沒有有效、範圍正確的權杖的情況下執行。 Optional動作的處理常式一律執行,而且可能要求使用extra.challengeAuth()登入本身。
因此,必要是唯一拒絕未驗證來電者的模式。 只有當應用程式的每一個動作為 必要 時,應用程式才會完全關閉;單一 無 或 選用 動作會混合應用程式,因為匿名呼叫至少仍會成功執行一個動作。
只有在 啟用驗證 開啟時,驗證模式才會生效。 變更會在應用程式下一次部署時生效。
切換開關時會重寫每個動作的模式:
切換 Workspace 絕不重寫模式 — 它會載入其他環境的儲存組態。
啟用驗證 (每個動作皆設為無)為有效但無效的組合:從未拒絕任何呼叫,但應用程式仍發佈其授權伺服器以供探索。 關閉開關,讓應用程式完全公開。
各模式可在一個應用程式中自由混合。 請參閱LLM平台行為,瞭解每個平台如何套用這些行為。
權杖需求 token-requirements
您的身分提供者必須核發符合下列所有條件的存取權杖。 未通過任何檢查的Token會被視為不存在 — 呼叫者未驗證,且 必要 動作會要求他們登入。
RS256、RS384、RS512、ES256、ES384、ES512、PS256、PS384或PS512。 已拒絕HMAC演演算法(例如HS256)issaudexpscope 或 scpsubgetAuthenticatedUser讀取的使用者識別碼Authorization: Bearer <token>請求標頭您的提供者包含的任何其他一般宣告(例如tenant或email)都會傳遞給您的處理常式。 巢狀物件會被捨棄,長字串值會被截斷。
身分提供者探索 discovery
您的應用程式會發佈自己的RFC 9728受保護資源中繼資料,讓LLM平台可以找到您的授權伺服器。 您沒有為其建立、託管或設定任何專案。
您必須自行提供探索:
/.well-known/路徑提供自己的RFC 8414中繼資料,或OpenID Connect探索。 您的應用程式會讀取該檔案,以找出您的簽署金鑰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原始的已驗證權杖資訊位於extra.authInfo上,對於未驗證的呼叫而言是undefined。
authInfo.tokenauthInfo.clientIdclient_id或azp宣告,或unknownauthInfo.scopesauthInfo.expiresAtexp宣告authInfo.resourceauthInfo.extrasub加上您的身分提供者包含的任何其他一般宣告extra.challengeAuth(options)僅適用於 選擇性 動作。 從您的處理常式傳回結果,要求使用者登入而非傳回內容。
errorerrorDescriptionscopeerror。 對於沒有有效工作階段的呼叫者使用invalid_token,而只對語彙基元有效但缺少必要範圍的呼叫者使用insufficient_scope。 值會傳遞至LLM平台,由其自行決定如何輸入顯示使用者的提示。 傳送準確描述條件的程式碼,而非您想要其提示的程式碼。LLM平台行為 platform-behavior
對驗證個別動作的支援因平台而異。 兩者設定相同方式,差異在於使用者體驗。