0

JSクライアントSDKを使用してAzure Active Directoryで正常に認証されているCordovaアプリがあります。私は、CGillumの投稿の指示に従って私のAzure Webサイトを変更しました。これにより、Microsoft Graphで使用できるトークンが正常に得られ、/.auth/meを呼び出すときにリフレッシュトークンが返されます。Azure Active Directory /.auth/refreshトークンストアにリフレッシュトークンが見つからなかったために発行されたリフレッシュ要求

しかし、私は/.auth/refreshに電話しようとすると、エラーが発生し、ログには次のように表示されます。

2017-02-01T16:00:54 PID[8648] Warning  The refresh request issued 
by sid... failed because no refresh tokens were found in the token 
store. 
2017-02-01T16:00:54 PID[8648] Information Sending response: 403.80 Forbidden 

Azure Webサイトの設定でトークンストアが有効になっています。また、私が/.auth/meと呼ぶと、リフレッシュトークンはそれ以上返されないことに気付きました。一部のプロバイダでは、リフレッシュトークンを1回だけ伝えます(ただし、AADではわかりません)。

public getAccessTokenFromRefreshTokenFromAppService(): Promise<any> { 
return new Promise<boolean>((resolve, reject) => { 
    let apiUrl = Resources.azureMobileClientUrl + '/.auth/refresh'; 
    var headers = new Headers(); 
    headers.append('X-ZUMO-AUTH', this.azureService.mobileServiceClient.currentUser.mobileServiceAuthenticationToken); 
    return this.http.get(apiUrl, { headers: headers }) 
    .map(res => res.json()) 
    .subscribe(data => { 
     console.log('Get Refresh Token - ', data); 
     let token = data.authenticationToken; 

     resolve(data); 
    }, 
    error => { 
     reject(error); 
    }, 
    () => { 
    }); 
}); 

}

+0

にあなたはモバイルアプリJS SDKを使用しているか、ADAL.JSを使用しています?後者の場合、これが期待されます。クライアントはトークンを取得するクライアントであるため、リフレッシュを担当します。ログインおよび更新操作のコードスニペットのような追加の詳細情報が役立ちます。 – mattchenderson

+0

私はMobile Apps JS SDKを使用しています。上記のコードにコードスニペットを追加しました。 –

答えて

0

私はあなたの条件を誤解していない場合は、cgillumによってhttp://cgillum.tech/2016/03/07/app-service-token-store/で述べたようにAzureのWebアプリケーション/モバイルアプリでリフレッシュトークンを有効にしたいです。

彼が言及したように、AAD IDPでこの機能を有効にする予定がある場合は、App Servicesでいくつかの追加設定が必要です。詳細はhttp://cgillum.tech/2016/03/25/app-service-auth-aad-graph-api/を参照してください。

は、一般的に言って、それを有効にするには、2つの手順があります:Read directory data & Read directory data
enter image description here

  1. のWindows AzureのActive Directoryのの2社の許可をあなたのAADのアプリケーションにキーを生成し、同意

  2. REST APIを使用してApp Service認証設定を更新する

    • あなたのApp ServiceのAuthentication/Authorizationセクションで上記で生成したキーを設定します。
      enter image description here

    • Azureのリソースエクスプローラにステップ
      enter image description here
      設定additionalLoginParams["response_type=code id_token", "resource=https://graph.windows.net"]
      enter image description here

+0

これは私が従った手順です。私はアクセス許可を設定し、Microsoft Graphで動作するように設定しました。 /.auth/meを呼び出すとアクセストークンを取得でき、リフレッシュトークンが返されます。しかし、私が/.auth/refreshエンドポイントを呼び出すと、それはストアにトークンがないということです。 –

関連する問題