【发布时间】:2017-01-12 23:07:18
【问题描述】:
我为 OAuth2 设置了 ADFS3.0,我终于在我的 Client-APP 上获得了“Access-Token”。
类似这样的:
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"access_token":"<access_token>",
"token_type":"bearer",
"expires_in":3600
}
令牌由标头部分、有效负载和签名组成。
现在我将带有令牌的请求发送到我的资源服务器。我想针对 ADFS(身份验证服务器和 IDP)验证来自我的资源服务器的令牌。
这是我在 adfs 上的证书:
CertificateType : Token-Signing
IsPrimary : True
StoreLocation : CurrentUser
StoreName : My
Thumbprint : xyz
如何做到这一点?
更新: 关于令牌的一些信息:
标题:
{
"typ": "JWT",
"alg": "RS256",
"x5t": "abc"
}
有效载荷:
{
"aud": "https://serverurl",
"iss": "http://.../adfs/services/trust",
"iat": 1473063317,
"exp": 1473066917,
"auth_time": "2016-09-05T08:15:17.875Z",
"authmethod": "urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport",
"ver": "1.0",
"appid": "some-uid"
}
签名:
{
RSASHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
Ceritifate/secret
}
计划的授权授权流程(短版没有授权授权代码详细信息):
我们有自己的客户端应用程序(颁发者),它从 ADFS(auth + idp)请求令牌,然后将令牌+请求发送到资源服务器,然后资源服务器应该针对 ADFS 验证令牌。如果签名/令牌有效,我缺少的是 ADFS 的某个端点。 Thers 是 ADFS 服务器上的 /adfs/oauth2 端点(我也从中获得了访问权限),但微软的文档有点缺乏......
【问题讨论】:
-
不存在关于 ADFS 的 OAuth 2 实施的 Microsoft 文档。你是如何解决这个问题的?我有同样的问题。
标签: java oauth-2.0 jwt adfs windows-server-2012-r2