【问题标题】:How do I get a Refresh_Token from a ADFS 3.0 end point in C# MVC?如何从 C# MVC 中的 ADFS 3.0 端点获取 Refresh_Token?
【发布时间】:2017-11-09 23:30:34
【问题描述】:

我一直在使用 Rob Sander 的说明保护 webapi,可在此处找到:Securing a web api with adfs 3.0 and jwt tokens

我已使用 usernamemixed 端点通过 ADFS 成功执行登录,并已收到编码的 Json Web 令牌 (JWT)。没关系,我可以使用 ADFS 服务器上的联合数据 xml 中的 X509 证书成功验证令牌。

我已经实现了一个 DelegatingHandler 以便检查添加到方法的任何 Authorize 属性。

最后一个难题是我可以从哪里获得 refresh_token。来自 ADFS 端点是有意义的,我认为它会在来自 usernamemixed 端点的响应中,但它似乎不存在。另外,如果我提供了一个 refresh_token,我如何打电话来请求一个新的 access_token?

【问题讨论】:

    标签: c# asp.net-mvc jwt adfs3.0


    【解决方案1】:

    通常,还有另一个 OAuth 端点。您将拥有 /authorize、/token 和 /refresh。

    不确定 ADFS 3.0 是否实现了这一点?

    您可以通过以下方式获得它:

    Set-AdfsRelyingPartyTrust -TargetName "RPT Name" -IssueOAuthRefreshTokensTo AllDevices

    更多详情here.

    【讨论】:

    • 我确实启用了 OAuth 刷新令牌,但返回的 jwt 仍然不包含刷新令牌。我所做的其他一些设置更改,例如令牌生命周期,都反映在 jwt 中。
    • 我正在使用 usernamemixed 端点。它只给了我一个 access_token。如果我有另一种方法来获取仍然允许使用用户名和密码进行身份验证的令牌并将 access_token 和 refresh_token 还给我,那么我会很高兴的。也就是说,我还需要知道如何调用 Refresh Token 方法。我看过 ADAL,但这似乎会弹出一个窗口,这正是我想要避免的。
    • ADFS 3.0 的问题是 OAuth 支持有限。它仅支持身份验证。代码授予,这就是您获得弹出窗口的原因,
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-16
    • 1970-01-01
    • 1970-01-01
    • 2017-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多