Windows Azure AppFabric 入门教学系列 (四):SWT 和OAuth WRAP介绍
2012-03-22 11:57:23 来源:WEB开发网
- 客户端请求Access Token。客户端向https://auth.example.net/access_token发送HTTPS POST请求,并带有如下信息:wrap_name=datadumper&wrap_password=j2hw7GPsl0&Audience=crm.example.com
- 成功响应。授权服务器检查客户密码j2hw7GPsl0以及客户名datadumper是否被授权访问crm.example.com.授权服务器注意到时间是2010--‐02--‐03T04:05:06Z,从1970--‐01--‐01T0:0:0Z.时算起,其为1265198706秒。授权服务器希望Access Token一小小时候失效,所以以3600加在当前时间上。服务器便使用如下信息:
net.example.auth.account: datadumper
ExpiresOn:1265202306(1265198706+3600)
Audience:crm.example.com
Issuer:auth.example.net
以及协商的HMAC密钥来产生如下SWT:
net.example.auth.account=datadumper&ExpiresOn=1265202306&Audience=crm.
example.com&Issuer=auth.example.net&HMACSHA256=N9%2F%2F0tSos78Me36%2Bi
oBH0sFKfd7eCsURlEIheoUbCJk%3D
授权服务器以HTTP 200 OK来响应客户端的HTTPS请求。
Access Token和其生命周期以application/x--‐www--‐form--‐urlencoded格式置于信息的主体内:
wrap_access_token=net.example.auth.account%3Ddatadumper%26ExpiresOn%3D
1265202306%26Audience%3Dcrm.example.com%26Issuer%3Dauth.example.net%26
HMACSHA256%3DN9%252F%252F0tSos78Me36%252BioBH0sFKfd7eCsURlEIheoUbCJk%2
53D&wrap_access_token_expires_in=3600
- 客户端调用受保护资源:客户端拥有一小时有效的Access Token。其使用API来调用https://crm.example.com/data,并包含如下HTTP头部:
Authorization: WRAP access_token="net.example.auth.account=datadumper&
ExpiresOn=1265202306&Audience=crm.example.com&Issuer=auth.example.net&
HMACSHA256=N9%2F%2F0tSos78Me36%2BioBH0sFKfd7eCsURlEIheoUbCJk%3D"
受保护资源验证SWT,并按照SWT内的授权属性完成客户端的请求。
更多精彩
赞助商链接