针对用户安全性创建定制 HTML 授权

可以在 OAuth 的授权阶段期间针对用户安全性创建定制 HTML 表单。

准备工作

在使用隐式、访问代码或资源所有者密码授权类型时,本机 OAuth 提供者配置包括用户授权。 您可以选择授权应用程序用户的方式,其中一个选项是 “自定义 HTML 表单 ”。 本主题描述如何针对授权创建定制 HTML 表单。

关于本任务

在三种 OAuth 授权模式(隐式授权流、资源所有者密码流和访问(授权)码流)中,用户通过授权表单授予应用程序访问其数据的权限。 您可以提供定制表单或缺省表单。 您的定制表单必须满足特定需求。
重要提示: IBM® API Connect 用于将信息注入表单的字段名称区分大小写。

过程

要为本机 OAuth 提供者创建定制授权表单,请完成以下步骤:
  1. 创建格式正确的 XHTML 文档。 这由 解析 API Connect 以插入隐藏字段。
  2. 对于 XHTML 表单,请将方法设置为 POST,将编码类型设置为 application/x-www-form-urlencoded,并将操作设置为 authorize。 添加您需要的任何其他参数。
    例如,
    <form method="POST" enctype="application/x-www-form-urlencoded" action="authorize">
  3. 添加行 <AZ-INJECT-HIDDEN-INPUT-FIELDS/>。 此行是一个占位符,将 API Connect 替换为完成 OAuth 流程所需的输入字段。
  4. 使用以下代码创建两个按钮,以便用户可以授予或拒绝许可权。 编辑文本以满足您的首选项。
    <button class="cancel" type="submit" name="approve" value="false">No Thanks</button>
    <button class="submit" type="submit" name="approve" value="true">Allow Access</button>
  5. 可选: 当自定义表单中的错误导致其无法正确显示给用户时,请显示一条错误消息。 使用标记 <AZ-INTERNAL-CUSTOM-FORM-ERROR/>;将自动生成消息文本。 您应在测试过程中检测到此类错误,以避免向用户显示此错误信息。
  6. 可选: 您可以在表单中添加从外部源加载内容的 HTML 元素,例如图片或 JavaScript。
    例如,<script src="http://www.example.com/example.js" />
  7. 根据需要插入空格和额外元素。 完成 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>
  8. 在您选择的 URL 中提供您的表单。
  9. 如果您尚未这样做,请配置本机 OAuth 提供者以使用定制 HTML 表单进行授权,确保用户安全性。 提供 URL 作为您的表单可用的端点。