やりたいこと
Azureリソースのシステム割り当て済みマネージドID(今回はData Factoryを使用)からAzure API ManagementへOAuth認証を通したい。
今回はData Factoryを使っていますが、他リソースでも同様のことができると思います。
Data FactoryでWebアクティビティを作成
予めData Factoryのシステム割り当てマネージドIDを有効化しておき、 認証
を システム割り当てマネージドID
、リソースを https://management.azure.com/
で指定する。APIMでサブスクリプションキー必須の場合はヘッダーにその情報を入れておく。
APIMのAPIポリシーを設定
APIのIncomingポリシーを下記の通り設定する。appidacr
が 2
はマネージドIDからであることを示している。もし Unauthorized
になる場合は、ログなどを確認して値を微調整する。
<inbound>
<base />
<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized">
<openid-config url="https://sts.windows.net/{テナントID}/.well-known/openid-configuration" />
<issuers>
<issuer>https://sts.windows.net/{テナントID}/</issuer>
</issuers>
<required-claims>
<claim name="appidacr" match="any">
<value>2</value>
</claim>
<claim name="aud">
<value>https://management.azure.com/</value>
</claim>
<claim name="oid" match="any">
<value>{Data Factoryのシステム割り当てマネージドID}</value>
</claim>
</required-claims>
</validate-jwt>
</inbound>