Formularschablone für Einwilligungserklärung

Der OAuth-Berechtigungsserver stellt eine Schablone bereit, mit der die Einwilligung des Benutzers eingeholt wird, der darüber entscheiden muss, welche OAuth-Clients für den Zugriff auf die geschützte Ressource in gegebenen Bereichen berechtigt sind. Die Berechtigungsanforderung vom OAuth-Client zeigt eine Liste mit angeforderten Bereichen in der Schablone.

WebSphere Application Server ermöglicht die Verwendung einer statischen HTML-Seite oder einer dynamischen Webseite als Schablone für das Formular mit der Einwilligungserklärung. In beiden Fällen muss die Schablone als ungeschützte Webressource bereitgestellt werden. Die Formularabruffunktion in der Integration von WebSphere Application Server führt keine Authentifizierung durch, wenn sie diesen Schablonen-URI aufruft.

Der OAuth-Provider von WebSphere Application Server stellt ein einfaches Formular mit einer Einwilligungserklärung bereit und ermöglicht die Anpassung mit der Variablen oauthFormData.

Zum Anpassen des Formulars mit der Einwilligungserklärung bearbeiten Sie die Variable oauthFormData mittels JavaScript. Folgende Variablen sind in den Formulardaten enthalten:
  • authorizationUrl - der Berechtigungs-URL, an dem das Formular übergeben wird
  • clientDisplayName - der Anzeigename des Clients
  • nonce - eine generierte Zufallszahl zur Verhinderung von CSRF (Cross-Site Request Forgery, Website-übergreifende Anforderungsfälschung)
  • client_id - siehe Spezifikation OAuth 2.0
  • response_type - siehe Spezifikation OAuth 2.0
  • redirect_uri - siehe Spezifikation OAuth 2.0
  • state_type - siehe Spezifikation OAuth 2.0
  • scope_type - siehe Spezifikation OAuth 2.0

Der Entwickler einer Formularschablone ist verantwortlich dafür, die Schablone mit den in der Variablen oauthFormData mit Javascript definierten Angaben bereitzustellen. Der Entwickler muss den Bereichswert als einen Wert interpretieren, der für den Benutzer aussagekräftig ist. Wenn ein Benutzer die Anforderung berechtigt, kann der Entwickler die Methode submitForm(oauthFormData) zur Ausführung der Berechtigung aufrufen. Die Methode submitForm wird standardmäßig bereitgestellt. Wenn die Entwickler mit dem Protokoll OAuth2 vertraut sind, können sie jedoch auch ihre eigene Funktion implementieren, um die OAuth-Berechtigungsanforderung zu übergeben.

Wenn eine Globalisierung gewünscht wird, können Sie eine dynamische Seite verwenden, die entsprechend dem Accept-Language-Header in der Anforderung globalisierten Inhalt bereitstellt. Beim Abrufen der Schablone wird der Accept-Language-Header ebenfalls weitergeleitet, und der Entwickler der Schablone muss entscheiden, welcher Inhalt entsprechend der bevorzugten Sprache zurückgegeben werden soll.
Fehler vermeiden Fehler vermeiden: Die Variable clientDisplayName kann in HTML nicht mit Escapezeichen codiert werden. Der Entwickler der Schablone muss den Wert bereinigen, da dieser Wert während der Clientregistrierung vom Benutzer eingegeben wird.gotcha
Wenn für einen bestimmten OAuth20-Provider eine angepasste Formularschablonenseite mit der Einwilligungserklärung verwendet werden soll, müssen Sie die Konfigurationsdatei des Service-Providers aktualisieren. In der Providerkonfiguration müssen Sie den Parameter oauth20.authorization.form.template aktualisiert werden, indem Sie den URL der Schablone als Wert hinzufügen. Das folgende Beispiel zeigt einen Beispielschabloneneintrag in der Providerkonfiguration:
<parameter name="oauth20.authorization.form.template" type="cc" customizable="true">
  <value>https://acme.com:9043/oath20/template.html</value>
</parameter>
Nachfolgend ist ein Beispielformular für eine Einwilligungserklärung dargestellt:
<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);
		// Clientnamen angeben
		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>Möchten Sie Client
    <span id=client_name style="font-weight:bold">xxxxxxx</span> den Zugriff auf Ihre Daten erlauben?</div>
  <div id="oauth_scope"></div>
  <div>
    <input type="button" value="Yes" onclick="javascript:submitForm(oauthFormData);"/>
    <input type="button" value="No, Thanks"/>
  </div>
</body>
</html>

Symbol, das den Typ des Artikels anzeigt. Konzeptartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_oauthcustomconsent
Dateiname:cwbs_oauthcustomconsent.html