使用AD保护Azure API Management中的所有API

时间:2016-03-29 08:19:53

标签: azure owin azure-active-directory azure-api-management

是否可以使用以下方案在Azure Management Api级别使用一个“共享”Azure Active Directory保护所有API:

  1. 用户调用指向Service X的Azure API Management服务
  2. 如果请求未经过身份验证,则用户应提供Active Directory Creditentials
  3. AD Creditentials在单独的组件上验证并返回令牌
  4. 用户使用令牌对Azure API管理服务进行身份验证
  5. 如果用户经过身份验证,则API Management Service使用基本身份验证来呼叫服务X
  6. 可以使用一个令牌访问每个服务,因为它在单独的组件中验证。
  7. 仅使用API​​ Management Portal中配置的基本身份验证保护服务。 enter image description here
  8. 这种情况是否可以实施?如果不是,我怎样才能实现与可用组件类似的东西?

1 个答案:

答案 0 :(得分:1)

大多数应该可以使用API​​管理策略。

2,3)为此使用高级政策功能:https://msdn.microsoft.com/en-us/library/azure/dn894085.aspx

4)添加Validate JWT政策: https://msdn.microsoft.com/library/azure/034febe3-465f-4840-9fc6-c448ef520b0f#ValidateJWT

<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid.">
    <openid-config url="https://login.windows.net/contoso.onmicrosoft.com/.well-known/openid-configuration" />
    <required-claims>
        <claim name="id" match="all">
            <value>insert claim here</value>
        </claim>
    </required-claims>
</validate-jwt>

5)默认行为,基本身份验证或证书是azure api管理(或通过JWT)的唯一选项,也可以从Azure门户设置。 https://msdn.microsoft.com/en-us/library/azure/dn894079.aspx#Basic

7)是的,凭证可以安全地存储在API管理的新“属性”部分中: https://azure.microsoft.com/en-us/documentation/articles/api-management-howto-properties/