如何配置 Azure AD 以启用刷新令牌

How to configure Azure AD to enable refresh tokens

我有一个链接到 Azure AD 的 Azure 应用服务/Web API,身份验证工作正常,但是客户端令牌将在 1 小时后过期,所以我想启用 OAuth refresh_token。当我检查在我的服务上调用 /.auth/me 的结果时,我没有看到 refresh_token。已在应用服务上启用令牌存储。

我已尝试将其添加到 Azure AD 清单中的 oauth2permissions,但它没有出现(我已重新启动 App 服务并重新部署我的服务以防令牌缓存) :

"oauth2Permissions": [ 
    {
        "adminConsentDescription": "Allow the application to store a refresh token on behalf of the signed-in user.",
        "adminConsentDisplayName": "Refresh tokens",
        "id": "3AGH4D29-B64A-4A9A-8DBC-5DB3C8BBBD75",
        "isEnabled": true,
        "type": "User",
        "userConsentDescription": "Allow the application to store a refresh token on your behalf.",
        "userConsentDisplayName": "Store refresh token",
        "value": "refresh_token"
    }
]

我的尝试基于此处给出的指导: https://cgillum.tech/2016/03/07/app-service-token-store/

我使用此处的指导解决了这个问题:https://cgillum.tech/2016/03/25/app-service-auth-aad-graph-api/

基本上你必须更新你的应用程序服务的授权设置。而且它没有 UI,所以我使用了 azure 资源浏览器。

关键是将 additionalLoginParams 值设置为 ["response_type=code id_token", "resource=https://graph.windows.net"]