API管理基本身份验证 [英] API Management Basic Authentication
问题描述
我有一个Azure API管理,添加了一个逻辑应用程序作为后端API.现在,我想为API管理启用基本身份验证,以便当客户端调用受API管理保护的逻辑应用程序网址时,需要提供用户名和密码.我熟悉API Management的访问限制策略,现在我的问题是在APIM中的哪里以及如何设置基本身份验证凭据?
I have an Azure API Management, added a logic app as back end API. Now I want to enable basic authentication for the API Management so that when client will call the logic app url which is protected by API Management need to provide username and password. I am familiar with access restriction policy of API Management , now my question is where and how to set basic authentication credentials in the APIM?
推荐答案
以下是用于设置基本身份验证的代码段,其中username ="someUser"和password ="ThePassw0rd"
Here is a code snippet to set up basic auth wuth username="someUser" and password="ThePassw0rd"
<policies>
<inbound>
<set-variable name="isAuthOk"
value="@(context.Request.Headers.ContainsKey("Authorization")
&& context.Request.Headers["Authorization"].Contains(
"Basic " + Convert.ToBase64String(
Encoding.UTF8.GetBytes("someUser:ThePassw0rd")
)
)
)" />
<base />
<choose>
<when condition="@(context.Variables.GetValueOrDefault<bool>("isAuthOk"))">
</when>
<otherwise>
<return-response>
<set-status code="401" reason="Unauthorized" />
<set-header name="WWW-Authenticate" exists-action="override">
<value>Basic realm="someRealm"</value>
</set-header>
<set-body>Wrong username or password</set-body>
</return-response>
</otherwise>
</choose>
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
这篇关于API管理基本身份验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!