Oauth 2.0 如何在Microsoft Power Automation中使用自己的OAuth2连接自定义API?
我一直在尝试将Microsoft Power Automation连接到我的API。我的API有一个OAuth2代码流。 根据Power Automation,连接器可以连接到我的API。并执行一个测试。但问题是微软发送了一个由他们生成的承载令牌,而不是我通过OAuth2给他们的那个,在我的API上继续发送,如预期的那样出现401错误(无效令牌) 在“电源自动化自定义连接器”页面的“安全性”选项卡中,我有以下内容: 身份验证类型 OAuth2.0 OAuth2.0设置Oauth 2.0 如何在Microsoft Power Automation中使用自己的OAuth2连接自定义API?,oauth-2.0,azure-active-directory,power-automate,Oauth 2.0,Azure Active Directory,Power Automate,我一直在尝试将Microsoft Power Automation连接到我的API。我的API有一个OAuth2代码流。 根据Power Automation,连接器可以连接到我的API。并执行一个测试。但问题是微软发送了一个由他们生成的承载令牌,而不是我通过OAuth2给他们的那个,在我的API上继续发送,如预期的那样出现401错误(无效令牌) 在“电源自动化自定义连接器”页面的“安全性”选项卡中,我有以下内容: 身份验证类型 OAuth2.0 OAuth2.0设置 身份提供程序:通用OAu
- 身份提供程序:通用OAuth2
- 客户端ID:SomeValue
- ClientSecrect:SomeValue
- 授权URL:mydomain.com/auth/authorize
- 令牌URL:mydomain.com/auth/Token
- 刷新URL mydomain.com/auth/token
- 重定向URL:microsoft-flow.com/Redirect(不是真实的)
{
access_token: "non JWT token", // simillar to a hash
refresh_token: "non JWT token",
expires_in: 3600
}
上述请求是microsoft在接受为有效连接之前的最终请求。microsoft发送给我的令牌是JWT令牌,而不是我提供的令牌
我见过一些人在应用程序中使用Azure广告认证,但我试图实现与其他platoforms类似的东西(例如Github、Spotify、e.t.c)
所以我的问题是,是否可以使用OAuth2将Power Automation连接到自定义API?如果是,怎么做?这是可能的
除了列出的OAuth2.0设置之外,还有另一个重要的属性Scope
,您遗漏了它
因为您的API在Azure AD中受保护,所以我假设您已经和
之后,您可以获取api的应用程序ID URI(api://{clientId}
)
您应该将此值放入Power Automation中的“范围”,如下所示:
然后,您的API将认为此访问令牌有效。我已完成两个步骤来解决此问题 第一步 以前,我的API返回了带有
access\u-token
、refresh\u-token
和expires\u-in
的主体,但后来我添加了scope
和token\u-type
。例如:
{
访问令牌:“2346ad27d7568ba9896f1b7da6b5991251debdf2”,
刷新令牌:“4468e5deabf5e6d0740cd1a77df56f67093ec943”,
在:3600,
范围:“无”,
令牌类型:“承载者”
}
步骤2
删除自定义连接件并使用相同的参数创建一个新连接件。当我到达“测试”部分时,Power Automatic终于可以成功地发出GET请求
在我的例子中,即使API更新了,Power Automatic仍然在使用它的错误令牌,所以我必须删除那个自定义连接器并创建一个新的连接器
结论
通过更新API并删除旧的自定义连接器,我可以使连接器正常工作。我会考虑这一点。非常感谢。我的API确实有一个microsoft登录名,但它使用了我自己的自定义令牌来访问。我这样做是因为我不知道API是否会有其他登录方法。如果我的API要与Microsoft集成,那么这将是一个最佳实践。对于我的具体问题,我发布了解决方案。