Rollenbasierte IAM-Verbindungen zur Zugriffskontrolle

Dieses Thema enthält Anweisungen für das IT-Management zum Vorbereiten einer domainintegrierten Anwendung, die rollenbasierte Zugriffskontrolle mit benutzerdefinierten JSON Web Token-(JWT-)Ansprüchen aktiviert. Dadurch können sich Domainbenutzer mit ihren Domainzugangsdaten anstelle des Schemakennworts bei der Datenbank anmelden.

In diesem Kapitel können sich Domainbenutzer mit ihren Domainzugangsdaten bei der Datenbank authentifizieren, anstatt das schemaspezifische Kennwort zu verwenden.

Um eine integrierte Domainanwendung zu erstellen, die rollenbasierte Zugriffskontrolle mit benutzerdefinierten JWT-Ansprüchen ermöglicht, müssen Sie:
Hinweis

In diesem Kapitel wird die Domain Default verwendet. Sie können jedoch eine beliebige Domain Ihrer Präferenz auswählen.

Benutzerdefinierte Attribute für Benutzer erstellen

Entityattribute sind Eigenschaften der Entity. Die Informationen zur Benutzerentität werden in Form von Attributen wie Vorname, Nachname, Benutzeranmeldung und Kennwort gespeichert. Sie können benutzerdefinierte Attribute mit OCI erstellen. Zunächst definieren wir ein benutzerdefiniertes Benutzerattribut, das dazu dient, die Rollen zu speichern, die jedem Benutzer in der Domain zugewiesen sind.
  1. Navigieren Sie zu: IdentitätDomainsStandard. Klicken Sie auf die Registerkarte Schemaverwaltung, und wählen Sie Benutzerattribute aus.
  2. Klicken Sie unter Benutzerattribute auf Attribut hinzufügen.



  3. Geben Sie im Dialogfeld "Attribute hinzufügen" die folgenden Felder an:
    • Anzeigename: ORDS RBAC
    • Name:rbac_ords
    • Beschreibung:Rollenbasierte Zugriffskontrolle für ORDS
    • Datentyp: Zeichenfolgenarray

    Sie können den Standardstatus der übrigen Felder beibehalten.



    Klicken Sie auf Hinzufügen. Sie haben das benutzerdefinierte Attribut hinzugefügt.

  4. Suchen Sie nach dem neu hinzugefügten Attribut, indem Sie Benutzerdefiniert in das Suchfeld eingeben. Sie zeigen das Attribut ORDS RBAC in der Liste an.



    Klicken Sie auf Attribut bearbeiten.

  5. Kopieren Sie den Wert von FQN (Vollqualifizierter Name), und notieren Sie ihn.



    In diesem Beispiel ist FQN urn:ietf:params:scim:schemas:idcs:extension:custom:User:rbac_ords.

Benutzerdefinierte Rolle zuweisen

Nachdem Sie ein benutzerdefiniertes Benutzerattribut erstellt haben, können Sie in diesem Attributfeld benutzerdefinierte Rollen zuweisen.
  1. Navigieren Sie zu: IdentitätDomainsStandard. Klicken Sie auf die Registerkarte Benutzerverwaltung, und wählen Sie Ihren Benutzernamen aus der Liste der angezeigten Benutzer aus.



    Klicken Sie auf Benutzer bearbeiten. Scrollen Sie nach unten zum Feld Weitere Informationen, und geben Sie unter ORDS RBAC SQL Developer, SODA Developer ein.

    Weitere Informationen zu ORDS-Rollen finden Sie in diesem Kapitel unter Oracle REST Data Services-Benutzerrollen.



    Nachdem Sie die Rollen hinzugefügt haben, klicken Sie auf Änderungen speichern.

Domain erstellen Integrierte Anwendung

Wir werden eine integrierte Anwendung innerhalb der Domain entwickeln, die bei der Anmeldung ein JWT-Token ausgibt.

  1. Navigieren Sie zu: IdentitätDomainsStandard. Klicken Sie auf die Registerkarte Integrierte Anwendungen, und wählen Sie Anwendung hinzufügen aus.
  2. Klicken Sie auf Vertrauliche Anwendung, und wählen Sie Workflow starten aus.
  3. Geben Sie im Dialogfeld Vertrauliche Anwendung hinzufügen die folgenden Felder an:
    • Name: Geben Sie den Namen der vertraulichen Anwendung an. Beispiel: Spreadsheet-Addin RBAC.
    • Beschreibung: Geben Sie die Beschreibung an. Beispiel: Integrierte Anwendung für die rollenbasierte Zugriffskontrolle für das Tabellen-Add-in.



    Klicken Sie auf Weiterleiten.

    Die neu hinzugefügte Anwendungsseite Spreadsheet-Addin RBAC wird angezeigt.

  4. Klicken Sie auf der Seite Spreadsheet-Addin RBAC in der Registerkarte OAuth-Konfiguration bearbeiten auf OAuth-Konfiguration.



  5. Wählen Sie unter "Ressourcenserverkonfiguration" die Option Diese Anwendung jetzt als Ressourcenserver konfigurieren aus.
  6. Wählen Sie unter Anwendungs-APIs konfigurieren, die OAuth geschützt werden müssen die Option 3600 als Ablaufdatum des Zugriffstokens (Sekunden) aus.
  7. Geben Sie im Feld Primäre Zielgruppe ssaddin/ ein.
  8. Klicken Sie auf Geltungsbereiche hinzufügen, und fügen Sie rbac Geltungsbereich hinzu.



  9. Geben Sie unter Clientkonfiguration die folgenden Felder an:
    • Wählen Sie Diese Anwendung jetzt als Client konfigurieren aus.
    • Wählen Sie unter Zulässige Berechtigungstypen die Option Implizit aus.
    • Geben Sie den folgenden Wert in das Feld Umleitungs-URL ein: https://static.oracle.com/cdn/spreadsheet/red-4/redirector.html
    • Geben Sie den folgenden Wert in das Feld URL nach der Abmeldung ein: https://static.oracle.com/cdn/spreadsheet/red-4/redirector.html



    Klicken Sie auf Weiterleiten.
    Hinweis

    Stellen Sie sicher, dass Sie die Anwendung aktivieren.

Benutzerdefinierten Anspruch definieren

Um Benutzerrollen in das JWT einzuschließen, müssen wir das im ersten Abschnitt eingerichtete benutzerdefinierte Attribut mit einem benutzerdefinierten Anspruch dem JWT zuordnen.

Um dies zu erreichen, müssen wir eine zusätzliche temporäre integrierte Anwendung erstellen und den benutzerdefinierten Anspruch damit verknüpfen.

Integrierte Identitätsdomainanwendung erstellen

Sie erstellen eine zusätzliche temporäre integrierte Anwendung:
  1. Navigieren Sie zu: IdentitätDomainsStandard.
  2. Klicken Sie auf die Registerkarte Integrierte Anwendungen, und wählen Sie Anwendung hinzufügen aus.
  3. Klicken Sie auf Vertrauliche Anwendung, und wählen Sie Workflow starten aus.
    • Geben Sie den Namen der Anwendung ein: Integrierte Identitätsdomainanwendung
    • Beschreibung eingeben: Dies ist eine Domain integrierte Anwendung.

    Klicken Sie auf Weiterleiten.

  4. Wählen Sie auf der Seite Integrierte Anwendung der Identitätsdomain die Registerkarte OAuth-Konfiguration aus.
  5. Klicken Sie auf OAuth-Konfiguration bearbeiten in der Ressourcenserverkonfiguration. Geben Sie im Dialogfeld Konfiguration OAuth bearbeiten die folgenden Felder an:

Neuen Anspruch für das JWT-Token erstellen

Um ein neues Zugriffstoken für die Identitätsdomainadministratoranwendung abzurufen, sind CLIENT ID, CLIENT SECRET und DOMAIN URL erforderlich.

Wir haben die CLIENT ID und CLIENT SECRET aus der im vorherigen Schritt erstellten integrierten Domainanwendung.

Die DOMAIN URL finden Sie auf der Domainseite unter Domaininformationen.



Führen Sie den folgenden Befehl aus, und ersetzen Sie die Werte (CLIENT ID), (CLIENT SECRET) und (DOMAIN URL) durch Ihre Werte.

export ACCESS_TOKEN=$(curl -s -i -u"(CLIENT ID):(CLIENT SECRET)" -H "Content-Type: application/x-www-form-urlencoded;charset=UTF-8" --request POST (DOMAIN URL)/oauth2/v1/token -d
      "grant_type=client_credentials&scope=urn:opc:idm:__myscopes__" | tail -n +1 | grep -o
      '"access_token":"[^"]*' | cut -d'"' -f4)
In diesem Beispiel verwenden Sie die folgenden Werte:
  • Client ID: 123a1234e1234567aa12345a1abcdefg1
  • Client Secret: idcscs-12a1a123-a123-1234-1234-e1a05aabc123
  • Domain URL: https://idcs-a123ab1ab12a4bb99a9aa9ab99aabbb9.identity.oraclecloud.com:443
Führen Sie den folgenden Code in der Bash-Shell aus, und ersetzen Sie die Platzhalterwerte entsprechend:
export ACCESS_TOKEN=$(curl -s -i -u"123a1234e1234567aa12345a1abcdefg1: idcscs-12a1a123-a123-1234-1234-e1a05aabc123" -H "Content-Type: application/x-www-form-urlencoded;charset=UTF-8" --request POST https://idcs-a123ab1ab12a4bb99a9aa9ab99aabbb9.identity.oraclecloud.com:443/oauth2/v1/token -d "grant_type=client_credentials&scope=urn:opc:idm:__myscopes__" |
          tail -n +1 | grep -o '"access_token":"[^"]*' | cut -d'"'
        -f4)
 
Um zu prüfen, ob Sie das Token erfolgreich abgerufen haben, führen Sie den folgenden Befehl aus, und prüfen Sie das angezeigte Token.
echo $ACCESS_TOKEN

Die Abbildung unten zeigt, wie die oben genannten Befehle in der Bash-Shell angezeigt werden.



Es zeigt eine Ausgabe an, die aus mehreren Zeilen (über 10) mit alphanumerischen Zeichen besteht.

Führen Sie den folgenden Befehl mit (ROLE CLAIM NAME) als ssaddin.role und (MODIFIED FQN) als urn:ietf:params:scim:schemas:idcs:extension:custom:User.rbac_ords aus:
Hinweis

Verwenden Sie die FQN aus Schritt 1, und ersetzen Sie das letzte ":" durch ein ".".

Beispiel: FQN aus Schritt 1:

urn:ietf:params:scim:schemas:idcs:extension:custom:User:rbac_ords

Die MODIFIED FQN sollte also:

urn:ietf:params:scim:schemas:idcs:extension:custom:User.rbac_ords
curl -i -X POST (DOMAIN URL)/admin/v1/CustomClaims -H"Cache-Control: no-cache" -H"Accept:application/json" -H"Content-Type:application/json" -H"Authorization: Bearer $ACCESS_TOKEN" -d '{
    "schemas": [
        "urn:ietf:params:scim:schemas:oracle:idcs:CustomClaim"
    ],
    "name": "(ROLE CLAIM NAME)",
    "value": "$user.(MODIFIED FQN).*",     
    "expression": true,
    "mode": "always",
    "tokenType": "AT",
    "allScopes": false,
    "scopes": [
    "ssaddin/rbac"
  ]
}'
Hinweis

Ersetzen Sie Domain URL durch den tatsächlichen Wert im obigen Code.

Sie sehen Folgendes als Ausgabe:HTTP/1.1 201 Created.

RBAC-IAM-Anmeldung für Autonomous Database-Schema aktivieren

Mit den folgenden Anweisungen kann ORDS JWT-Bearer-Token validieren und Zugriff auf geschützte Ressourcen erteilen.
  1. Wählen Sie im SQL Worksheet in der Registerkarte "Navigator" aus der Dropdown-Liste "Schema" die Option ORDS_METADATA.
  2. Wählen Sie Packages aus der Dropdown-Liste "Objekttyp" aus.
  3. Geben Sie ORDS_SECURITY in das Suchfeld ein. Die Suchfunktion ruft alle Einträge ab, die mit ORDS_SECURITY beginnen.
  4. Blenden Sie das Package ORDS_SECURITY ein.



  5. Klicken Sie mit der rechten Maustaste auf CREATE_JWT_PROFILE, und klicken Sie auf RUN. Dadurch wird ein Dialogfeld RUN CODE geöffnet.
    Geben Sie im Dialogfeld {\b Run Code…} die folgenden Feldwerte an:
    • P_ISSUER- https://identity.oraclecloud.com/. Dieses Feld muss einen Wert ungleich Null enthalten und in ein einzelnes Komma gefüllt sein.
    • P_AUDIENCE-ssaddin/. Dieses Feld muss einen Wert ungleich Null enthalten.
    • P_JWK_URL - Hängen Sie die DOMAIN-URL an /admin/v1/SigningCert/jwk an. Der Wert darf nicht Null sein und muss mit https:// beginnen und den vom Autorisierungsserver bereitgestellten öffentlichen Verifizierungsschlüssel im JSON Web Key-(JWK-)Format identifizieren.

      Sie können die Domain-URL auf der Registerkarte "Domaininformationen" im Menü Domains des Navigationsmenüs Identität und Sicherheit der OCI-Konsole anzeigen.

    • P_DESCRIPTION: Geben Sie die Beschreibung für dieses Profil an. Beispiel: "RBAC JWT Demo-Konflikt".
    • P_ALLOWED_AGE-"0"
    • P_ALLOWED_SKEW-"0"
    • P_ROLE_CLAIM_NAME- "ssaddin.role"

    Klicken Sie auf Code in Arbeitsblatt einfügen.



    Führen Sie die Prozedur aus.



    Im Ausgabebereich wird "PL/SQL-Prozedur erfolgreich abgeschlossen" angezeigt.

Verbindungsdatei erstellen

  1. Klicken Sie im Header des Bereichs "Verbindungen" auf Hinzufügen, um eine Verbindung hinzuzufügen. Das Dialogfeld "Neue Verbindung hinzufügen" wird geöffnet.

  2. Geben Sie im Dialogfeld "Neue Verbindung hinzufügen" die folgenden Felder an:
    • Verbindungsname: Geben Sie den Namen der Verbindung an.
    • Autonomous Database-URL: Geben Sie die URL der Autonomous Database ein, zu der Sie eine Verbindung herstellen möchten. Kopieren Sie die gesamte URL aus der Web-UI von Autonomous Database. Beispiel: Geben Sie den folgenden Link ein, oder kopieren Sie ihn: "https://<hostname>-<databasename>.adb.<region>.oraclecloudapps.com/", um eine Verbindung zur Datenbank herzustellen.
    • Schemaname: Geben Sie dasselbe Schema ein, das Sie für IAM-Anmeldung für Autonomous Database-Schema aktivieren verwenden.
    • Verbindungstyp auswählen: OCI IAM
    • Domain-URL: Geben Sie die Domain-URL auf der Registerkarte mit den Domaininformationen ein.
    • Wählen Sie den RBAC-IAM-Typ aus.
    • IAM-Geltungsbereich: ssaddin/rbac



Nachdem die Verbindung erstellt wurde, können Sie sie mit anderen Benutzern dieser Domain teilen.