2017-11-29 5 views
0

私はIdS4(コア1.1)に対してMicrosoft.AspNetCore.Authentication.OpenIdConnectミドルウェアを使用するMVCアプリケーションを持っています。 MVCは、認証後に取得されたアクセストークンを使用してバックエンドWeb APIを呼び出します。私は "code id_token"レスポンスを使用しています。aspnetコアを持つIdentityServer4 MVC OIDC認証 - apiスコープの制限?

oidOptions.Scope.Add("usersRead");   // Api scope 
oidOptions.Scope.Add("usersWrite");   // Api scope 

これは絶対に罰金働いている:私は、クライアントが必要とスコープに追加OIDCoptionsを構築するとき、私はスコープを使用してAPIをセグメント化しているが、私はそれらのかなりの数を持っている、すなわち15。しかし、私はさらに2つのスコープを追加し、今MVCは、ユーザーが、私は削除することができますログインフォーム

悪い要求

を提示ますつまり前に、IDSに対するOIDCチャレンジを行うときのIDは、次のように報告します私のMVCアプリケーションのリストから任意の2つのスコープとそれは再び動作を開始します。これにより、リクエスト可能なスコープの数に制限や、URLの長さに問題があると思われます。私はOIDCミドルウェアとIdSのソースコードを見ていましたが、クライアントが要求できるAPIスコープの数を制限するものは見つかりませんでした。

アイデア?

+0

おそらく、ログには追加情報が含まれている場合があります。ログをチェックしましたか? – Jay

+0

リクエストから2つのスコープを削除してから、問題が「URL長で問題がある」かどうかを知るには長すぎます。 –

答えて

0

コメントありがとうございます。 Azure Web Appでログストリーミングを設定した後、問題はすぐに強調表示されました。実際、トークン要求を構成するアーティファクトには文字列の長さの制限があります。特に、スコープの文字列は300文字です。スコープ名を短くして、すべてがうまくいきました。

参考のために、参照してください。https://github.com/IdentityServer/IdentityServer4/blob/aspnetcore1/src/IdentityServer4/Configuration/DependencyInjection/Options/InputLengthRestrictions.cs

注、これはドットネットコアv1.1のためである - v2.0のための同様の制限。

関連する問題