RESTful-Webservices sichern

Definieren Sie Rollen, Berechtigungen und OAuth-Clients, um sicherzustellen, dass Authentifizierung und Autorisierung für den Zugriff auf RESTful-Webservices erforderlich sind.

Um einen RESTful-Webservice zu schützen, müssen Sie:

  • Rolle erstellen

  • Erstellen Sie eine Berechtigung, indem Sie die Rolle und die Module oder Ressourcen zum Schutz auswählen

Um den Zugriff auf einen geschützten RESTful-Service mit dem OAUTH2-Workflow zu aktivieren, erstellen Sie einen OAuth-Client mit der Rolle und Berechtigung, die zum Schutz des RESTful-Service erstellt wurde.

In den folgenden Abschnitten wird beschrieben, wie Rollen, Berechtigungen und OAuth-Clients erstellt werden:

Rollen verwalten

Sie können Rollen für RESTful Services auf der Seite "Rollen" erstellen, bearbeiten und löschen.

Um zur Seite "Rollen" zu navigieren, klicken Sie auf der Seite "REST-Überblick" unter "Objekte" auf Rollen, oder wählen Sie im Menü im Header die Option Sicherheit und dann Rollen aus.

Folgende Aktionen sind im Kontextmenü verfügbar:

Rollen erstellen

Rollen mit einem bestimmten Namen erstellen Nachdem die Rolle erstellt wurde, können Sie sie mit einer Berechtigung verknüpfen.

  1. Klicken Sie auf der Seite "Rollen" auf Rolle erstellen.
  2. Geben Sie den Namen der zu erstellenden Rolle im Feld "Rollenname" ein.

    Code anzeigen: Wählen Sie diese Option aus, um das PL/SQL-Codeäquivalent des Schiebereglers "Rolle erstellen" anzuzeigen. Sie können diesen PL/SQL-Code in das Arbeitsblatt kopieren und ausführen, um dieselbe Aktion auszuführen, die ausgeführt wird, wenn Sie im Schieberegler "Rolle erstellen" auf Erstellen klicken.

  3. Klicken Sie auf Create.

    Die neue zugewiesene Rolle wird auf der Seite "Rollen" angezeigt.

Rollen bearbeiten

In diesem Abschnitt wird beschrieben, wie Sie eine Rolle bearbeiten.

  1. Klicken Sie auf der Seite "Rollen" für die jeweilige Rolle auf Aktionen Kontextmenü, und wählen Sie Bearbeiten aus.
  2. Geben Sie die erforderlichen Änderungen ein, und klicken Sie auf Speichern.

    Eine Beschreibung der Felder finden Sie unter Erstellen einer Rolle.

Rollen löschen

In diesem Abschnitt wird beschrieben, wie Sie eine Rolle löschen.

  1. Klicken Sie auf der Seite "Rollen" für die jeweilige Rolle auf Aktionen Kontextmenü, und wählen Sie Löschen aus.

    Sie müssen den Vorgang bestätigen.

  2. Klicken Sie auf Ja, um die Geschäftsstruktur zu löschen.

Zugewiesene Berechtigungen anzeigen

In diesem Abschnitt wird beschrieben, wie Sie die einer Rolle zugeordneten Berechtigungen anzeigen.

Klicken Sie auf der Seite "Rollen" für die jeweilige Rolle auf Aktionen Kontextmenü, und wählen Sie Details aus. Die der Rolle zugewiesenen Berechtigungen werden angezeigt.

Berechtigungen verwalten

Sie können Berechtigungen für RESTful Services auf der Seite "Berechtigungen" erstellen, bearbeiten und löschen.

Eine Berechtigung definiert das Rollenset, über das mindestens einer authentifizierte Benutzer verfügen muss, um auf einen RESTful-Service zuzugreifen, der durch eine Berechtigung geschützt ist.

Um zur Seite "Berechtigungen" zu navigieren, klicken Sie auf der Seite "REST-Überblick" unter "Objekte" auf Berechtigungen, oder wählen Sie im Menü im Header die Option Sicherheit und dann Berechtigungen aus.

Die in der Kartenansicht standardmäßig angezeigten Berechtigungsattribute werden in der folgenden Abbildung dargestellt.

Folgende Aktionen sind im Kontextmenü verfügbar:

Berechtigungen erstellen

In diesem Abschnitt wird beschrieben, wie Sie eine Berechtigung erstellen.

  1. Klicken Sie auf der Seite "Berechtigungen" auf Berechtigung erstellen.
  2. Geben Sie die folgenden Felder ein. Die Felder mit einem Sternchen (*) sind Pflichtfelder:
    • Label: Geben Sie den Namen der Berechtigung so ein, dass sie leicht verständlich ist.
    • Name: Geben Sie einen eindeutigen Namen für die Berechtigung ein.
    • Description: Enter a brief description of the purpose of the privilege.
    • Kommentare: Geben Sie Kommentare ein.
    • Rollen: Geben Sie mindestens eine Rolle ein, die der Berechtigung zugewiesen ist.
    • Geschützte Module: Wählen Sie die zu schützenden Module aus.
    • Geschützte Ressourcen: Verwenden Sie anstelle von geschützten Modulen die Registerkarte "Ressourcen schützen", um Sicherheit basierend auf einem URI-Muster anzuwenden.

    Code anzeigen: Wählen Sie diese Option aus, um das PL/SQL-Codeäquivalent des Schiebereglers "Berechtigung erstellen" anzuzeigen. Sie können diesen PL/SQL-Code in das Arbeitsblatt kopieren und ausführen, um dieselbe Aktion auszuführen, die beim Klicken auf Erstellen im Schieberegler "Berechtigung erstellen" ausgeführt wird.

  3. Klicken Sie auf Create.

    Die neue Berechtigung wird auf der Seite "Berechtigungen" angezeigt.

Berechtigungen bearbeiten

In diesem Abschnitt wird beschrieben, wie Sie eine Berechtigung bearbeiten.

  1. Klicken Sie auf der Seite "Berechtigungen" für die spezifische Berechtigung auf Aktionen Kontextmenü, und wählen Sie Bearbeiten aus.
  2. Führen Sie die erforderlichen Änderungen aus, und klicken Sie auf Speichern.

    Eine Beschreibung der Felder finden Sie unter Berechtigungen erstellen.

Berechtigungen löschen

In diesem Abschnitt wird beschrieben, wie Sie eine Berechtigung löschen.

  1. Klicken Sie auf der Seite "Berechtigungen" für die spezifische Berechtigung auf Aktionen Kontextmenü, und wählen Sie Löschen aus.
  2. Sie werden aufgefordert, den Vorgang zu bestätigen. Klicken Sie auf Ja.

OAuth-Clients verwaltet

Mit der OAuth 2.0-basierten Authentifizierung können Sie sicherstellen, dass nur bestimmte Benutzer oder Clients auf Ihre RESTful-Webservices zugreifen.

OAuth 2.0 ist ein Standard-Internetprotokoll, das Datenflüsse definiert, um bedingten und eingeschränkten Zugriff auf eine RESTful API bereitzustellen. Weitere Informationen finden Sie unter OAuth-basierte Authentifizierung.

Auf der Seite "OAuth-Clients" können Sie OAuth-Clients erstellen, bearbeiten und löschen.

Um zur Seite "OAuth-Clients" zu navigieren, klicken Sie auf der Seite "REST-Überblick" unter "Objekte" auf Clients, oder wählen Sie im Menü im Header die Option Sicherheit und dann OAuth-Client aus.

Die OAuth-Clientattribute, die standardmäßig in der Kartenansicht angezeigt werden, werden in der folgenden Abbildung dargestellt.

Informationen zum Erstellen eines OAuth-Clients finden Sie unter OAuth-Client erstellen.

Folgende Aktionen sind im Kontextmenü verfügbar:

OAuth-Client erstellen

Erstellt den OAuth-Client und erteilt die erforderlichen Rollen und Berechtigungen.

  1. Wählen Sie auf der Seite "OAuth-Clients" OAuth-Client erstellen aus.
  2. Geben Sie die folgenden Felder ein. Die Felder mit einem Sternchen (*) sind Pflichtfelder:

    Registerkarte Clientdefinition

    • Berechtigungstyp: Wählen Sie den Autorisierungserteilungstyp aus. Die Optionen sind Client_Cred, Auth Code oder Implicit.

      Weitere Informationen zu diesen Berechtigungstypen finden Sie unter OAuth-Abläufe im Oracle REST Data Services Developer's Guide.

    • Name: Name des Clients.
    • Beschreibung: Beschreibung des Zwecks des Clients.
    • Umleitungs-URI: Geben Sie die vom Client gesteuerte URI ein, an die eine Umleitung mit einem OAuth-Zugriffstoken oder einem Fehler gesendet wird.
    • Support-URI: Geben Sie die URI ein, über die Endbenutzer den Client kontaktieren können, um Unterstützung zu erhalten. Beispiel: http:// www.myclientdomain.com/support/
    • Support-E-Mail: Geben Sie die E-Mail-Adresse ein, über die Endbenutzer den Client für Support kontaktieren können.
    • Logo: Laden Sie Ihr Logo im JPG-, BMP- oder SVG-Dateiformat hoch. Stellen Sie sicher, dass das Logo weniger als 100 KB groß ist.
    • Rollen: Wählen Sie Rollen aus, die erteilt werden sollen.
    • Zulässige Ursprünge: Fügen Sie die Liste der URL-Präfixe hinzu.
    • Berechtigungen: Wählen Sie Berechtigungen aus, auf die der Client zugreifen möchte.

    Code anzeigen: Wählen Sie diese Option aus, um das PL/SQL-Codeäquivalent des Bereichs "OAuth-Client erstellen" anzuzeigen. Sie können diesen PL/SQL-Code in das Arbeitsblatt kopieren und ausführen, um dieselbe Aktion auszuführen, die ausgeführt wird, wenn Sie im Bereich "OAuth-Client erstellen" auf Erstellen klicken.

  3. Klicken Sie auf Create.

    Der registrierte OAuth-Client wird auf der Seite "OAuth-Clients" angezeigt.

    Eine Vorschau des Client Secrets wird angezeigt. Secrets sind nur für die Berechtigungstypen "Clientzugangsdaten" und "OAuth-Code" anwendbar. Kopieren Sie den Secret-Wert, da dies die einzige Instanz ist, wenn er angezeigt wird. Wenn Sie das Client Secret vergessen, können Sie es mit der Aktion "Secret rotieren" ändern. Siehe Secrets verwalten.

    Der Wert der Client-ID stellt die Secret-Zugangsdaten für den OAuth-Client dar. Klicken Sie auf Anzeigen/Ausblenden Symbol anzeigen/ausblenden, um die Werte anzuzeigen.

    Testen Sie den gesicherten REST-Serviceendpunkt mit einem REST-Client oder dem cURL-Befehlszeilentool.

OAuth-Client bearbeiten

In diesem Abschnitt wird beschrieben, wie Sie einen OAuth-Client bearbeiten.

  1. Klicken Sie auf der Seite "OAuth-Clients" für den jeweiligen Client auf Aktionen Kontextmenü, und wählen Sie Bearbeiten aus.
  2. Bearbeiten Sie die erforderlichen Felder, und klicken Sie auf Speichern.

    Eine Beschreibung der Felder finden Sie unter OAuth-Client erstellen.

OAuth-Client löschen

In diesem Abschnitt wird beschrieben, wie Sie einen OAuth-Client löschen.

  1. Klicken Sie auf der Seite "OAuth-Clients" für den jeweiligen Client auf Aktionen Kontextmenü, und wählen Sie Löschen aus.
  2. Sie werden aufgefordert, den Vorgang zu bestätigen. Klicken Sie auf Ja.

OAuth-Client exportieren

In diesem Abschnitt wird beschrieben, wie Sie einen OAuth-Client exportieren.

  1. Klicken Sie auf der Seite "OAuth-Clients" für den jeweiligen Client auf Aktionen Kontextmenü, und wählen Sie Exportieren aus.
  2. Klicken Sie im Bereich "OAuth-Client" auf das Symbol Kopieren oder Herunterladen, um die OAuth-Clientinformationen zu kopieren oder herunterzuladen.

Secrets verwalten

Nachdem ein Client Secret für einen OAuth-Client generiert wurde, können Sie das Secret bei Bedarf rotieren oder entziehen. Die Optionen "Rotieren" und "Entziehen" sind im Kontextmenü des jeweiligen OAuth-Clients verfügbar.

Hinweis:

Da die PL/SQL-Packages OAUTH und OAUTH_ADMIN veraltet sind (siehe ORDS_SECURITY PL/SQL-Packagereferenz), ändert sich der Erstellungsprozess des OAUTH-Client-Secrets für die Berechtigungstypen "Clientzugangsdaten" und "Authentifizierungscode".

Bei OAuth-Clients, die mit einem nicht verschlüsselten Secret erstellt wurden, wird das Label Legacy auf der Karte angezeigt.

Client Secret rotieren

Entfernt das vorhandene Secret und erstellt ein neues. Dies ist nützlich, wenn Sie sich nicht an den vorhandenen Client Secret-Wert erinnern können.

  • Wenn ein Client Secret für den OAuth-Client vorhanden ist, klicken Sie auf Rotieren, um das vorhandene Secret zu entfernen und ein neues Client Secret zu generieren.

  • Wenn ein Client Secret widerrufen wird und kein Secret-Wert zugewiesen ist, klicken Sie auf Registrieren, um ein Client Secret für den OAuth-Client zu generieren.

Client Secret entziehen

Entfernt das vorhandene Client Secret.

Wählen Sie Sessions widerrufen aus, um alle vorhandenen Clientsessions zu entfernen.

Beispiele

Dieser Abschnitt enthält einige Beispiele zum Erstellen eines OAuth-Clients mit verschiedenen Berechtigungstypen.

OAuth-Client mit dem Berechtigungstyp "Clientzugangsdaten" erstellen

In diesem Abschnitt wird beschrieben, wie Sie einen OAuth-Client mit dem Berechtigungstyp "Clientzugangsdaten" erstellen.

Erstellen Sie einen OAuth-Client für das erstellte Modul "Beispiel" in Beispiel: Datensatz mit einem POST-Handler einfügen. Der Endpunkt für den RESTful-Service ist http://xyz.us.comp.com:1234/ords/pdbdba/example/emp/.

Voraussetzungen

Erstellen Sie eine Rolle mit dem Namen "HR-Administrator". Siehe Rollen erstellen

Erstellen Sie eine Berechtigung namens Example.HR. Siehe Berechtigungen erstellen

  1. Klicken Sie auf der Seite "OAuth-Clients" auf OAuth-Client erstellen.
  2. Geben Sie die folgenden Felder ein:
    • Wählen Sie im Feld "Berechtigungstyp" die Option CLIENT_CRED.
    • Geben Sie Name, Beschreibung, Umleitungs-URI, Support-URI und Support-E-Mail für Ihren OAuth-Client ein.

    • Fügen Sie auf der Registerkarte "Rollen" die erstellte Rolle hinzu (HR-Administrator).

    • Fügen Sie auf der Registerkarte "Berechtigungen" die erstellte Berechtigung hinzu (Beispiel.HR).

    • Klicken Sie auf Create.

    Die neue OAuth-Clientkarte wird auf der Seite "OAuth-Clients" angezeigt.

  3. Testen Sie den Serviceendpunkt mit cURL ohne OAuth-Zugangsdaten.
    curl --location --request POST --header "Content-Type: application/json" 
    --data '{"DEPTNO": 55, "DEPTNAME": "Sales", "DEPTLOC": "Australia" }' 
    'http://xyz.us.comp.com:1234/ords/pdbdba/example/emp/'

    Es wird ein Fehler angezeigt.

  4. Testen Sie den Endpunkt mit OAuth-Zugangsdaten:
    1. Um ein Zugriffstoken abzurufen, wählen Sie im Kontextmenü der OAuth-Clientkarte die Option Bearertoken abrufen aus.

      Das Dialogfeld "OAuth-Token" wird angezeigt. Mit In Zwischenablage kopieren Symbol zum Kopieren in die Zwischenablage können Sie das Token kopieren.

    2. Verwenden Sie in cURL das Bearer-Zugriffstoken in der folgenden Anweisung, um die Ressource anzufordern:

      curl -H "Content-Type: application/json" -H "Authorization: Bearer AMccwlnt99gm9kxDs_w1DA" --location --request POST --data 
      '{"DEPTNO": 55, "DEPTNAME": "Sales", "DEPTLOC": "Australia"}' 'http://xyz.us.comp.com:1234/ords/pdbdba/example/emp/'

    Ausgabe:

    {"deptno":55,"dname":"Sales","loc":"Australia","links":[{"rel":"collection",
    "href":"http://xyz.us.comp.com:1234/ords/pdbdba/example/emp/"}]}
  5. Auf der Seite "SQL" können Sie den neuen Record, der in die Tabelle DEPT eingefügt wurde, mit der folgenden Anweisung prüfen:
    SELECT * FROM DEPT;

OAuth-Client mit dem Autorisierungscodevergabetyp erstellen

In diesem Abschnitt wird beschrieben, wie Sie einen OAuth-Client mit dem Berechtigungstyp "Authentifizierungscode" erstellen.

  1. Klicken Sie auf der Seite "OAuth-Clients" auf OAuth-Client erstellen.
  2. Geben Sie die folgenden Felder ein:
    • Wählen Sie im Feld Berechtigungstyp die Option Authentifizierungscode aus.
    • Geben Sie Name, Beschreibung, Umleitungs-URI, Support-URI und Support-E-Mail für Ihren OAuth-Client ein.

    • Fügen Sie auf der Registerkarte Rollen die relevanten Rollen hinzu.

    • Fügen Sie in der Registerkarte Berechtigungen die entsprechenden Berechtigungen hinzu.

    • Klicken Sie auf Create.

    Die neue OAuth-Clientkarte wird auf der Seite "OAuth-Clients" angezeigt.

  3. Klicken Sie auf der OAuth-Clientkarte auf das Symbol Aktionen, und wählen Sie Autorisierungsdetails aus.
    Der eindeutige Wert und die Autorisierungs-URI werden angezeigt.
  4. Klicken Sie im Feld "Autorisierungs-URI" auf das Symbol In neuer Registerkarte öffnen. Ein neues Fenster mit einer Fehlermeldung Nicht autorisiert und einem Anmeldelink wird angezeigt.
  5. Klicken Sie auf Anmelden, und geben Sie Ihre Zugangsdaten erneut ein.
  6. Sie werden aufgefordert, die Anforderung für den Zugriff auf die geschützte URI zu genehmigen. Klicken Sie auf Genehmigen.
    Genehmigungsanforderungsbenachrichtigung