2016-11-07 119 views
2

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

我已经实现了上面的解决方案,它运行良好。但是,我必须将服务的受众从GUID更改为URL,例如:

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

这意味着用户无法再使用OAuth登录。是否可以在两种情况下使用相同的受众群体,或指定两个受众群体?

感谢,

回答

1

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

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

根据描述,你在你的web服务改变了观众。为了使Web服务来继续支持使用的OAuth 2.0代码授予流获得令牌,你还需要使用新的观众改变资源(看来你获得使用在该GUID的令牌旧请求)。

1

你将不得不您的应用程序分成Azure中的Active Directory中的两个注册的应用程序。您可以在documentation中看到身份验证方案。目前的情况是:

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

下图显示了每种认证方案的交互点: enter image description here

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

相关问题