メインコンテンツまでスキップ

JWT RSA

JWT RSA integration を使用すると、公開署名鍵が一般公開されている限り、RSA で署名された任意の JWT と Squid を連携できます。

場合によっては、Auth provider からトークンを受け取るのではなく、独自のカスタム認証トークンを使用していることがあります。これらのトークンは最も一般的に JWT として発行され、いくつかの異なる署名アルゴリズムで署名できます。この integration は、RSA アルゴリズムを用いた公開鍵/秘密鍵ペアで署名された任意の JWT をサポートします。

JWT RSA integration を作成する際、以下の情報を提供する必要があります:

  • JWKS URI: 公開されている JSON Web Keys Set を取得するための URI。トークンの検証に使用できます。
  • Validations: トークンの発行者と、トークンが意図する audience を検証するための任意のチェック。
  • Issuer: トークンの issuer(iss)が指定した値と一致することを検証します。
  • Audience: トークンの audience(aud)が指定した値と一致することを検証します。

JWT RSA integration

仕組み

Squid に渡された JWT が有効であることを検証するため、Squid はトークンに紐づく公開鍵を取得します。これは JWKS URI 経由で取得され、JWT RSA integration を作成する際に指定する必要があります。

integration の使用

integration を作成したら、Squid Client SDK を使用して Access Token を Squid に渡すことができます:

Client code
squid.setAuthProvider({
integrationId: 'AUTH_INTEGRATION_ID',
getToken: () => 'USER_AUTH_ID_TOKEN',
});

これにより、バックエンド関数内で使用するためのユーザー認証情報が自動的に設定されます:

Backend code
@secureCollection('users', 'read')
secureUsersRead(context: QueryContext<User>): boolean {
const userAuth = this.getUserAuth();
}