WEB开发网
开发学院服务器云计算 Windows Azure AppFabric 入门教学系列 (五):初探... 阅读

Windows Azure AppFabric 入门教学系列 (五):初探Access Control Service

 2012-03-22 11:56:30 来源:WEB开发网   
核心提示: (这里我们看到打开了对于Get3DaysForecast服务的访问)返会Rule ID = rul_462d5abd1326c40993f9ec2e766c0ab3b69c11093404db2736d81f5e6018caf141d2e4cdd21643354.6 输入如下代码,并执行,Windows Azur

   (这里我们看到打开了对于Get3DaysForecast服务的访问)

返会Rule ID = rul_462d5abd1326c40993f9ec2e766c0ab3b69c11093404db2736d81f5e6018caf141d2e4cdd2164335

  4.6 输入如下代码,并执行,以获得TokenPolicyKey

acm get tokenpolicy -id:tp_18d47a547b0f40648fdabfe753885dd4 -service:{your service namespace} -host:accesscontrol.windows.net -mgmtkey:{your management key}

在Service项目,program.cs中,以如上结果中的TokenPolicyKey填入下处:

private const string TokenPolicyKey = "{insert token policy key here}";

  4.7 输入如下代码,并执行,以获得IssuerKey。

acm get issuer -id:iss_8c389a6764e8a26bf5133a7ab9c830f8bea33a82 -service:{your service namespace} -host:accesscontrol.windows.net -mgmtkey:{your management key} 

在Client项目,program.cs中,以如上结果中的IssuerKey填入下处:

private const string IssuerKey = "{insert issuer key here}";

并将ServiceNamespace 改为您在本教程第一篇文章中创建的服务命名空间。

验证:

至此,代码已经创建完毕,我们已经可以进行调试了。

1.右击Service项目,Debug->Start new Instance

2.右击Client项目,Debug->Start new Instance启动另一调试实例。最终效果如图:

 

我们看到对于Get10DaysForecast方法的调用被服务拒绝了。因为对于访问规则设定时我们只开放了对于Get3DaysForecast的访问。参看步骤3.8

探析:

  让我们打开Client项目,Program.cs,如下图:

 

我们看到上图Client启动时,GetACSToken首先会向ACS请求SWT令牌,细节如下图:

1. 构造WRAP协议的键值对。

2. 发送请求

3. 将ACS返回的字符串中抽离出SWT,并返回。

成功返回后acsToken变量值为类似如下白框内字符串(实为SWT):

在调用服务之前,在请求头部加入WRAP访问令牌。

在每次调用服务,Get3DaysForecast和Get10DaysForecast时,ACSAuthorizationManager每次都会被自动执行验证过程。如下图: 

CheckAccessCore会将刚刚放入请求头部的访问令牌取出,并验证令牌合法性,一旦通过验证,便会返回Client所请求的调用。

如果我们开放Get10DaysForecast的访问,那么SWT的值会有哪些变化呢?

参考步骤4.5 我们将Get10DaysForecast的访问打开。

调试程序后,查看acsToken的值,如下:

我们看到SWT令牌中action的值多了Get10DaysForecast一项。

上一页  1 2 3 

Tags:Windows Azure AppFabric

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接