我想知道如何(或这是否可能)在没有用户注册到Azure AD帐户并使用后端应用程序接口的情况下通过OAuth使用Azure API管理服务
我遵循了示例https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-protect-backend-with-aad,一切工作正常。
此示例使用Azure开发人员控制台作为客户端应用程序。但是,如果我想使用自己的客户端应用程序进行身份验证,这是否意味着我的客户端应用程序需要托管在具有OAuth功能的服务器下?
我的客户端应用是否可以使用“服务帐户”以用户身份登录到Azure Active Directory,以便客户端应用可以使用受保护的API?
发布于 2019-01-08 08:01:26
APIM本身并不关心任何给定的OAuth服务器是否为AAD。APIM中有三件事与OAuth相关。
首先是开发门户登录。可以通过AAD、Facebook、Google e.t.c设置开发门户来验证用户。使用此设置,APIM将联系所需的身份验证服务器以验证用户身份。只有当您希望您的用户使用某个身份验证服务器在开发门户网站上进行身份验证时,才需要此功能。
然后是OpenID和OAuth服务器的注册,以及它们与API的链接。这纯粹是为了文档目的。这样做是为了表明您的后端(不是APIM)需要来自某个Oauth服务器的OAuth令牌。开发门户在其所在部分将在开发控制台中呈现一个UI来获取令牌,并使用它调用APIM代理。这可以与任何OpenId/OAuth服务器一起使用,而不是AAD。而且您不需要托管任何应用程序,注册纯粹是为了获取客户端id和客户端密钥,因此当开发门户调用auth服务器来获取用户令牌时,它可以这样做。这只需要在开发控制台上呈现UI,这样用户就可以轻松地获取令牌来调用您的服务。不会以任何方式影响运行时请求处理。
最后是validate-jwt策略,这是APIM中唯一与OAuth相关的运行时位。可以将此策略配置为从请求中提取JWT令牌,并检查其是否有某些声明,以决定主叫方是否有权进行呼叫。这不需要任何其他设置就可以工作,只需将策略放入管道中就足够了。但您可能还想设置auth服务器,因为没有它,dev控制台在默认情况下将无法工作。
https://stackoverflow.com/questions/54032664
复制相似问题