gpt4 book ai didi

azure - 从 Angular AD 客户端获取应用程序的有效承载 token

转载 作者:行者123 更新时间:2023-12-03 01:39:48 24 4
gpt4 key购买 nike

我已遵循本指南:

https://github.com/Azure-Samples/active-directory-angularjs-singlepageapp

并且我连接成功。我想将不记名 token 发送到我的 C# 服务器并使用它来调用我的工作台(另一个 AD 应用程序)函数。

我正在尝试使用在 postman 调用中从角度获得的不记名 token ,但它是未经授权的。值得一提的是,我在 AD 上授予了 Angular 客户端访问我的工作台实例的权限,但它仍然无法正常工作,这让我产生了一些问题:

我尝试使用本指南中的 .NET 客户端:

http://blog.pomiager.com/post/using-rest-api-in-azure-workbench-blockchain

并且它有效。我注意到,在 AuthenticationContext 对象中,它接收使用客户端 ID 和客户端 key 的凭据。我注意到在 Angular AD 示例中我们从不使用 secret 。但问题是,当查看 authService.js 中创建自己的工作台 UI 的指南时,它也从不将 key 作为参数。如下所示:

https://github.com/Azure-Samples/blockchain/blob/master/blockchain-development-kit/connect/web/workbench/custom-ux-sample/src/services/authService.js

我知道应该在服务器上设置该凭据。在我提供的 Angular 示例中,还有一个 ASP.NET 服务器

如何从 angularJS AD 示例中为工作台创建有效的承载 token ?我应该用其他东西替换 OWIN 库吗?

谢谢

最佳答案

您有两个选择:

  1. 选项1 - 直接从基于 AngularJS 的 SPA 调用 Workbench API

    在此选项中,您使用 Implicit Grant Flow并且仅通过委托(delegate)权限调用Workbench API,即在登录用户的上下文中。

    还要知道 AngularJS SPA 本身不应该使用任何客户端 secret ,因为它存在安全风险,并且使用您的应用程序的任何人都可能能够从 JavaScript 代码中提取 secret 。

    以下是来自 Azure 示例的代码示例。该示例具有 TodoSPA(您的 AngularJS 应用程序)和 ToGoAPI(单独的 API,类似于 WorkBench API)。因此,您不需要自己托管 ToGoAPI,但假设 WorkBench API 是您的 ToGoAPI。按照相同的步骤操作,只是权限名称“Access To Go API”会有所不同,您将改用 Access Work Bench API

    Call an Azure AD protected Web API in an AngularJS Single Page App

    enter image description here

    重要的代码片段 -

    App\Scripts\app.js 中,将端点对象的属性名称替换为 To Go API 的新位置,即 Workbench api url在你的情况下。在 App\Scripts\toGoListSvc.js 中,将 apiEndpoint 变量替换为相同的值。

  2. 选项2 - 创建支持基于 AngularJS 的 SPA 的后端 API

    AngularJS SPA 调用这个基于后端服务器的 API,然后调用 Workbench API。

    在此选项中,您可以使用客户端 secret 并使用委派权限以及应用程序权限

    仅当您需要使用上面显示的 Workbench API 屏幕截图中所示的管理员权限时,才需要此选项。

    从流量角度来说,可以直接使用Client Credentials grant flow如果您不需要使用用户上下文调用 Workbench,则可以从后端 API 调用。如果您需要在用户上下文中调用,请使用 On behalf of flow .

<小时/>

由于您尝试关注的博客引用仅使用委派权限,因此我认为您应该适合选项 1,但您可以根据您的要求进一步决定。

关于azure - 从 Angular AD 客户端获取应用程序的有效承载 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54927098/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com