認証リファレンス authentication-reference

IMPORTANT
Adobe LLM Appsは現在Betaにいます。
ここに示す機能、ワークフロー、UIは、必ずしも製品の最終状態を表すものではありません。 Betaに参加するには、llm-apps-beta@adobe.comに電子メールを送信します。

このページを使用して、認証フィールドと契約を検索します。 セットアップ ジャーニーについては、独自のID プロバイダーでエンドユーザーを認証するを参照してください。

認証の設定 authentication-settings

設定 > 認証​の下に見つかりました。 すべてのフィールドは環境ごとに保存されます。Workspace ピッカーは、どのフィールドを編集するかを選択し、保存しても他のフィールドには影響しません。

フィールド
必須
説明
ワークスペース
—
これらの設定が適用される環境:ステージ​または​実稼動
認証を有効にする
—
マスタースイッチ: オフにすると、認証モードに関係なくすべてのアクションが公開されます
発行者
はい
ID プロバイダーの発行者URLと、想定されるiss要求。 HTTPSである必要があります。 このアプリの認証サーバーとしても公開されます。 アプリごとに1つのID プロバイダー
サポートされている​範囲
いいえ
このアプリのアクションに必要なスコープの完全なセット。 アプリがサポートするスコープとしてLLM プラットフォームに公開
JWKS URI
いいえ
詳細: 署名キーセットのHTTPS URL。 認証サーバーのメタデータ広告と異なる場合にのみ必要です

検証ルール

ルール
効果
発行者​は空です。認証を有効にする​は有効です
保存はブロックされています
発行者​または​ JWKS URI ​はHTTPS URLではありません
保存はブロックされています
アクションには、個のスコープがサポートされていません
スコープを追加するかアクションから削除するまで、保存はブロックされます
サポートされているスコープ​からスコープが削除されました
保存を待たずにすぐに、それを必要とするすべてのアクションから削除されます
サポートされている​ 範囲 ​は空です
スコープを付与できないので、アクションに既に存在するスコープは削除されます。 この場合、警告は表示されません
offline_accessは、サポートされている範囲​またはアクションに一覧表示されます
アプリのデプロイ時に、ケーシングや周囲の空白に関係なく削除されるので、設定ページには、デプロイされたアプリにはないスコープを表示できます。 offline_accessは、このアプリへのアクセスを許可するのではなく、認証サーバーに更新トークンを要求しているため、このアプリが広告する範囲ではありません。 リストする必要はありません。LLM プラットフォームは、認証サーバーから直接リクエストします

発行者​の末尾のスラッシュは正規化され、issの比較では違いが許容されます。末尾のスラッシュを常に送信するプロバイダーは、引き続き検証されます。

認証モード auth-modes

アクションごとの設定​のアクションごとに設定します。

モード
トークンが必要です
ハンドラーがIDを受信する
としてプラットフォームに広告されます
なし
いいえ
呼び出し元が有効なトークンを提供する場合のみ
noauth
必須
はい、リストされているすべてのスコープで
常に
oauth2
オプション
いいえ
有効なトークンがある場合
noauth および oauth2

必須 アクションのハンドラーは、有効で正しくスコープ付けされたトークンがなければ実行されません。 オプション アクションのハンドラーは常に実行され、extra.challengeAuth()へのサインイン自体を要求できます。

したがって、Required​は、未認証の発信者を拒否する唯一のモードです。 アプリが完全にゲートされるのは、すべてのアクションが​ 必須 ​の場合のみです。1つの​ なし ​または​オプション アクションを実行すると、アプリが混在します。これは、少なくとも1つのアクションで匿名呼び出しが成功するためです。

認証モードは、認証を有効にする​が有効な場合にのみ有効になります。 変更は、アプリの次のデプロイに影響を与えます。

スイッチを切り替えると、アクションごとのモードが書き換えられます。

切り替え
アクションごとのモードへの影響
オフからオン
None​個のアクションごとに​ 必須 ​になります。 アクションは既に​ 必須 ​または​ オプション ​でモードを維持しています
オンからオフ
その環境では、すべてのアクションのモードとスコープがクリアされます。 もう一度スイッチをオンにしても、設定は復元されません

Workspace​を切り替えると、モードは書き換えられません。他の環境の保存された設定をそのまま読み込みます。

すべてのアクションが​​ None ​​ に設定された上で認証を有効にする ​は、有効だが無効な組み合わせです。呼び出しは拒否されませんが、アプリは引き続き検出のために認証サーバーを公開します。 アプリを完全に公開するには、切り替えスイッチをオフにします。

モードは、1つのアプリ間で自由に混在できます。 各プラットフォームでの適用方法については、LLM プラットフォームの動作を参照してください。

トークン要件 token-requirements

ID プロバイダーは、次のすべての要件を満たすアクセストークンを発行する必要があります。 チェックに失敗したトークンは不在として扱われます。呼び出し元は未認証であり、必須 アクションにより、ログインが要求されます。

要件
詳細
形式
署名済みJWT。 不透明なトークンはサポートされていません
署名アルゴリズム
RS256、RS384、RS512、ES256、ES384、ES512、PS256、PS384またはPS512。 HS256などのHMAC アルゴリズムは拒否されます
iss
発行者​に一致する必要があります
aud
アプリのリソース識別子(その環境のMCP サーバーURL)を含める必要があります
exp
将来でなければなりません
scope か scp のどちらかにする必要があります。
スペース区切りの文字列、または文字列の配列。 各アクションの要件に照らしてチェックされたスコープを提供します
sub
ハンドラーがgetAuthenticatedUserを読み取るユーザー識別子
トランスポート
Authorization: Bearer <token> リクエストヘッダー

プロバイダーに含まれる追加のフラット要求(例:tenantまたはemail)は、ハンドラーに渡されます。 ネストされたオブジェクトはドロップされ、長い文字列値は切り捨てられます。

ID プロバイダーの検出 discovery

アプリは独自のRFC 9728保護されたリソースメタデータを公開しているため、LLM プラットフォームは認証サーバーを見つけることができます。 作成、ホスト、または設定は行いません。

自分自身で発見を提供する必要があります:

要件
詳細
認証サーバーのメタデータ
発行者は、独自のRFC 8414 メタデータ、つまりOpenID Connect検出を/.well-known/ パスで提供する必要があります。 アプリはそれを読み取り、署名キーを見つけます
パスを持つイシュア
よく知られているセグメントは、パスの後ではなく、パスの前に行きます。 https://auth.example.com/oauth2/defaultのイシュアは、https://auth.example.com/.well-known/oauth-authorization-server/oauth2/defaultでメタデータを提供します
別の場所でホストされているキー
署名キーがメタデータの広告先でない場合は、JWKS URI​を設定します

ハンドラー認証API handler-auth-api

@adobe/llm-apps-runtimeからエクスポートしました。 各ヘルパーはextraを受け取ります。これは、ハンドラーが受け取る2番目の引数です。

ヘルパー
戻り値
getAuthenticatedUser(extra)
サインイン ユーザーのsub要求、または呼び出しが未認証の場合はundefined
hasScope(extra, scope)
true呼び出し元のトークンがscopeを含む場合

未認証の検証済みトークン情報はextra.authInfoにあり、未認証の呼び出しではundefinedです。

プロパティ
説明
authInfo.token
生のベアラートークン。 ログを記録しないか、クライアントに返さない
authInfo.clientId
client_idまたはazpの要求、またはunknown
authInfo.scopes
付与されたスコープの配列
authInfo.expiresAt
トークンの有効期限:exp件の要求
authInfo.resource
トークンが検証されたアプリのリソース識別子
authInfo.extra
subに加えて、ID プロバイダーが含まれているその他のフラットな請求

extra.challengeAuth(options)は、オプション アクションでのみ使用できます。 ハンドラーから結果を返し、コンテンツを返す代わりにユーザーにログインを依頼します。

オプション
説明
error
RFC 6750 Bearer エラーコード:invalid_token、insufficient_scopeまたはinvalid_request。 デフォルトは insufficient_scope
errorDescription
ユーザーに表示されるメッセージ。 デフォルトは汎用サインインプロンプトです
scope
リクエストするスペース区切りスコープ。 これを省略して、プラットフォームがアプリのサポートされているスコープにフォールバックできるようにします
IMPORTANT
常にerrorを明示的に設定してください。 有効なセッションのない発信者にはinvalid_tokenを使用し、トークンは有効だが必要な範囲が不足している発信者にのみinsufficient_scopeを使用します。 値はLLM プラットフォームに渡され、ユーザーに表示されるプロンプトの単語を自分で指定します。 プロンプトで希望する条件ではなく、条件を正確に記述したコードを送信します。

LLM プラットフォームの動作 platform-behavior

個々のアクションの認証のサポートは、プラットフォームによって異なります。 両者で同じ方法を設定します。両者の違いは、オーディエンスが体験するものです。

動作
ChatGPT
Claude
精度
アクションごと
コネクタごと
アプリのゲートが完全にはない混合認証
サポート対象。 ログインを求める​必須 アクションのみ
非対応 ゲートのないアクションを含め、コネクタ全体でログインを求めるプロンプトが表示されます
コネクタの設定
すべてのアクションが​ None ​の場合は​ 認証 ​を​ 認証なし ​に、すべてのアクションが​ Required ​の場合は​ OAuth ​に、それ以外の場合は​ Mixed ​に設定します
認証を行う選択肢がありません。サインインは​ Connect ​に開始されます
再認証
ゲーテッドアクションが呼び出されたときに、会話でプロンプトが表示される
コネクタのプロンプトが表示されます

関連

recommendation-more-help
llm-apps-help-main-toc