다음을 통해 공유


관리 ID를 사용하여 인증

적용 대상: 모든 API Management 계층

authentication-managed-identity 정책을 사용하여 관리 ID를 사용하는 백 엔드 서비스를 인증합니다. 이 정책은 기본적으로 관리 ID를 사용하여 Microsoft Entra ID에서 지정된 리소스에 액세스하기 위한 액세스 토큰을 가져옵니다. 토큰을 성공적으로 가져오면 정책에서 Authorization 스키마를 사용하여 Bearer 헤더의 토큰 값을 설정합니다. API Management는 만료될 때까지 토큰을 캐시합니다.

시스템 할당 ID와 다중 사용자 할당 ID를 모두 사용하여 토큰을 요청할 수 있습니다. client-id를 제공하지 않으면 시스템 할당 ID로 가정됩니다. client-id 변수가 제공된 경우 Microsoft Entra ID의 해당 사용자 할당 ID에 대한 토큰이 요청됩니다.

참고 항목

정책 문에 제공된 순서대로 정책의 요소 및 자식 요소를 설정합니다. API Management 정책을 설정하거나 편집하는 방법에 대해 자세히 알아봅니다.

정책 문

<authentication-managed-identity resource="resource" client-id="clientid of user-assigned identity" output-token-variable-name="token-variable" ignore-error="true|false"/>  

특성

특성 설명 필수 항목 기본값
resource 문자열입니다. Microsoft Entra ID의 대상 웹 API(보안 리소스)의 애플리케이션 ID입니다. 정책 식이 허용됩니다. 해당 없음
client-id 문자열입니다. Microsoft Entra ID에서 사용자가 할당한 ID의 클라이언트 ID 정책 식은 허용되지 않습니다. 아니요 해당 없음. 특성이 없는 경우 시스템 할당 ID가 사용됩니다.
output-token-variable-name 문자열입니다. string 개체 형식으로 토큰 값을 받을 컨텍스트 변수의 이름입니다. 정책 식은 허용되지 않습니다. 아니요 해당 없음
ignore-error 부울입니다. true로 설정하면 액세스 토큰을 가져오지 않은 경우에도 정책 파이프라인이 계속 실행됩니다. 아니요 false

사용

예제

관리 ID를 사용하여 백 엔드 서비스 인증

<authentication-managed-identity resource="https://graph.microsoft.com"/> 
<authentication-managed-identity resource="https://cognitiveservices.azure.com"/> <!--Azure OpenAI-->
<authentication-managed-identity resource="https://management.azure.com/"/> <!--Azure Resource Manager-->
<authentication-managed-identity resource="https://vault.azure.net"/> <!--Azure Key Vault-->
<authentication-managed-identity resource="https://servicebus.azure.net/"/> <!--Azure Service Bus-->
<authentication-managed-identity resource="https://eventhubs.azure.net/"/> <!--Azure Event Hub-->
<authentication-managed-identity resource="https://storage.azure.com/"/> <!--Azure Blob Storage-->
<authentication-managed-identity resource="https://database.windows.net/"/> <!--Azure SQL-->
<authentication-managed-identity resource="https://signalr.azure.com"/> <!--Azure SignalR-->
<authentication-managed-identity resource="AD_application_id"/> <!--Application (client) ID of your own Azure AD Application-->

관리 ID 사용 및 수동으로 헤더 설정

<authentication-managed-identity resource="AD_application_id"
   output-token-variable-name="msi-access-token" ignore-error="false" /> <!--Application (client) ID of your own Azure AD Application-->
<set-header name="Authorization" exists-action="override">
   <value>@("Bearer " + (string)context.Variables["msi-access-token"])</value>
</set-header>

전송-요청 정책에서 관리 ID 사용

<send-request mode="new" timeout="20" ignore-error="false">
    <set-url>https://example.com/</set-url>
    <set-method>GET</set-method>
    <authentication-managed-identity resource="ResourceID"/>
</send-request>

정책 작업에 대한 자세한 내용은 다음을 참조하세요.