AAD B2C-(4) 体验使用AAD B2C保护Node JS(passport.js)

本文演示了如下内容:

 

1. 部署了一个Node JS WEB API, 该API受AAD B2C保护(使用Passport.js );

2. 使用POSTMAN 模拟客户端请求,从AAD B2C获取Access Token后向API发起请求;

 

步骤:

1. 准备Node js API 网站,该网站为微软示例代码;

2. 在AAD B2C中为Node js API 新增应用程序,并添加已发布的作用域;

3. 在AAD B2C中为Postman 新增应用程序,并将该应用程序对 Node js API 应用授权;

4. 增加ROPC登录用户流(无需浏览器的用户流);

5. 在Postman中使用ROPC终结点获取Access Token;

6. 在Postman中携带Access Token访问Node js API;

 

视频介绍:

您可以在B站观看本节视频:https://www.bilibili.com/video/BV1Cc411h7fM/

 

图文介绍:

本文使用示例代码:https://github.com/Azure-Samples/active-directory-b2c-javascript-nodejs-webapi

添加一个Node JS 的 应用程序:

注意,本例子中 回复URL填写:https://localhost:5000, 该值是因为我们示例代码是通过该url访问的。

ID URI 填写 ”API“ 或者其他值都可以。

img-79271532-5732-4c7d-aabb-a7fc43140aae.png

 

在已发布的作用域中增加如下两项:

本例中,需至少保留demo.read,原因是示例代码中,对"demo.read"这个字符串进行了检测。

img-ed1be10a-5ba0-4139-861c-41cc438503aa.png

如下图,代码中使用了“demo.read”字符串进行了权限检测,如果要修改,则Azure Portal中的 AAD B2C中的应用已发布作用域和代码需要同时修改才行!

img-841ce05d-9291-4426-a0e4-393d3046b687.png

 

接下来创建 postmanclient应用程序:

img-95c62898-4160-48bf-a0f3-f4db0af8ccbf.png

 

设置API访问权限,允许postmanclient访问 api的权限:

img-1439b3e3-da86-4a63-aa86-2f193f4df06e.png

 

修改示例代码中的配置文件:

本文视频中的第06:00分钟进行了详细的配置解释,介绍了如何找到这些值;

img-1f7a69f3-43d7-4646-a2e5-8ab30fa0c5a8.png

对于配置中的用户流,需要新建一个 ROPC类型的用户流,该类用户流不需要使用浏览器跳转以登录获取Token:

img-030579b8-866b-42a1-9c1f-4d9b71fb754c.png

根据需要,选择需要返回到Token中的 值即可:

img-07fdef86-3f63-4143-8b87-28f458c26e5f.png

 

示例代码逻辑如下:

如果用户权限中有 “demo.read”,则返回用户name属性,否则,返回403错误:

img-111ac781-2fde-43d9-9364-4b3115f39b2b.png

 

启动网站:

img-6dff822f-b450-43fa-90da-ebb100ddacac.png

按照如下参数即可取出Access Token:

其中如下值需要根据实际情况修改,本文视频10:00左右详细解释了每个字段从哪里可以取到值

img-9c3a5bbd-38f1-47ad-a8a2-e0fbeb13ce86.png

 

使用Token进行请求,如下图可以执行成功:

img-190300bc-35a7-4432-a43d-ddaac0a31e14.png

 

同时,我们可以在Node JS的代码中拿到用户信息,拿到用户信息后,可以跟业务逻辑进行集成了:

img-bdb03ddc-b916-4cd9-a019-50b2c628536a.png

 

至此,本文结束!

 

 


猜你喜欢

转载自blog.51cto.com/10117438/2486636
aad