2

Azure Active Directoryを使用して、アプリケーションにMicrosoft Graph APIへのアクセス権を与えます。Azure Active Directoryアプリケーションのアクセス許可の変更の遅延

は私が作るときにアクセス許可の変更(例えば、各種のデータのための読み取り/書き込みアクセス)私は変更が保存されるときからの遅延に気付いていると私は、APIを介して、新たなデータにアクセスできるようにしていたときに。しかし、しばらくしてから、私のAPIコールが動作するようになることに気付きました。私の質問は

  1. あり、この予想される動作ですか?
  2. 各Microsoft Graph API要求に必要なアクセス許可を説明するドキュメントがどこかにありますか?

関連するAPIリクエストを行う前に、各権限を変更した後に新しいトークンをリクエストしています。

答えて

0

スコープを変更したとき(Azureを使用してAutorizationを管理する場合)、ユーザーから新しい同意を要求する必要があります。 PromptBehavior.Alwaysパラメータを指定して、「1時間」ADAL AcquireTockenメソッドを呼び出すことができるようにしてください。 私はあなたの同意をリフレッシュし、あなたの新しいスコープを利用可能にするのに十分であると思います。あなたはここでそれらを見つけるでしょう、スコープの権限の詳細については

 if (mustRefreshBecauseScopesHasChanged) 
     { 
      authResult = await authContext.AcquireTokenAsync(GraphResourceId, ClientId, AppRedirectURI, PromptBehavior.Always); 
     } 
     else 
     { 
      authResult = await authContext.AcquireTokenSilentAsync(GraphResourceId, ClientId); 

      if (authResult.Status != AuthenticationStatus.Success && authResult.Error == "failed_to_acquire_token_silently") 
       authResult = await authContext.AcquireTokenAsync(GraphResourceId, ClientId, AppRedirectURI, PromptBehavior.Auto); 
     } 


     if (authResult.Status != AuthenticationStatus.Success) 
     { 
      if (authResult.Error == "authentication_canceled") 
      { 
       // The user cancelled the sign-in, no need to display a message. 
      } 
      else 
      { 
       MessageDialog dialog = new MessageDialog(string.Format("If the error continues, please contact your administrator.\n\nError: {0}\n\n Error Description:\n\n{1}", authResult.Error, authResult.ErrorDescription), "Sorry, an error occurred while signing you in."); 
       await dialog.ShowAsync(); 
      } 
     } 

:ここ

は、私が使用するマクロコードである

http://graph.microsoft.io/en-us/docs/authorization/permission_scopes

関連する問題