Last-mile security with OAuth-enabled APIs
what recommended approach last-mile security (between apim proxy , back-end services) apis protected using oauth 2.0?
seems options are:
- on api -> security tab, configure proxy authentication "none", and use ip white-listing ensure apim proxy can communicate back-end service (which must available on public internet). this approach requires static ip apim available in standard tier (thus more expensive while in development).
- on api -> security tab, configure proxy authentication "none", , use shared secret approach, involves using secret, publisher-defined key/value pair in request header coming apim (with special code on back-end verify incoming value). the drawback approach is less-formal mechanism requires process around regularly rotating secret value.
- on api -> security tab, configure proxy authentication "mutual certificates", , specify client certificate in dropdown. the drawback approach managing cert itself.
"basic authentication" can't used in scenario because of conflicting "authorization" request header (i.e., both basic authentication , oauth 2.0 make use of "authorization" request header there'd no way support both values). in apim, on api -> security tab if specify proxy authentication = "basic authentication" when api configured use oauth 2.0 receive following error message when saving:
"disable authorization request header token sending method first"
it seems me option 3 ideal. using mutual certificates secures communication between proxy , back-end service, , works both standard , developer tiers it's inexpensive while in development. once in production, can combined ip white-listing if desired.
any guidance or suggestions appreciated.
thanks!
ben,
in situation, agree mutual authentication might best choice.
regards,
miao
Microsoft Azure > Azure API Management
Comments
Post a Comment