0

私はバックグラウンドジョブを持っています。定期的にAzureサービス管理APIからたくさんのものを取得しなければなりません。これには、必要なリソースにアクセスできる認証済みユーザーからのaccess_tokenが必要です。バックグラウンドジョブであるため、アクセストークンは、認証を処理する別のアプリによってアプリのために永続化できる必要があります。OpenID Connect for Azure請求APIからrefresh_tokenを抽出する

私は、OpenID Connectを使用してユーザーを作成する.NET CoreのWebアプリケーションを作成しました.Fiddlerがrefresh_tokenを明確に示しているにもかかわらず、access_token以外のものを取得しています。それに付随するすべてのもの。

私が基本的にやりたいことは、管理者権限を持つユーザーにログオンを許可し、基本的には「このアカウントを使用してサブスクリプションと課金データを取得する」ことです。これにより、refresh_tokenは永続化され、access_tokenそれが終わるとき。

私がしたくないことは、自分のOAuthフローを実装することです。私は本当にそれを必要としない - ちょうどバックグラウンドジョブのrefresh_tokenを抽出できるようにしたい。私はOpenIdConnectOptionsの "Offline_access"をOpenIdConnectOptionsに追加しようとしましたが、これは何も変更されていないようです...

バックグラウンドサービスを(かなり許可レベルで)請求APIのようなオブジェクトは、ユーザーがそれを使って認証しようとしていますか?私の要件の1つは、アカウントに関連付けられているすべてのサブスクリプションを列挙できなければならないということです。そのため、認証ルートを試しています...

E: refresh_tokenは最大90日しか持続しないため、誰かがアプリケーションの再認証を続ける必要はありません。

答えて

1

AFAIK、ADAL 3はリフレッシュトークンを公開しません、ADALキャッシュリフレッシュトークンは、AcquireTokenを呼び出すたびに自動的にトークンを使用し、要求されたトークンを更新する必要がある場合は、hereの説明を参照してください。

ユーザーIDが不要な場合は、Client Credentials Grant flowを使用して、here(サーバーまたはデーモンアプリケーションからWeb APIセクションまで)のコードサンプルを見つけることができます。

関連する問題