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.
- Benutzerdefinierte Attribute für Benutzer erstellen
- Benutzerdefinierte Rolle zuweisen
- Domain erstellen Integrierte Anwendung
- Benutzerdefinierten Anspruch definieren
- IAM-Anmeldung für autonomes KI-Datenbankschema aktivieren
- Verbindungsdatei erstellen
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
- Navigieren Sie zu: Identität → Domains → Standard. Klicken Sie auf die Registerkarte Schemaverwaltung, und wählen Sie Benutzerattribute aus.
- Klicken Sie unter Benutzerattribute auf Attribut hinzufügen.
- 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.
- 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.
- 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
- Navigieren Sie zu: Identität → Domains → Standard. 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.
- Navigieren Sie zu: Identität → Domains → Standard. Klicken Sie auf die Registerkarte Integrierte Anwendungen, und wählen Sie Anwendung hinzufügen aus.
- Klicken Sie auf Vertrauliche Anwendung, und wählen Sie Workflow starten aus.
- 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.
- Klicken Sie auf der Seite Spreadsheet-Addin RBAC in der Registerkarte OAuth-Konfiguration bearbeiten auf OAuth-Konfiguration.
- Wählen Sie unter "Ressourcenserverkonfiguration" die Option Diese Anwendung jetzt als Ressourcenserver konfigurieren aus.
- Wählen Sie unter Anwendungs-APIs konfigurieren, die OAuth geschützt werden müssen die Option 3600 als Ablaufdatum des Zugriffstokens (Sekunden) aus.
- Geben Sie im Feld Primäre Zielgruppe ssaddin/ ein.
- Klicken Sie auf Geltungsbereiche hinzufügen, und fügen Sie rbac Geltungsbereich hinzu.
- 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
- Navigieren Sie zu: Identität → Domains → Standard.
- Klicken Sie auf die Registerkarte Integrierte Anwendungen, und wählen Sie Anwendung hinzufügen aus.
- 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.
- Wählen Sie auf der Seite Integrierte Anwendung der Identitätsdomain die Registerkarte OAuth-Konfiguration aus.
- Klicken Sie auf OAuth-Konfiguration bearbeiten in der Ressourcenserverkonfiguration. Geben Sie im Dialogfeld Konfiguration OAuth bearbeiten die folgenden Felder an:
- Wählen Sie unter Clientkonfiguration den Standardwert Diese Anwendung jetzt als Client konfigurieren aus.
- Wählen Sie unter Autorisierung die Option Clientzugangsdaten. Behalten Sie den Standardstatus der restlichen Konfigurationen bei.
- Wählen Sie Anwendungsrollen hinzufügen aus.
- Klicken Sie im Dialogfeld Anwendungsrollen hinzufügen auf Identitätsdomainadministrator, und wählen Sie Hinzufügen aus.
- Klicken Sie nach dem Hinzufügen von Anwendungsrollen auf Weiterleiten.
- Aktivieren Sie die Anwendung.
Hinweis
Notieren Sie sich im Abschnitt Allgemeine Informationen der integrierten Anwendung die Client-ID und das Client Secret.
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)
Client ID
: 123a1234e1234567aa12345a1abcdefg1Client Secret
: idcscs-12a1a123-a123-1234-1234-e1a05aabc123Domain URL
: https://idcs-a123ab1ab12a4bb99a9aa9ab99aabbb9.identity.oraclecloud.com:443
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)
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.
(ROLE CLAIM NAME)
als ssaddin.role und (MODIFIED FQN)
als urn:ietf:params:scim:schemas:idcs:extension:custom:User.rbac_ords aus:
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"
]
}'
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
- Wählen Sie im SQL Worksheet in der Registerkarte "Navigator" aus der Dropdown-Liste "Schema" die Option
ORDS_METADATA
. - Wählen Sie
Packages
aus der Dropdown-Liste "Objekttyp" aus. - Geben Sie
ORDS_SECURITY
in das Suchfeld ein. Die Suchfunktion ruft alle Einträge ab, die mitORDS_SECURITY
beginnen. - Blenden Sie das Package
ORDS_SECURITY
ein. - Klicken Sie mit der rechten Maustaste auf
CREATE_JWT_PROFILE
, und klicken Sie aufRUN
. Dadurch wird ein DialogfeldRUN 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
-
Klicken Sie im Header des Bereichs "Verbindungen" auf Hinzufügen, um eine Verbindung hinzuzufügen. Das Dialogfeld "Neue Verbindung hinzufügen" wird geöffnet.
- 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.
Übergeordnetes Thema: Datenanalysetool