0

CAS Webflow によると ( https://apereo.github.io/cas/5.0.x/images/cas_flow_diagram.png ):

認証が成功すると、CAS サーバーは Cookie と URL (Location-Header) を含むリダイレクトをブラウザーに送信します。この URL は、チケット パラメータ (サービス チケットを含む) が追加された、最初に要求された保護された URL のように見えます。CAS サーバーがこの URL にさらにパラメータを追加すると、CAS プロトコルに違反しますか?

私の実際のケースでは、CAS サーバーで認証するときに、ユーザーはドロップダウンから言語を選択します。次に、この lang-Parameter がユーザー名とパスワードとともに送信され、CAS サーバーはリダイレクトで送信する URL に「&lang=fr-FR」のように単純に追加します。

そのパラメーターが原因で、Apereo Java クライアントは検証エラーに遭遇します。これは、サービス チケットを検証するサービス URL にこの lang パラメータが含まれているためです。その後、CAS サーバーはサービス チケットを検証しません。これは、サービス チケットが別の URL (lang パラメータなし) に対して発行されたためです。

私の質問は、この特定の CAS サーバーは CAS プロトコルに違反していますか?

それとも、Apereo CAS クライアントは、検証のためにサービス URL を作成するときに、未知のリクエスト パラメータをすべて取り除くことで、これに対処することが期待されますか?

4

1 に答える 1

0

私の質問は、この特定の CAS サーバーは CAS プロトコルに違反していますか?

はい。

CAS プロトコルからservice、ログイン エンドポイントは次のとおりです。

service [オプション] - クライアントがアクセスしようとしているアプリケーションの URL。

CAS プロトコルからservice、検証エンドポイントは次のとおりです。

service [REQUIRED] - チケットが発行されたサービスの識別子

エラーコードの下にも指定されています。

INVALID_SERVICE - 提供されたチケットは有効でしたが、指定されたサービスがチケットに関連付けられたサービスと一致しませんでした。CAS はチケットを無効にし、同じチケットの将来の検証を許可しない必要があります。

于 2020-04-20T06:01:12.043 に答える