Zulässigen Vorgang onBehalfOf verwenden
Mit dem zulässigen onBehalfOf-Vorgang können Sie sicherstellen, dass Zugriffsberechtigungen allein aus den Benutzerberechtigungen generiert werden können. So kann eine Clientanwendung auf Endpunkte zugreifen, auf die der Benutzer Zugriff hat, selbst wenn die Clientanwendung selbst keinen Zugriff hätte.
Wenn eine autorisierte Clientanwendung Funktionen implementiert, die für den Zugriff auf Identitätsdomainendpunkte erforderlich sind, erhält dieser Client die erforderlichen Berechtigungen dafür. Ein Webanwendungsclient implementiert hingegen Funktionen, bei denen die Clientanwendung mit den vom angemeldeten Benutzer erworbenen Berechtigungen und Geltungsbereichen auf Endpunkte zugreifen muss. Bei dem Standardautorisierungsverhalten von Identitätsdomains muss dieser Client weiterhin über das vollständige Berechtigungsset verfügen, das für den Zugriff auf diese Endpunkte erforderlich ist, ohne die dem Benutzer erteilten Berechtigungen zu berücksichtigen. Der zulässige Vorgang onBehalfOf bietet einem Administrator eine Möglichkeit, anzugeben, dass die Berechtigungen des Benutzers allein anstelle einer Schnittmenge der Geltungsbereiche des Benutzers (falls ein Benutzer vorhanden ist) und der Geltungsbereiche des Clients verwendet werden sollen.
Öffentliche oder CLI-Anwendungen verfügen über sehr begrenzte Berechtigungen oder keine Berechtigungen für den Zugriff auf Endpunkte. Diese Clienttypen basieren auf dem Benutzer, der auf die Anwendung zugreift, um festzulegen, welche Rechte die Anwendung hat. Wenn ein Benutzer auf eine öffentliche Anwendung zugreift und dem Benutzer ein Zugriffstoken erteilt wurde, das ausschließlich aus den Berechtigungen des Benutzers erstellt wurde, kann dieser Benutzer auf die Endpunkte zugreifen, solange der Benutzer autorisiert ist.
Mit dem zulässigen Vorgang onBehalfOf können Sie ein solches Zugriffstoken für die Clientanwendung OAuth generieren. Bei der Berechnung der spezifischen Geltungsbereiche der Identitätsdomain (Bereiche, die mit "urn:opc:idm:" beginnen), die im Zugriffstoken festgelegt werden sollen, ignorieren Identitätsdomains die Berechtigungen des Clients und verwenden einen Geltungsbereich, der kleiner/gleich dem Geltungsbereich ist, der dem autorisierten Benutzer ursprünglich erteilt wurde. Daher werden nur die Berechtigungen des Benutzers (Admin-Rollen, Gruppen usw.) in Verbindung mit den angeforderten Geltungsbereichen verwendet, um den Zugriff zu bestimmen. Wenn der angeforderte Geltungsbereich "urn:opc:idm:_myscopes_" verwendet wird, werden alle Geltungsbereiche zurückgegeben, die dem Benutzer erteilt wurden.
Zulässiger Vorgang onBehalfOf aktivieren
Verwenden Sie die REST-API für Identitätsdomains, um eine OAuth-Anwendung zu erstellen oder zu aktualisieren, und geben Sie onBehalfOfUser als zulässigen Vorgang an. Wenn Sie eine OAuth-Anwendung mit der Identitätsdomain-UI erstellen, aktivieren Sie auf der Seite Autorisierung das Kontrollkästchen für den zulässigen Vorgang Im Namen von. Wenn Benutzer auf die Anwendung zugreifen, können sie verschiedene Funktionen basierend auf ihren Berechtigungen ausführen.
Beispiel
Das Beispiel zeigt, wie Sie eine Anwendung erstellen und den zulässigen Vorgang onBehalfOfUser angeben (im Beispiel fett).
cat</tmp/OAuthClientApp.json << __EOF__
{
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:App"
],
"displayName": "publicClientApp",
"isOAuthClient": true,
"description": "public client",
"active": true,
"clientType": "public",
"basedOnTemplate": {
"value": "CustomBrowserMobileTemplateId"
},
"redirectUris": [
"http://example.com:9090/demoapp/return",
"http://example.com:9090/IDCSPlayground"
],
"logoutUri": "http://example.com:9090/demoapp/logout.jsp",
"postLogoutRedirectUris": ["http://example.com:9090/demoapp/logout.jsp"],
"allowedScopes": [
{
"fqs": "http://example.com/photos"
},
{
"fqs": "http://example.com/presentations"
},
{
"fqs": "http://example.com/documents"
}
],
"allowedOperations": [
"onBehalfOfUser" ],
"allowedGrants": [
"authorization_code",
"implicit"
]
}
__EOF__
curl -X POST
-H "Content-type: application/json"
-H "Authorization: Bearer <access token value>"
--data @/tmp/OAuthClientApp.json http://<domainURL>/admin/v1/Apps