私はAzure Active Directory上でWebApiに対して認証を試みるためにOAuth 2.0プロセスでpostmanを使用しています。私は基本的なValuesControllerを使ってデフォルトプロジェクトを実行していますが、認証と承認を取得しようとしています。Azure Active Directory - どのログが利用可能ですか?
私は郵便配達員をセットアップするのにthis videoを追ってきました。私が知る限り、説明したようにアクティブなディレクトリに新しいアプリケーションを設定しました。
トークン交換が機能しています。許可ベアラ{トークン}が正しく送信されています。ここで、例えばトークンは、次のとおり
{ベアラeyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IlliUkFRUlljRV9tb3RXVkpLSHJ3TEJiZF85cyIsImtpZCI6IlliUkFRUlljRV9tb3RXVkpLSHJ3TEJiZF85cyJ9.eyJhdWQiOiJodHRwczovL2J1Y2tldHMub25taWNyb3NvZnQuY29tL2J1Y2tldHMtcmVzdC1hcGkyMDE2MDkwMzEwNDAzMSIsImlzcyI6Imh0dHBzOi8vc3RzLndpbmRvd3MubmV0LzIwYmI2ZmEwLTU0OTItNDk0My05MjkwLWRiMWJkMTU3YjFkMS8iLCJpYXQiOjE0NzM5MTg3MDAsIm5iZiI6MTQ3MzkxODcwMCwiZXhwIjoxNDczOTIyNjAwLCJhY3IiOiIxIiwiYW1yIjpbInB3ZCJdLCJhcHBpZCI6IjlkZWVmMWFlLWU0MmYtNDg4ZC04MmY3LWUwMWRjYzNkMzE5NyIsImFwcGlkYWNyIjoiMSIsImZhbWlseV9uYW1lIjoiSWppZGFraW5ybyIsImdpdmVuX25hbWUiOiJBeW8iLCJpcGFkZHIiOiI3MC4xNzMuNDAuMjIiLCJuYW1lIjoiQWRtaW4iLCJvaWQiOiJmMTljY2Q5ZC1iMDZhLTQ0MGUtYmE3Ni05NWRjNGE4NDY3ZjEiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiJMMHkzeUVwRGdRMHV2MG0wZWNKcFFIeVpZNHkzYTk3UUpnNGl6WlpzZmNVIiwidGlkIjoiMjBiYjZmYTAtNTQ5Mi00OTQzLTkyOTAtZGIxYmQxNTdiMWQxIiw idW5pcXVlX25hbWUiOiJhZG1pbkBidWNrZXRzLm9ubWljcm9zb2Z0LmNvbSIsInVwbiI6ImFkbWluQGJ1Y2tldHMub25taWNyb3NvZnQuY29tIiwidmVyIjoiMS4wIn0.NXpvslBXOpRNkmWQqj7XqVzloS3KoeSqPIlo-yUPGYkZ4bHPrAH6yD4sxMYz-19VIPFRDUMP-5h5hmaMKmuykjNUltz6wejQT9f4IeV6i7VtP3BlkfASZeAdKAiSjKh6ydV8PuJjV2HHh2WvxIKC3QQXzROwWAdeXLcgMTiKSBMULzFV8BsecgtI86_L2OISgbQZ2LgF137EPJoG7C4L1IO-10T1QIVl-Emy6AS0VKVxdzjCgiT-DFtccxME6n1CruoDy6mTKztcAkiFR1IlgY6Fvj-Y_goMQyxA5sCRebWnOQ5jeUKv4KNyNWOLJU_RiZYe0kj4IT3KDc9jjtHykg}
しかし、私は成功したトークンを取得し、私はVSデバッガをステップ実行するとき、私はトークンが入ってくる見ていても、許可され失敗する。次の応答が返されます。
{"Message":"Authorization has been denied for this request."}
問題はサーバー側にあるようです。 Trueを返すようにIsAuthorizedをオーバーライドすると、動作します。
Azureでは、両方のアプリケーションが同じディレクトリにあり、委任権限が与えられています。
正確な拒否理由を確認できるログはありますか?そこから私はおそらく何が起こっているのか把握することができます。
私は、トレースをオンにしました:
// Web API configuration and services
var traceWriter = config.EnableSystemDiagnosticsTracing();
traceWriter.IsVerbose = true;
traceWriter.MinimumLevel = TraceLevel.Debug;
しかし、私は拒否を取得なぜそれが本当に私に言っていません。
私のWebApiを見ると、私の_Audience_は「https:// {tenant_name} .onmicrosoft.com/{webapi_name}」と定義されていますが、私は__App ID URL__のAzure ADページで同じ値を持っています。一見すると有効に見えるトークンで401 Unauthorizedを取得してから、これを言及すると、おそらく_Audience_設定に結びついている可能性が高いです。 – evilSnobu
'{webapi_name}' == Azure AD – evilSnobu
@evilSnobuのWebApiエントリの名前です。こんにちは、遅い応答にごめんなさい。フィードバックをお寄せいただきありがとうございます。私はそれを試して、サイコロをしなかった。他のアイデア? –