3

Outlook Calendar REST API を使用する Android アプリを開発しています。複数のユーザー (会議室) のカレンダーを同期して更新しようとしています。

私の質問は次のとおりです。

1) 初期認証コードの有効期限はどのくらいですか?

2)代わりにリフレッシュトークンの場合は?

アクセス トークンは60 分後に期限切れになります。更新トークンの有効期限が 6 時間、14 日、または 90 日であるかどうかを確認できません。

3) 後者は構成可能ですか? 有効期限が切れないようにすることはできますか?

`

更新: ( https://msdn.microsoft.com/en-us/library/azure/dn645542.aspxから)

「更新トークンの有効期間は提供されず、ポリシー設定と、認証コードの付与が Azure AD によって取り消される時間によって異なります。アプリケーションは、新しいアクセス トークンの要求が失敗した場合を予期して処理する必要があります。その場合、 、新しいアクセス トークンを要求するコードに戻る必要があります。」

また: ( http://blogs.msdn.com/b/exchangedev/archive/2014/03/25/using-oauth2-to-access-calendar-contact-and-mail-api-in-exchange-onlineから) -オフィス内-365.aspx) "リフレッシュ トークンには有効期間が指定されていません。通常、リフレッシュ トークンの有効期間は比較的長いです。ただし、場合によっては、リフレッシュ トークンの有効期限が切れたり、取り消されたり、目的のアクションを実行するための十分な権限がないことがあります。クライアント アプリケーションは、トークン発行エンドポイントから返されたエラーを正しく処理する. リフレッシュ トークン エラーの応答を受け取った場合は、現在のリフレッシュ トークンを破棄し、新しい認証コードまたはアクセス トークンを要求する. 特に、認証コード付与フローでリフレッシュ トークンを使用する場合、interaction_required または invalid_grant エラー コードを含む応答を受け取った場合は、更新トークンを破棄し、新しい認証コードを要求してください。」

では、アプリに常にすべてのユーザーがログインしていることをどのように保証できますか?

夜間は機内モードになり、クラッシュからも自動的に回復するはずです。資格情報をプログラムで保存するユーザーを認証せずに解決できますか?

ありがとう

4

2 に答える 2

2

できることは、refresh_token と access_token を取得することです。access_token を介して必要なものにアクセスします。それが失敗した場合は、有効期限が切れていると想定し、refresh_token を使用して access_token を更新します。ユーザーが自分のパスワードを変更した場合 (または他のケースがある場合)、ユーザーを最初からやり直します。

refresh_token を取得するには、スコープに offline_access を追加する必要があると思います。このようなもの:

USER_OAUTH2_AUTHORIZE_URL
    + "?client_id=" + config.getClientId()
    + "&redirect_uri=" + getOutlookLoginRedirect(request)
    + "&response_type=code"
    + "&scope=https%3A%2F%2Foutlook.office.com%2Fmail.send%20" +
             "https%3A%2F%2Foutlook.office.com%2Fmail.readwrite%20" + 
             "offline_access%20openid%20email%20profile"
于 2016-04-22T01:16:56.473 に答える