首页 > 其他分享 >【Azure Logic App】使用 Easy Auth 在标准逻辑应用(Standard Logic App)中触发工作流

【Azure Logic App】使用 Easy Auth 在标准逻辑应用(Standard Logic App)中触发工作流

时间:2024-04-29 21:24:00浏览次数:22  
标签:false App registration enabled Auth Easy Logic login

问题描述

对于Standard Logic App,当使用HTTP请求来触发一个Workflow时,默认固定不变的SAS签名认证,因并且随着URL传递,存在泄露风险。

是否可以用Header中使用Bearer Token来进行验证呢?

 

问题解答

可以的,为Standard Logic App开启Easy Auth。

Easy Auth 使通过触发器对工作流调用进行身份验证成为可能。可以将 Easy Auth 用作一种更安全的身份验证方法,使用有过期时间要求的访问令牌,而不是使用共享访问签名 (SAS) 令牌。

基本上,Easy Auth 提供了使用托管标识进行身份验证时可用的所有优势 。要设置授权策略,需要通过REST API 设置 Auth Settings V2。 本文介绍如何以这种方式启用和使用轻松身份验证,以对发送到标准逻辑应用工作流中的请求触发器的调用进行身份验证。

 

第一步:调用 authsettingsV2 接口

PUT:  https://management.chinacloudapi.cn/subscriptions/<Subscriptions ID>/resourceGroups/<Resource Group>/providers/Microsoft.Web/sites/<Logic App Name>/config/authsettingsV2?api-version=2023-01-01  

第二步:替换占位符值(如 <subscriptionId>)为要使用的实际值

"globalValidation": { 
   "requireAuthentication": true,
   "unauthenticatedClientAction": "AllowAnonymous"
}

保持 Boby 中 requireAuthentication 值为 true。其它值根据实际修改。主要需要修改的值有:

- identityProviders.azureActiveDirectory.openIdIssuer:Azure AD 的令牌颁发者
- identityProviders.azureActiveDirectory.clientId:AAD 应用注册的 ID。这将作为允许的受众进行扩充。
- identityProviders.azureActiveDirectory.validation.allowedAudiences:包含令牌允许的受众值的数组
- identityProviders.azureActiveDirectory.validation.defaultAuthorizationPolicy.allowedPrincipals.identities:包含 Azure AD 标识的对象 ID 的数组,例如用户/组

 附上全部的Body内容

{
    "id": "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Web/sites/{logicAppName}/config/authsettingsV2",
    "name": "authsettingsV2",
    "type": "Microsoft.Web/sites/config",
    "location": "{locationOfLogicApp}",
    "tags": {},
    "properties": {
        "platform": {
            "enabled": true,
            "runtimeVersion": "~1"
        },
        "globalValidation": {
            "requireAuthentication": true,
            "unauthenticatedClientAction": "AllowAnonymous"
        },
        "identityProviders": {
            "azureActiveDirectory": {
                "enabled": true,
                "registration": {
                    "openIdIssuer": "{issuerId}",
                    "clientId": "{clientId}"
                },
                "login": {
                    "disableWWWAuthenticate": false
                },
                "validation": {
                    "jwtClaimChecks": {},
                    "allowedAudiences": [
                        {audience1},
                        "{audience2}"
                    ],
                    "defaultAuthorizationPolicy": {
                        "allowedPrincipals": {
                            "identities": [
                                "{ObjectId of AAD app1}",
                                "{ObjectId of AAD app2}"
                            ]
                        }
                    }
                }
            },
            "facebook": {
                "enabled": false,
                "registration": {},
                "login": {}
            },
            "gitHub": {
                "enabled": false,
                "registration": {},
                "login": {}
            },
            "google": {
                "enabled": false,
                "registration": {},
                "login": {},
                "validation": {}
            },
            "twitter": {
                "enabled": false,
                "registration": {}
            },
            "legacyMicrosoftAccount": {
                "enabled": false,
                "registration": {},
                "login": {},
                "validation": {}
            },
            "apple": {
                "enabled": false,
                "registration": {},
                "login": {}
            }
        },
        "login": {
            "routes": {},
            "tokenStore": {
                "enabled": false,
                "tokenRefreshExtensionHours": 72.0,
                "fileSystem": {},
                "azureBlobStorage": {}
            },
            "preserveUrlFragmentsForLogins": false,
            "cookieExpiration": {
                "convention": "FixedTime",
                "timeToExpiration": "08:00:00"
            },
            "nonce": {
                "validateNonce": true,
                "nonceExpirationInterval": "00:05:00"
            }
        },
        "httpSettings": {
            "requireHttps": true,
            "routes": {
                "apiPrefix": "/.auth"
            },
            "forwardProxy": {
                "convention": "NoProxy"
            }
        }
    }
}

 

第三步:发送PUT请求,返回200,Easy Auth配置成功

 

第四步:最后使用 Azure AD OAuth 调用请求触发器

若要使用 Azure AD OAuth 在工作流中调用请求触发器,请使用以下语法在查询参数中传递 Authorization 标头,但不传递 SAS 令牌,从而将请求发送到回调或调用 URL:

POST / GET:

https://XXXXX.chinacloudsites.cn:443/api/XXXXX/triggers/When_a_HTTP_request_is_received/invoke?api-version=2022-05-01&sp=%2Ftriggers%2FWhen_a_HTTP_request_is_received%2Frun&sv=1.0

 

[end]      

参考资料

Trigger workflows in Standard logic apps with Easy Auth : https://techcommunity.microsoft.com/t5/azure-integration-services-blog/trigger-workflows-in-standard-logic-apps-with-easy-auth/ba-p/3207378

Enable Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth) : https://learn.microsoft.com/en-us/azure/logic-apps/logic-apps-securing-a-logic-app?tabs=azure-portal&ref=hybridbrothers.com#enable-microsoft-entra-id-open-authentication-microsoft-entra-id-oauth
   

标签:false,App,registration,enabled,Auth,Easy,Logic,login
From: https://www.cnblogs.com/lulight/p/18166661

相关文章

  • 问题解决:Failed to download metadata for repo ‘appstream‘: Cannot prepare inter
    大家都知道Centos8于2021年年底停止了服务,大家再在使用yum源安装时候,出现下面错误“错误:Failedtodownloadmetadataforrepo‘AppStream’:Cannotprepareinternalmirrorlist:NoURLsinmirrorlist”1、进入yum的repos目录代码语言:javascript复制cd/etc/yum......
  • EPAI手绘建模APP颜色、贴图、材质、样式
    ⑦ 颜色选择页面1) 颜色环选色。图 65 颜色选择器-颜色环2) RGB选色。图 66 颜色选择器-RGB3) HSL选色。图 67 颜色选择器-HSL4) 国风颜色库选色。图 68 颜色选择器-国风5) CSS颜色库选色。图 69 颜色选择器-CSS6) 历史颜色:保存最近使用的多个颜......
  • openGauss Foreign-Data-Wrapper
    ForeignDataWrapperopenGauss的FDW(ForeignDataWrapper)可以实现各个openGauss数据库及远程服务器(包括数据库、文件系统)之间的跨库操作。目前支持的远程数据库类型包括Oracle、Mysql(MariaDB)、openGauss(postgres_fdw)、file_fdw、dblink。用于Oracle的外部数据包装器mysql_......
  • uniapp中导航栏的返回按钮使用 autoBackButton:false不生效
    uni-appH5端修改pages.json"autoBackButton":false不生效pages.json中配置autoBackButton是不生效的,因为这个属性只支持程序方面,H5不支持这个属性的设置 解决方法:在 mounted 这添加如下一句就好了,意思是在页面渲染完成后,找到返回按钮,把它隐藏 ......
  • IDEA导入springboot项目无法识别resources下的application.yml配置文件
    遇到的问题:IDEA springboot不能读取resources下的yml配置文件如下图,application.yml文件前面的图标并不是springboot配置文件的图标,这就是IDEA没有识别到yml文件 正确的配置文件图标因该是下面这样的可能原因及解决方法: 文件名问题:确保YML文件的名称是正确......
  • uniapp+vue3聊天室|uni-app+vite4+uv-ui跨端仿微信app聊天语音/朋友圈
    原创研发uniapp+vue3+pinia2跨三端仿微信app聊天模板Uniapp-Wechat。uni-vue3-wchat基于uni-app+vue3+pinia2+uni-ui+uv-ui等技术跨端仿制微信App界面聊天项目,支持编译到H5+小程序端+App端。实现编辑框多行消息/emoj混合、长按触摸式仿微信语音面板、图片/视频预览、红包/朋友圈......
  • yum install报错CentOS-8 - AppStream Errors during downloading metadata for repo
     https://blog.csdn.net/zhangweixbl4/article/details/135699389 意思就是:现在centos8停止维护了其实就是镜像里边的$releasever替换成8-stream如何解决这个问题:进入目录:cd/etc/yum.repos.d备份文件mkdirbakcp*bak/注意:会出现cp:-rnotspecified;omittingdi......
  • 热门:ANLOGIC USB CABLE国产安路下载器
     1.概述   ANLOGIC USBCABLE是用于国产FPGAANLOGIC安路的芯片编程设备。使用TD软件来下载烧录板载芯片。并且速度最大可以支持6Mb/s,极速完成下载和波形调试功能。   安路下载器接口定义: TCKGNDTDOVREFTMSNCNCNCTDI......
  • APP安全学习总结
    博主狂狮:https://mp.weixin.qq.com/s/jPT9uC4JOMT-96A8Xbfhvg  一、安装包测试1.1、关于反编译目的是为了保护公司的知识产权和安全方面的考虑等,一些程序开发人员会在源码中硬编码一些敏感信息,如密码。而且若程序内部一些设计欠佳的逻辑,也可能隐含漏洞,一旦源码泄漏,安......
  • EPAI手绘建模APP图层、相机、灯光
    ④ 图层列表1) 添加图层。2) 列表显示场景中所有图层。初始时,默认有一个激活的图层。场景中所有模型都会添加到这个图层。3) 第一次点击图层名称旁边的可见按钮,图层中所有模型都不可见,再次点击,图层中所有模型可见。4) 第一次点击图层名称旁边可见按钮,图层中所有模型都不......