【问题标题】:Azure bearer authentication with OAuth or certificate?使用 OAuth 或证书进行 Azure 不记名身份验证?
【发布时间】:2017-03-21 03:23:35
【问题描述】:

我对 Azure 很陌生,所以如果我的术语有点不对,我很抱歉。我继承了一个 Web 服务,该服务使用 Azure 上的 OAuth 2 对用户进行身份验证。我被要求创建一个应用程序,该应用程序还使用 this 等证书访问服务。

我已经实施了上述解决方案并且效果很好。但是我不得不将服务的受众从 GUID 更改为 URL,例如:

Was: <add key="ida:Audience" value="709a****-****-****-****-*************" />
Now: <add key="ida:Audience" value="https://***.onmicrosoft.com/cafc****-****-****-****-*************" />

这意味着用户不能再使用 OAuth 登录。是否可以在两个场景中使用相同的受众,或者指定两个受众?

谢谢,

【问题讨论】:

    标签: azure oauth active-directory oauth-2.0


    【解决方案1】:

    您必须在 Azure Active Directory 中将您的应用程序拆分为两个已注册的应用程序。您可以在documentation 中看到认证场景。有以下场景:

    • Web 浏览器到 Web 应用程序
    • 单页应用
    • Web API 的本机应用程序
    • Web 应用程序到 Web API
    • Web API 的守护程序或服务器应用程序

    下图显示了每个身份验证场景的交互点:

    如您所见,每个场景都有一种特定的方法来验证对它的请求。对于您的场景,您需要一个请求您所需信息的 Web API,然后是一个与您的用户交互的浏览器应用程序,然后是一个可以与同一 API 交互的守护程序。

    【讨论】:

      【解决方案2】:

      是否可以在两个场景中使用相同的受众,或者指定两个受众?

      是的,这是可能的。受 Azure AD 保护的 Web 服务并不关心你如何获取令牌。在这种情况下,您希望使用 OAuth 2.0 代码授权流程客户端凭据流程 获取令牌。它将根据配置验证令牌,例如audiencetenant

      根据描述,您更改了网络服务中的受众。要使 Web 服务继续支持使用 OAuth 2.0 代码授权流程获取的令牌,您还需要使用新的 audience 更改 资源 >(看来您是使用旧请求中的 guid 获取令牌的)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-11
        • 2019-07-17
        • 2015-02-02
        • 2023-03-29
        • 2021-08-09
        • 1970-01-01
        • 2018-09-30
        • 2011-10-20
        相关资源
        最近更新 更多