Zulässigen Vorgang onBehalfOf verwenden

Der zulässige Vorgang onBehalfOf bietet eine Möglichkeit, sicherzustellen, dass Zugriffsberechtigungen allein aus den Benutzerberechtigungen generiert werden können, sodass eine Clientanwendung auf Endpunkte zugreifen kann, auf die der Benutzer Zugriff hat, auch wenn die Clientanwendung selbst normalerweise keinen Zugriff hätte.

Wenn eine autorisierte Clientanwendung Funktionen implementiert, die den Zugriff auf Identitätsdomains-Endpunkte erfordern, erhält dieser Client die erforderlichen Berechtigungen. Ein Webanwendungsclient implementiert hingegen Funktionen, bei denen die Clientanwendung mit den vom angemeldeten Benutzer erworbenen Berechtigungen und Geltungsbereichen auf Endpunkte zugreifen muss. Beim Standardautorisierungsverhalten von Identitätsdomains muss dieser Client weiterhin über die vollständigen Berechtigungen verfügen, die für den Zugriff auf diese Endpunkte erforderlich sind, ohne die Berechtigungen zu berücksichtigen, die dem Benutzer erteilt wurden. Mit dem zulässigen Vorgang onBehalfOf kann ein Administrator angeben, dass die Berechtigungen des Benutzers allein anstelle einer Schnittmenge der Geltungsbereiche des Benutzers (sofern ein Benutzer vorhanden ist) und der Clientgeltungsbereiche verwendet werden sollen.

Öffentliche oder CLI-Anwendungen haben sehr eingeschränkte Berechtigungen oder keine Berechtigungen für den Zugriff auf Endpunkte. Diese Clienttypen verlassen sich darauf, dass der Benutzer, der auf die Anwendung zugreift, die Rechte der Anwendung steuert. Wenn ein Benutzer auf eine öffentliche Anwendung zugreift und dem Benutzer ein Zugriffstoken erteilt wurde, das allein 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. Wenn Identitätsdomains bestimmte Geltungsbereiche (Geltungsbereiche, die mit "urn:opc:idm:" beginnen) berechnen, die im Zugriffstoken festgelegt werden, ignorieren Identitätsdomains die Berechtigungen des Clients und verwenden einen Geltungsbereich, der kleiner oder gleich dem Geltungsbereich ist, der ursprünglich dem autorisierten Benutzer 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 werden.

Zulässigen Vorgang onBehalfOf aktivieren

Mit der REST-API für Identitätsdomains können Sie eine OAuth-Anwendung erstellen oder aktualisieren. Geben Sie onBehalfOfUser als zulässigen Vorgang an. Wenn Sie eine OAuth-Anwendung mit der Identitätsdomains-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 basierend auf ihren Berechtigungen verschiedene Funktionen ausführen.

Beispiel

Das Beispiel zeigt, wie Sie eine Anwendung erstellen und den zulässigen Vorgang onBehalfOfUser angeben (im Beispiel fett formatiert).

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