可以在 OAuth 的授权阶段期间针对用户安全性创建定制 HTML 表单。
在使用隐式、访问代码或资源所有者密码授权类型时,本机 OAuth 提供者配置包括用户授权。 您可以选择授权应用程序用户的方式,其中一个选项是 “自定义 HTML 表单 ”。 本主题描述如何针对授权创建定制 HTML 表单。
关于本任务
在三种 OAuth 授权模式(隐式授权流、资源所有者密码流和访问(授权)码流)中,用户通过授权表单授予应用程序访问其数据的权限。 您可以提供定制表单或缺省表单。 您的定制表单必须满足特定需求。
重要提示: IBM® API Connect 用于将信息注入表单的字段名称区分大小写。
要为本机 OAuth 提供者创建定制授权表单,请完成以下步骤:
- 创建格式正确的 XHTML 文档。 这由 解析 API Connect 以插入隐藏字段。
- 对于 XHTML 表单,请将方法设置为 POST,将编码类型设置为 application/x-www-form-urlencoded,并将操作设置为 authorize。 添加您需要的任何其他参数。
例如,
<form method="POST" enctype="application/x-www-form-urlencoded" action="authorize">
- 添加行 <AZ-INJECT-HIDDEN-INPUT-FIELDS/>。 此行是一个占位符,将 API Connect 替换为完成 OAuth 流程所需的输入字段。
- 使用以下代码创建两个按钮,以便用户可以授予或拒绝许可权。 编辑文本以满足您的首选项。
<button class="cancel" type="submit" name="approve" value="false">No Thanks</button>
<button class="submit" type="submit" name="approve" value="true">Allow Access</button>
- 可选: 当自定义表单中的错误导致其无法正确显示给用户时,请显示一条错误消息。 使用标记 <AZ-INTERNAL-CUSTOM-FORM-ERROR/>;将自动生成消息文本。 您应在测试过程中检测到此类错误,以避免向用户显示此错误信息。
- 可选: 您可以在表单中添加从外部源加载内容的 HTML 元素,例如图片或 JavaScript。
例如,<script src="http://www.example.com/example.js"
/>
- 根据需要插入空格和额外元素。 完成第 1 至第 6 步后,将生成一个类似于以下示例的表单:
<html lang="en" xml:lang="en">
<head><title>Request for permission</title></head>
<body class="customconsent">
<div>
<div>
<form method="post" enctype="application/x-www-form-urlencoded" action="authorize">
<AZ-INJECT-HIDDEN-INPUT-FIELDS/>
<p>Greeting..</p><DISPLAY-RESOURCE-OWNER/>
<p>This app </p><OAUTH-APPLICATION-NAME/><p> would like to access your data.</p>
<div>
<button class="cancel" type="submit" name="approve" value="false">No Thanks</button>
<button class="submit" type="submit" name="approve" value="true">Allow Access</button>
</div>
</form>
</div>
<AZ-INTERNAL-CUSTOM-FORM-ERROR/>
</div>
</body>
</html>
- 在您选择的 URL 中提供您的表单。
- 如果您尚未这样做,请配置本机 OAuth 提供者以使用定制 HTML 表单进行授权,确保用户安全性。 提供 URL 作为您的表单可用的端点。