- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
作为引用,我尝试重现此处讨论的解决方案:https://www.tech-findings.com/2020/02/securing-logic-app-with-azure-active-directory.html使用 API 管理来保护 Azure 逻辑应用。
我收到 JWT 错误。当我在浏览器中访问应用程序网址时,它给出:
{ "statusCode": 404, "message": "Resource not found" }
在 API 管理服务测试中我得到:
HTTP/1.1 401 Unauthorized
跟踪显示:
validate-jwt (-0.111 ms)
{
"message": "JWT Validation Failed: JWT not present.."
}
我做了一些谷歌搜索并尝试了以下解决方案: JWT validation failure error in azure apim和 https://learn.microsoft.com/en-us/answers/questions/108008/azure-apim-jwt-token-validation-policy.html
以下是 API 管理设计的入站策略:
<policies>
<inbound>
<base />
<set-method id="apim-generated-policy">POST</set-method>
<rewrite-uri id="apim-generated-policy" template="/request/paths/invoke//?api-version=2016-06-01&sp=/triggers/request/run&sv=1.0&sig={{[[LOGIC APP NAME]]_request-invoke_XXXXXXXXXXXXXXXXXXXXXXXX}}" />
<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Request is not authorized or token failed" require-expiration-time="false" require-scheme="Bearer" require-signed-tokens="true">
<openid-config url="https://login.windows.net/[[TENANT NAME]].onmicrosoft.com/.well-known/openid-configuration" />
<audiences>
<audience>[[THE ID OF A REGISTERED APP]]</audience>
</audiences>
</validate-jwt>
<set-header name="Authorization" exists-action="delete" />
<set-header name="apim-generated-policy" exists-action="delete" />
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
这是注册应用程序的 list :
{
"id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"acceptMappedClaims": null,
"accessTokenAcceptedVersion": 2,
"addIns": [],
"allowPublicClient": null,
"appId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"appRoles": [],
"oauth2AllowUrlPathMatching": false,
"createdDateTime": "2020-12-22T19:48:36Z",
"disabledByMicrosoftStatus": null,
"groupMembershipClaims": null,
"identifierUris": [
"api://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
],
"informationalUrls": {
"termsOfService": null,
"support": null,
"privacy": null,
"marketing": null
},
"keyCredentials": [],
"knownClientApplications": [],
"logoUrl": null,
"logoutUrl": null,
"name": "LabsTestApp",
"oauth2AllowIdTokenImplicitFlow": false,
"oauth2AllowImplicitFlow": false,
"oauth2Permissions": [],
"oauth2RequirePostResponse": false,
"optionalClaims": null,
"orgRestrictions": [],
"parentalControlSettings": {
"countriesBlockedForMinors": [],
"legalAgeGroupRule": "Allow"
},
"passwordCredentials": [],
"preAuthorizedApplications": [],
"publisherDomain": "[[TENANT NAME]].onmicrosoft.com",
"replyUrlsWithType": [],
"requiredResourceAccess": [],
"samlMetadataUrl": null,
"signInUrl": null,
"signInAudience": "AzureADandPersonalMicrosoftAccount",
"tags": [],
"tokenEncryptionKeyId": null
}
希望您能提供帮助 - 为我指出正确的方向。
最佳答案
对于此问题,您的步骤中存在多个问题。
1.您提到了错误{ "statusCode": 404, "message": "Resource not found" }
当您在浏览器中请求 url 时。原因是当您在浏览器中请求它时,它会请求 Get
方法,但 url 应使用 Post
进行请求方法。所以它显示404 not found
.
2. 当您在 API 管理服务中测试时,它显示 401 Unauthorized
。出现此错误的原因是您没有提供访问 token 或您提供的访问 token 无效。 document中的步骤您提到的不完整,请引用以下步骤:
1).首先,请确保您已完成所提供文档中的所有步骤。
2).然后转到您在azure ad中注册的应用程序并点击“Manifest”选项卡,在“Manifest”的json中添加一个appRole。 您可以为该角色指定一个名称(任何您想要的名称),我将该角色命名为 Writer
如上面的截图所示。您还可以指定一个“id”(GUID 格式)作为id
的值。 appRole 中的字段。关于添加appRole的更多详情可以引用这个document .
3).您需要在azure ad中注册另一个应用程序作为客户端应用程序。执行与文档所示相同的注册操作来注册其他应用程序,我注册了该应用程序并命名为 huryGetToken4
。进入该应用,点击“API权限”选项卡,点击“添加权限”,找到您注册的原应用,然后添加权限 Writer
。
添加Writer
后权限,您还需要点击“授予 xxx 管理员同意”。
然后单击“证书和 secret ”选项卡,单击“新建客户端 secret ”以生成客户端 secret 。复制此 secret ,因为它只会显示一次。
4).然后您需要获取访问 token ,请引用下面的屏幕截图来请求访问 token 。 在上面的屏幕截图中,您需要替换 <tenant id>
主机 URL 中包含您的租户 ID。并且还需要输入前三个参数。最后一个参数grant_type
是静态的。
5).请求访问 token ,您将得到如下屏幕截图所示的响应。 复制 access_token
的值并将其粘贴到此 page要解码 token ,您可以看到声明 roles
与 Writer
其中的许可。此声明是您需要在 <validate-jwt>
中检查的内容。 APIM 中的策略。
6)。转到您的 apim 并单击 pencil
validate-jwt
的图标政策。
7)。编辑“Reauired Claims”,如下面的屏幕截图所示:
8)。之后,您可以在APIM服务中测试api。添加带有键的 header :Authorization
,值:Bearer <your access token>
(请注意 Bearer
和访问 token 之间有一个空格)。
关于azure - Azure API 管理服务中的 "JWT Validation Failed: JWT not present..",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65440505/
似乎有很多方法可以在 Azure 中自动使用 PowerShell。由于 ARM 模板是最新的,Azure 中的其他 PowerShell 选项是否已过时?这些工具/脚本之间有什么区别: Azure
我正在开发一个将托管在 Azure 中的 Web API。我想使用 Azure 诊断将错误记录到 Azure 表存储中。在经典门户中,我可以将日志配置为转到 Azure 表存储。 Classic Po
Azure 文件存储事件可以触发 Azure WebJob 或 Azure Function 吗? 例如,在文件夹“/todo/”中创建文件时。 最佳答案 我们目前没有任何 Azure 文件绑定(bi
我需要创建一个逻辑应用程序,我的要求是,我需要从 azure data Lake Gen2 文件夹迁移 json 文件,并根据某些值需要将该 json 转换为 xml,然后将其发送到 SQL。 因此,
我使用 VS Code 创建了 1 个 node.js 和 1 个 java Azure Function 当我使用 VS Code 将这两个函数部署到 Azure 时,我最终获得了这么多 Azure
收集 Azure 诊断数据时,暂存槽是否也会将诊断数据发送到 WadPerformanceCounters 表? 如果是这样,我该如何关闭它?或者在阅读诊断信息时如何区分暂存/生产。 我不想显示有关我
您好,我是 Azure 的新手。我有 VS 2012 和 Azure SDK 2.1,当我使用模拟器运行我的 Web 应用程序时一切正常。但是当我在 azure 上部署时出现错误消息: Could n
我很难区分 Azure 订阅和 Azure 租户有何不同?我尝试使用示例来弄清楚,但每次我得出的结论是它们在某种程度上是相同的?如果租户是组织在注册 Microsoft 云服务时接收并拥有的 Azur
如果我想在 Azure Insights 中设置自定义指标集合,并以(近)实时的方式可视化其中一些指标,并查看聚合的历史数据,我应该使用 Azure Metrics Explorer 还是 Azure
我想了解具有以下配置的 Azure 数据工厂 (ADF) 的现实示例/用例: Azure 集成运行时 (AIR) 默认值 自托管集成运行时(SHIR) 其他问题: 这两种配置(AIR 和 SHIR)是
请参阅下面来自 Azure 服务总线的指标。想要识别请求数量中的背景噪音|流量较低时的响应。假设振荡请求| session 中 amqp 握手的响应是潜在的。只是不明白这是什么类型的握手?从总线接收的
此问题与 Azure 事件中心和 Azure 服务总线之间的区别无关。 问题如下: 如果您将Azure Events Hub添加到您的应用程序中,那么您会注意到它依赖于Azure Service Bu
这两个事情是完全不同的,还是它们能完成的事情大致相同/相似? 最佳答案 Azure 辅助角色是“应用程序场”中您自己的一组虚拟机。您可以以分布式方式在它们上运行任何代码。通常,您编写业务代码以在这些服
我目前正在使用 Windows Azure 虚拟机来运行 RStudio, 我的虚拟机是 Windows Server R2 2012,它是 Azure 上的一项附加服务。 我还有一个 Azure 存
我们正在寻找托管一个网站(一些 css、js、一个 html 文件,但不是 aspx、一个通用处理程序)。 我们部署为: 1) Azure 网站 2) Azure 云服务 两种解决方案都有效。但有一个
我想从 Azure 表创建 blob。 AzCopy 支持此功能,但我找不到任何说明数据移动 API 也支持它的文档。此选项可用吗? https://azure.microsoft.com/en-us
This article表示 Azure 订阅所有者有权访问订阅中的所有资源。但是,要访问 Azure 数据库,必须是数据库中的用户,或者是 Azure Admin AD 组的成员。 无论 SQL 安
我尝试使用以下代码将 XML 文件上传到 Azure FTP 服务器: https://www.c-sharpcorner.com/article/upload-and-download-files-
除了 Azure 服务总线使用主题而 Azure 事件中心基于事件 - Azure 事件中心和 Azure 服务总线之间是否有任何根本区别? 对我来说,事件和消息之间没有真正的区别,因为两者只是不同类
我有一个通过虚拟网络网关连接到 Azure 虚拟网络的 Windows VPN 客户端。目标#1 是使用其内部 IP 地址连接到我的虚拟机。这有效。 第二个目标是使用其内部计算机名称进行连接(因为 I
我是一名优秀的程序员,十分优秀!