Azure AD令牌服务不响应refresh_token和id_token

米萨兹

我正在尝试使用Outlook REST API。我必须通过Azure AD进行身份验证,对此我有一个小问题。当我交换authorization codehttps://login.microsoftonline.com/common/oauth2/v2.0/token的access token响应时,其中不包含我需要的refresh_token和id_token。我的代码发送请求是

HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("https://login.microsoftonline.com/common/oauth2/v2.0/token");
req.Method = "POST";
req.ServicePoint.Expect100Continue = false;
req.UserAgent = "Example/1.0";
req.ContentType = "application/x-www-form-urlencoded";
using (StreamWriter sw = new StreamWriter(req.GetRequestStream()))
{
    string data = "";
    data += "grant_type=authorization_code";
    data += "&code=" + Request.QueryString("code");
    data += "&scope=" + HttpUtility.UrlEncode(string.Join(" ", scopes));
    data += "&redirect_uri=" + HttpUtility.UrlEncode(redirectUri);
    data += "&client_id=" + appId;
    data += "&client_secret=" + appPassword;
    sw.Write(data);
}
HttpWebResponse res = req.GetResponse();
using (StreamReader sr = new StreamReader(res.GetResponseStream()))
{
    Response.ContentType = "application/json";
    Response.Write(sr.ReadToEnd());
    Response.End();
}

此代码的响应示例

{
    "token_type": "Bearer",
    "scope": "https://outlook.office.com/Calendars.Read https://outlook.office.com/Calendars.ReadWrite https://outlook.office.com/Mail.Read",
    "expires_in": 3600,
    "ext_expires_in": 0,
    "access_token": "EwAYA+l3B/Qk ... IpfA0C"
}

我不知道我在做什么与https://oauthplay.azurewebsites.net不同,因为那里的响应包含所有属性。

米特拉·戈尔帕德(Mitra Ghorpade)

对于刷新令牌,您必须Offline_Access在请求授权代码时要求范围,对于id_token,我想您需要Profile范围。id_token基本上是供特定于应用程序使用的,仅用于验证令牌仅由特定应用程序使用,并且没有其他应用程序代表其他应用程序使用令牌。因此,请尝试请求offline_access可能为您提供刷新令牌范围。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Azure AD重定向URI在标签之后而不是作为查询参数具有id_token

来自分类Dev

Azure ADAL刷新id_token

来自分类Dev

Azure VM和SQL Azure

来自分类Dev

为什么OAuth2服务器未提供“ refresh_token”来响应“ client_credentials”授权?

来自分类Dev

Azure服务总线等待响应

来自分类Dev

在Azure AD中使用Bearer令牌刷新

来自分类Dev

Passport-azure-ad,它会解析和验证令牌吗?

来自分类Dev

如何在Web App中从Azure AD刷新ID令牌?

来自分类Dev

Azure AD JWT令牌验证选项

来自分类Dev

有人可以解释有关Azure AD应用程序访问和refresh_token的超时和验证吗?

来自分类Dev

Azure AD Daemon应用程序应用程序权限和id_token

来自分类Dev

Azure AD-id_token不刷新

来自分类Dev

如何在Azure活动目录中验证刷新的id_token的签名

来自分类Dev

MSAL和passporrt-azure-ad无法验证令牌

来自分类Dev

在密钥斗篷id_token中获取Azure组信息

来自分类Dev

因错误的KID,passport-azure-ad无法验证`id_token`

来自分类Dev

Azure云服务从Azure消失

来自分类Dev

没有ADAL的Azure AD访问令牌

来自分类Dev

从hellojs获取refresh_token

来自分类Dev

访问令牌响应正文中缺少Azure AD:“范围”属性

来自分类Dev

Id_token 声明

来自分类Dev

Azure AD 和图形

来自分类Dev

Azure AD 连接和 Azure ADFS

来自分类Dev

Azure AD OAuth 刷新令牌

来自分类Dev

Azure AD 交换 access_token 与 id_token v.1.0 端点

来自分类Dev

Azure AD 获取错误的令牌版本

来自分类Dev

为来宾获取 Azure AD 令牌

来自分类Dev

无法在 PostMan 中获取 Azure AD 令牌

来自分类Dev

如何从 Azure AD 获取 TokenCredentials 的访问令牌?