Q38. 使用 Oracle 云基础架构 (OCI) API Gateway 的开发人员必须对其网络应用程序的 API 请求进行身份验证。身份验证过程必须使用自定义方案来实现,该方案接受来自 API 调用方的字符串参数。在这种情况下,开发人员可以使用哪种方法?
说明
使用授权器函数为 API 部署添加身份验证和授权:
您可以使用 "授权器函数"(如本主题所述)或 JWT(如使用 JSON Web 标记 (JWT) 为 API 部署添加身份验证和授权所述)来控制对部署到 API 网关的 API 的访问。
通过编写 "授权器函数",您可以为应用程序接口网关添加身份验证和授权功能:
1.处理请求属性,以便与身份供应商核实呼叫者的身份。
2.确定允许调用者执行的操作。
3.Returns the operations the caller is allowed to perform asa list of 'access scopes' ("访问范围 "是用于确定访问权限的任意字符串).
可选择返回一个键值对,供 API 部署使用。例如,作为上下文变量用于 HTTP 后端定义(请参阅将上下文变量添加到策略和 HTTP 后端定义)。
创建一个授权函数,使用自定义方案实现请求头授权,接受来自 API 调用者的字符串参数。
管理输入参数
在这种情况下,我们需要在代码中管理大量静态参数。例如,秘密服务端点的 URL、用户名和其他常量参数化数据。我们可以在应用程序或函数级别管理这些参数(OCI 函数打包在应用程序中,而应用程序可以包含多个函数)。在本例中,我将创建函数级参数。您可以使用以下命令创建参数:
fn config function test idcs-assert idcsClientId aedc15531bc8xxxxxxxxxxbd8a193
参考资料
https://technology.amis.nl/2020/01/03/oracle-cloud-api-gateway-using-an-authorizer-function-for-client-secret-a
https://docs.cloud.oracle.com/en-us/iaas/Content/APIGateway/Tasks/apigatewayusingauthorizerfunction.htm
https://www.ateam-oracle.com/how-to-implement-an-oci-api-gateway-authorization-fn-in-nodejs-that-accesses-o
发表回复