0

Web Api プロジェクトで動作する Identity Server の Asp.Net Identity Sample を取得しようとしています。初心者はトークンを取得し、ベアラー トークンを使用して API にリクエストを送信しようとしています。

したがって、フィドラーを使用しhttps://localhost:44333/core/connect/tokenて、次の内容のリクエストを に送信できます。client_id=roclient&client_secret=secret&grant_type=password&username=bob&password=mypass&scope=read write offline_accessこれは正常に機能し、アクセス トークンとリフレッシュ トークンを取得します。

次に、ソリューションに Web Api プロジェクトがあり、ベアラー トークンを使用するコードがあります。

app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions
        {
            Authority = "https://localhost:44333",
            ValidationMode = ValidationMode.ValidationEndpoint,

            RequiredScopes = new[] { "api1" }
        });

[Authorize]デコレーターを使用して API を保護するテスト コントローラー。

私が言ったように、トークンのフェッチは正常に機能しますが、フィドラーを使用して API にリクエストを送信すると、常に「401 認証が拒否されました...」というメッセージが表示されます。

もちろん、私がフィドラーのリクエストに入れたことは次のとおりです。

Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImE...

私は何か間違ったことをしていますか?

4

2 に答える 2

3

Token リクエストでは、読み取りと書き込みのスコープをリクエストしています。API は api1 スコープをチェックします。これは機能しません。

于 2015-10-03T20:41:43.817 に答える