GoogleとMicrosoftアカウントを使用した認証でAzure App Serviceを使用しています。 私は 。で、ログイン時に問題なく、個人用サイト/ .auth /私にアクセスすることができます。しかし、トークンリフレッシュするために、/.auth/refreshは例外次のように私を返しています。アクセス許可エラー/.auth/refresh
このディレクトリまたはページを表示する権限がありません。
ここではAzureブレードでどのようなアクセスを許可するのか分かりません。
GoogleとMicrosoftアカウントを使用した認証でAzure App Serviceを使用しています。 私は 。で、ログイン時に問題なく、個人用サイト/ .auth /私にアクセスすることができます。しかし、トークンリフレッシュするために、/.auth/refreshは例外次のように私を返しています。アクセス許可エラー/.auth/refresh
このディレクトリまたはページを表示する権限がありません。
ここではAzureブレードでどのようなアクセスを許可するのか分かりません。
エラーメッセージは実際には少し誤解を招くことがあります。 APIにアクセスする権限がないわけではなく、トークンストアにリフレッシュトークンがない可能性があります。ユーザーのログイン時にリフレッシュトークンを取得する方法は、プロバイダごとに少し異なります。ここでは詳細:これが動作するためには
https://cgillum.tech/2016/03/07/app-service-token-store/
、トークンストアは、プロバイダのリフレッシュトークンが含まれている必要があります。あなたがこれを行う方法に慣れていない場合は、ここではいくつかのヒントです:
- グーグル:モバイルアプリSDKを使用している場合(あなた/.auth/loginのAPIコールに
"access_type=offline"
クエリ文字列パラメータを追加し、これをLogicAsyncオーバーロードのいずれかに追加できます)。- Microsoftアカウント:Azure管理ポータルでスコープを選択します。
- Azure AD:これはちょっと複雑ですが、enabling Graph API accessに私の次の投稿を見てください。設定手順に従ってAzure ADのリフレッシュトークンを取得することもできます(該当しない場合は
Read directory data
とresource=…
部分は省略できます)。将来的にはこれを簡素化する計画です。