現在、Azure App Service を使用して Web API を実行しています。これまでのところ、認証は使用されておらず、必要もありませんでした。ここで、単一の新しいメソッドに認証を追加したいと思います。
Azure の組み込み認証については、こちらで説明しています。ユーザーの操作なしで (Azure で実行されていない) 別のサーバーによってデータのクエリが実行されるようにするため、デーモン サーバー ソリューションが検討されます。これを機能させるには、Azure AD でデーモン アプリケーションのアプリ登録を作成し、Web API の組み込み認証によって作成されたものを編集する必要があります。
いくつかの NuGet パッケージを必要とする次のコードが必要です。
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
}
private void ConfigureAuth(IAppBuilder app)
{
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
Tenant = <tenant>,
TokenValidationParameters = new TokenValidationParameters
{
ValidAudience = <API address>
}
});
}
これらの 2 つのアプローチを組み合わせて、Azure AD への登録を使用して JWT トークンを取得するデーモン サーバーを用意し (このビットを持っています)、アプリの組み込み認証 (上記のコードを使用せずに) によってこのトークンを検証する方法はありますか?サービス?
上記のコードではすべてが機能しますが、削除するとデーモンの JWT トークンが認識されません。どちらの場合も (コードの有無にかかわらず)、組み込み認証を使用して手動でログインできます<appAddress>/.auth/login/aad
。ビルトイン認証は JWT トークンを処理するように記述されていますが、機能しません。