Plantilla de formulario de consentimiento personalizado
El servidor de autorización OAuth proporciona una plantilla para adquirir información de consentimiento del usuario sobre qué clientes de OAuth están autorizados para acceder al recurso protegido en ámbitos determinados. La solicitud de autorización del cliente de OAuth muestra una lista de ámbitos solicitados en la plantilla.
WebSphere Application Server permite que la plantilla de formulario de consentimiento sea una página HTML estática o una página web dinámica. En ambos casos, la plantilla debe proporcionarse como un recurso web desprotegido. El recuperador del formulario en la integración de WebSphere Application Server no realiza ninguna autenticación cuando accede a este URL de plantilla.
El proveedor OAuth de WebSphere Application Server incluye un formulario de consentimiento de ejemplo simple y permite la personalización utilizando la variable oauthFormData.
- authorizationUrl - el URL de autorización donde se está enviando el formulario
- clientDisplayName - el nombre de visualización del cliente
- nonce - número generado aleatoriamente para evitar la falsificación de solicitudes entre distintos sitios (CSRF, por sus siglas en inglés)
- client_id - consulte la especificación OAuth 2.0
- response_type - consulte la especificación OAuth 2.0
- redirect_uri - consulte la especificación OAuth 2.0
- state - consulte la especificación OAuth 2.0
- scope - consulte la especificación OAuth 2.0
El desarrollador de una plantilla de formulario es responsable de representar la plantilla con el contenido de la variable oauthFormData con Javascript. El desarrollador debe interpretar el valor del ámbito para que sea un valor significativo para un usuario. Cuando un usuario autoriza la solicitud, el desarrollador puede llamar al método submitForm(oauthFormData) para realizar la autorización. El método submitForm se proporciona de forma predeterminada. Sin embargo, si los desarrolladores están familiarizados con el protocolo OAuth2, pueden implementar su propia función para enviar la solicitud de autorización OAuth.

<parameter name="oauth20.authorization.form.template" type="cc" customizable="true">
<value>https://acme.com:9043/oath20/template.html</value>
</parameter>
<parameter name="oauth20.authorization.loginURL" type="cc" customizable="true">
<value>https://acme.com:9043/oath20/login.jsp</value>
</parameter>
function escapeHTML(str) {
var ele = document.createElement("div");
ele.innerText = ele.textContent = str;
return ele.innerHTML;
}
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>OAuth authorization form</title>
<script language="javascript">
function init() {
var scope = oauthFormData.scope;
var scopeEle = document.getElementById("oauth_scope");
var ul = document.createElement("ul");
if(scope) {
for(var i=0; i< scope.length; i++) {
var n = document.createElement("li");
n.innerHTML = scope[i];
ul.appendChild(n);
}
}
scopeEle.appendChild(ul);
// establecer nombre de cliente
var clientEle = document.getElementById("client_name");
clientEle.innerHTML = escapeHTML(oauthFormData.clientDisplayName);
}
function escapeHTML(str) {
var ele = document.createElement("div");
ele.innerText = ele.textContent = str;
return ele.innerHTML;
}
</script>
</head>
<body onload="init()">
<div>¿Desea permitir que el cliente
<span id=client_name style="font-weight:bold">xxxxxxx</span> acceda a sus datos?</div>
<div id="oauth_scope"></div>
<div>
<input type="button" value="Sí" onclick="javascript:submitForm(oauthFormData);"/>
<input type="button" value="No, gracias"/>
</div>
</body>
</html>