ORA-12899:OpenIDアクセストークンが大きすぎるため

問題

  • OpenIDアクセストークンにはいくつかのものが格納されていますが、ユーザーがログインしようとすると、トークンのサイズがOPENIDCONNECTSESSIONテーブルの ACCESSTOKENカラムで指定された3000文字の制限を超えるため、ログインに失敗します。

Environment

  • Liferay DXP 7.2+
  • オラクル・データベース

解決策

  • 文字数の制限は、業界標準を考慮して設定された。 例えば、idTokenカラムにはvarchar(3999)のサイズ制限が設定されています。これはLiferayサービスビルダのvarcharの最大サイズだからです。 サイズが3999を超えると、テキストまたはブロブ型になり、エントリーの検索が遅くなる。
  • 制限は、プロキシ、tomcat、nginxなど、さまざまなHTTPサブシステムがサポートするHTTPヘッダーの関数になる。 仕様で定義された最大サイズはないが、業界の平均サイズは8KBである。 これはヘッダーの合計サイズであることに注意してほしい。 このため、準拠したOIDC(JWT)トークンに格納されているさまざまなフィールド/署名/ハッシュのための余地を残しておく必要があり、平均して約4KBの余白が残る。 トークンのサイズが7KBであれば、それはほぼヘッダー全サイズである。
  • これらのトークンはHTTPヘッダーによってのみサイズが制限され、OAuthとOIDCの仕様はサイズを規制しない。 OIDCトークンはHTTPヘッダーを使って共有されるため、インフラがそのサイズをサポートできることを保証する必要がある。
  • したがって、これはLiferay側からの必要な制限であり、3KBの制限を作るためにトークン・サイズを小さくすることをお勧めします。
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています