JWT RSA
JWT RSA integration を使用すると、公開署名鍵が公開されている限り、Squid は RSA で署名されたあらゆる JWT と統合できます。
場合によっては、Auth provider からトークンを受け取る代わりに、独自のカスタム認証トークンを使用していることがあります。これらのトークンは最も一般的に JWTs として発行され、いくつかの異なる署名アルゴリズムで署名できます。この integration は、RSA アルゴリズムを用いた公開鍵/秘密鍵ペアで署名されたあらゆる JWT をサポートします。
JWT RSA integration を作成する際は、次の情報を提供する必要があります。
- JWKS URI: トークンの検証に使用できる、公開されている JSON Web Keys Set を取得するための URI。
- Validations: トークンの発行者と、トークンの想定 audience を検証するための任意のチェック。
- Issuer: トークンの issuer(
iss)が指定した値と一致することを検証します。 - Audience: トークンの audience(
aud)が指定した値と一致することを検証します。

仕組み
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();
}