OpenID Connect Core 1.0 仕様に従って、認証リクエストにprompt
valueのパラメーターが含まれている場合none
、サーバーは次の方法でそれを処理する必要があります。
認可サーバーは、認証または同意のユーザー インターフェイス ページを表示してはなりません。エンドユーザーがまだ認証されていない場合、またはクライアントが要求されたクレームに対して事前に構成された同意を持っていない場合、または要求を処理するための他の条件を満たしていない場合、エラーが返されます。エラー コードは通常、login_required、interaction_required、またはセクション 3.1.2.6 で定義されている別のコードです。これは、既存の認証および/または同意を確認する方法として使用できます。
私の問題は、この方法の前に受け取ったアクセス トークンを検証しようとすると (prompt=none
他の必要なパラメーターと共にペアを渡す)、WSO2 IS サーバーは常にコード 302 で応答し、ログイン ページにリダイレクトすることです。以下は、次のcURLコマンドからの対応する出力です。
curl -v -k -X GET "https://localhost:9443/oauth2/authorize?prompt=none&scope=openid&client_id=BpMCycs5nBuZCpVLwSE5f6Hf5CYa&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Fmy-app%2Fmy-ctx" --header "Authorization: Bearer a65544593fg9c67rbf95fc24a6953cb4"
> GET /oauth2/authorize?prompt=none&scope=openid&client_id=BpMCycs5nBuZCpVLwSE5f
6Hf5CYa&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Fmy-app%2Fmy-ctx HTTP/1.1
> User-Agent: curl/7.30.0
> Host: localhost:9443
> Accept: */*
> Authorization: Bearer a65544593fg9c67rbf95fc24a6953cb4
>
< HTTP/1.1 302 Found
< Date: Thu, 14 Aug 2014 17:01:17 GMT
< Location: https://localhost:9443/commonauth/?sessionDataKey=bf5be153-4j31-429b
-9fa6-97rr27da213&type=oidc&commonAuthCallerPath=/oauth2/authorize&forceAuthent
icate=false&checkAuthentication=false&relyingParty=BpKCycd5dBfZdpVswSE5f6Hf5CYa&
tenantId=-1234&prompt%3Dnone%26scope%3Dopenid%26client_id%3DBpKCycr5dBuZCpVBwSE5
f6Hf5CYa%26response_type%3Dcode%26redirect_uri%3Dhttp%253A%252F%252Flocalhost%25
3A8080%252Fmy-app%252Fmy-ctx
誰かが私に教えてもらえますか - それは認証要求自体の問題であり、私は何か間違ったことをしましたか、この場合の WSO2 IS サーバーの動作は仕様に準拠していませんか?
私はWSO2 Identity Server 5.0.0を使用しています
ご回答ありがとうございます。