Hinweis:

Aktivieren Sie die OAuth2-Authentifizierung in OCI API Gateway, um OCI-Services mit OCI Functions und OCI SDK aufzurufen

Einführung

Oft benötigen unsere Anwendungen REST-Services von Oracle Cloud Infrastructure (OCI). Es gibt mehrere Möglichkeiten, die Sicherheit zwischen Komponenten zu gewährleisten und sicherzustellen, dass die Anwendung sich sicher beim Backend-Service authentifizieren kann.

Diese Aufgabe ist in Oracle Cloud nativ, da es verschiedene Möglichkeiten gibt, das Netzwerk zu sichern und auf vorhandene Services zuzugreifen. Nur ein paar Einstellungen und Sie sind fertig. In bestimmten Fällen kann die Anwendung jedoch zusätzliche Sicherheits- und Konnektivitätsanforderungen bieten. Der Anwendungsfall dieses Materials erfüllt eine sehr häufige Anforderung im Hybrid- oder Multi-Cloud-Szenario (On-Premises mit Oracle Cloud verbunden oder Oracle Cloud mit einer anderen Cloud verbunden).

Lassen Sie uns das folgende Szenario vorstellen:

Daher bietet das Tutorial die folgenden Lösungen:

Ziele

Voraussetzungen

Aufgabe 1: OAuth2 mit Oracle Identity Cloud Service konfigurieren

  1. OCI-API-Gateway-Parameter abrufen: Beginnen wir mit der Konfiguration des OAuth2-Mechanismus. Wir müssen Ihre OCI API Gateway-Instanz in einen Identitätsprovider integrieren, indem wir Oracle Identity Cloud Service aus Oracle Cloud als Identitätsprovider konfigurieren.

    Gehen Sie zur OCI API Gateway-Instanz, und kopieren Sie Hostname. Diese Informationen werden im nächsten Schritt in der Oracle Identity Cloud Service-Ressourcenserverkonfiguration verwendet.

    img.png

  2. Ressourcenanwendung erstellen: Wir müssen einen OAuth2-Autorizer für Ihre Anwendung erstellen. Dies ist mit Oracle Identity Cloud Service in Oracle Cloud möglich.

    1. Gehen Sie in der OCI-Konsole zu Identität und Sicherheit, und wählen Sie Föderation aus.

      img.png

    2. Klicken Sie auf OracleIdentityCloudSevice.

      img.png

    3. Klicken Sie auf den Link für Ihre Oracle Identity Cloud Service-Instanz.

      img.png

    4. Wir erstellen zwei Anwendungen. Klicken Sie auf Anwendungen und Services.

      img.png

    5. Klicken Sie in den Anwendungen auf Hinzufügen.

      img.png

    6. Wählen Sie Vertrauliche Anwendung aus, um den Ressourcenserver zu konfigurieren.

      img.png

    7. Die erste Anwendung wird konfiguriert. Geben Sie einen Namen in der Ressourcenserveranwendung ein, und klicken Sie auf Weiter.

      img.png

    8. Klicken Sie auf Bis zu einem späteren Zeitpunkt überspringen. Wir müssen nur die Ressource konfigurieren.

      img.png

    9. Geben Sie den OCI API Gateway-Hostnamen ein, der in Schritt 1 abgerufen wurde.

      img.png

    10. Klicken Sie auf Add Scope, und geben Sie die Geltungsbereichsinformationen ein.

      img.png

    11. Prüfen Sie Ihre Geltungsbereichsinformationen, klicken Sie zweimal auf Weiter, und klicken Sie auf Fertigstellen.

      img.png

    12. Klicken Sie auf Aktivieren, um die Anwendung zu aktivieren.

      img.png

  3. Erstellen Sie eine Clientanwendung.

    1. Klicken Sie unter "Anwendungen" auf Hinzufügen.

      img.png

    2. Wählen Sie Vertrauliche Anwendung aus, um den Ressourcenserver zu konfigurieren.

      img.png

    3. Geben Sie einen Namen für die Anwendung ein, und klicken Sie auf Weiter.

      img_1.png

    4. Wählen Sie Anwendung jetzt als Client konfigurieren aus, um die Konfigurationen für Ihre Clientanwendung zu aktivieren. Wählen Sie Clientzugangsdaten, JWT-Assertion und Im Namen aus.

      img.png

    5. Scrollen Sie auf dem Bildschirm nach unten, und klicken Sie auf Geltungsbereich hinzufügen.

      img.png

    6. Suchen Sie die zuvor erstellte Ressourcenanwendung (in dieser Aufgabe oauth_resource_server), und klicken Sie auf Hinzufügen.

      img.png

    7. Ihr Geltungsbereich wird Ihrer Anwendung hinzugefügt. Klicken Sie anschließend auf Weiter.

      img.png

      Hinweis: Behalten Sie den Geltungsbereichswert bei, Sie müssen ein Token anfordern.

    8. Überspringen Sie die Fenster Ressourcen und Web Tier Policy. Wählen Sie unter Autorisierung die Option Berechtigungen als Autorisierung durchsetzen aus, und klicken Sie auf Fertigstellen.

      img.png

    9. Behalten Sie die Informationen zu Client-ID und Client Secret bei. Sie benötigen dies, um Ihr Token zu erhalten.

      img.png

    10. Klicken Sie auf Aktivieren, um die Anwendung zu aktivieren, und der Autorisierer OAuth2 ist zum Testen bereit.

      img_1.png

  4. Token abrufen: Jetzt können wir den Autorisierer OAuth2 testen, um das Token abzurufen.

    1. Verfassen Sie die URL für den Autorisierer. Sie erhalten diese Informationen, indem Sie Ihre Oracle Identity Cloud Service-URL im Browser abrufen. In der Oracle Identity Cloud Service-URL wird Folgendes angezeigt: https://idcs-xxxxxxxxxxxxx.identity.oraclecloud.com/ui/v1/adminconsole.

    2. Sie benötigen den URL-Link bis zum Root-Endpunkt oraclecloud.com. Beispiel: https://idcs-xxxxxxxxxxxxx.identity.oraclecloud.com.

    3. Sie müssen den Authentifizierungspfad oAuth hinzufügen. Diese URL wird als POST-REST-Anforderung ausgeführt. Beispiel: https://idcs-xxxxxxxxxxxxx.identity.oraclecloud.com/oauth2/v1/token. Sie müssen einige Parameter eingeben, um das Token anzufordern.

    4. Geben Sie die Zugangsdaten als Basisauthentifizierung und Client-ID und Client Secret ein.

      img.png

    5. Geben Sie im Hauptinhalt die Werte grant_type und Geltungsbereich ein. Denken Sie daran, dass der Geltungsbereich in der Oracle Identity Cloud Service-Konfiguration erfasst wurde.

      img.png

    6. Klicken Sie auf Senden, führen Sie die Anforderung POST aus, und zeigen Sie das Token an.

      img_2.png

  5. JSON Web Key (JWK) erstellen: Geben Sie in Ihrem Browser den Oracle Identity Cloud Service-Root-Endpunkt ein, und fügen Sie /admin/v1/SigningCert/jwk hinzu, um den JWK abzurufen: https://idcs-xxxxxxxxxxxxx.identity.oraclecloud.com/admin/v1/SigningCert/jwk

    Sie erhalten eine JWK-Zeichenfolge wie unten dargestellt.

    img_2.png

    Wir müssen an dieser JWK-Zeichenfolge arbeiten.

    {"keys":[{"kty":"RSA","x5t#S256":"gHdIaH54tZt-b09W7_bTALX0DSj5t_Tsy6Wy2P1M_3E","e":"AQAB","x5t":"L_vneVBMiKA-ObXpNt8FZC4sRSY","kid":"SIGNING_KEY","x5c":["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"],"key_ops":["sig","encrypt"],"alg":"RS256","n":"khfJqiO57xMlci4mtvirEGoDfPflsLWQd3G0ZkQQlQK2QcraQRQPkaoP8Lo6KMKA-1mV1TxGfd9QMx9ONmtRL8RIWvt0543Fae6wPfRpaeIcDpknsHAovsTdQ9SwfqwhF7slDg4ciEJ7-gdpCJKMVQcnsiWBDPCoIC1xzB7KbGKrWvaPAmxx1hoM4etjPwBy8h_JvHMfDEF1GkrUtCDiLFPyGBLPv50hmyN6mnTu47lBhzIwzeZ4HqZLgrOdqdA6iSZrBxRzHDi1IWqoj87FYpztkWXnV7VkIN37RwrG6bFKOHGaYEydoF0LmI4pltssTxsdtLyN-Hr8fM402cs7Iw"}]}
    

    Hinweis:

    • Dieser JWK wurde verdeckt.

    • Wenn Sie eine Fehlermeldung erhalten, müssen Sie Zugriff in Oracle Identity Cloud Service erteilen.

    img.png

    Wichtige Änderung der JWK-Zeichenfolge: Die JWK-Zeichenfolge ist im OCI-API-Gateway erst nützlich, wenn Sie einige Änderungen vorgenommen haben.

    1. Suchen Sie das Segment mit "key_ops":["x","y","z"], und ersetzen Sie es durch "use" : "sig". Es wird wie unten dargestellt aussehen (vergleichen Sie die beiden Zeichenfolgen).

      {"keys":[{"kty":"RSA","x5t#S256":"gHdIaH54tZt-b09W7_bTALX0DSj5t_Tsy6Wy2P1M_3E","e":"AQAB","x5t":"L_vneVBMiKA-ObXpNt8FZC4sRSY","kid":"SIGNING_KEY","x5c":["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"],"use" : "sig","alg":"RS256","n":"khfJqiO57xMlci4mtvirEGoDfPflsLWQd3G0ZkQQlQK2QcraQRQPkaoP8Lo6KMKA-1mV1TxGfd9QMx9ONmtRL8RIWvt0543Fae6wPfRpaeIcDpknsHAovsTdQ9SwfqwhF7slDg4ciEJ7-gdpCJKMVQcnsiWBDPCoIC1xzB7KbGKrWvaPAmxx1hoM4etjPwBy8h_JvHMfDEF1GkrUtCDiLFPyGBLPv50hmyN6mnTu47lBhzIwzeZ4HqZLgrOdqdA6iSZrBxRzHDi1IWqoj87FYpztkWXnV7VkIN37RwrG6bFKOHGaYEydoF0LmI4pltssTxsdtLyN-Hr8fM402cs7Iw"}]}
      
    2. Entfernen Sie die Zeichenfolge {"keys":[ vom Anfang und ]} vom Ende. Die letzte Zeichenfolge sieht wie unten dargestellt aus. Jetzt können Sie es verwenden.

      {"kty":"RSA","x5t#S256":"gHdIaH54tZt-b09W7_bTALX0DSj5t_Tsy6Wy2P1M_3E","e":"AQAB","x5t":"L_vneVBMiKA-ObXpNt8FZC4sRSY","kid":"SIGNING_KEY","x5c":["MIIDYTCCAkmgAwIBAgIGAXRBgoJkiaJk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/IsZAEZFgVjEtMjAeFw0yMDA0MTcxMDU3NTRaFw0zMDA0MTcxMDU3NTRaMFYxEzARBgNVBAMTCnNzbERvbWFpbnMxDzGA1UEAxMlaWRjcy00ZmI0N2I5MTYxMzA0YjFkYTI2ZjZlZDE2MTlhNGUwOTCCASIwDQYJKoZIhvcNAQJIXyaojue8TJXIuJrb4qxBqA3z35bC1kHdxtGZEEJUCtkHK2kEUD5GqD/C6OijCgPtZldU8Rn3fUDMfTjZrUS/ESFr7dOeNxWnusD30aWniHIRe7JQ4OHIhCe/oHaQiSjFUHJ7IlgQzwqCAtccweymxiq1r2jwJscdYaDOHrYz8AcvIfybxzHwT8hgSz7+dIZsjepp07uO5QYcyMM3meB6mS4KznanQOokmawcUcxw4tSFqqI/OxWKc7ZBMnaBdC5iOKZbbLE8bHbS8jfh6/HzONNnLOyMCAwEAAaMyMDAwDwYDVR0PAQH/BAUDAwf4ADAdBgNVHQ4EFgQUd415wDQYJKoZIhvcNAQELBQADggEBAClHD810UCnRuvS7Rbtp5UFTzeRvexDe+Jk6/1FdcfW4COWLRVrgY45XHQr2GmhPWC1G2Yn8WczkIErpX+LAtyFSyOYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxhvGsA6gj55ZLAynSnzMtPs+2Ij4F3PgkgJG7zxHs9HOuyuZtCKJAldVv7IFaQYv6yMjH7llehQOMwp1YPh54kk8M4yk1IIgi/Hw4Tr/HbU7r2EJyaHfxFZgck1Cr9nBIspANy5BDlFYeAnTmKk3UAafbZdSMfeJFd/XwaPlhIzNEJYGW3T4Y5d8o=","MIIDazCCAlOgAwIBAgIIMdQl7kIMrv0wDQYJKoZIhvcNAQELBQAwWTETMBEGCgmSJomT8ixkARkWA2NvbTEWMBQGCgmSJomT8ixkARkWBm9yYWNsZTEVMBMGCgmSJomT8ixkARkWBWNsb3VkMRMwEQYDVQQDEwpDbG91ZDlDQS0yMCAXDTE2MDUyMTAyMTgwOVoYDzIxMTYwNDI3MDIxODA5WjBZMRMwEQYKCZImiZPyLGQBGRYDY29tMRYwFAYKCZImiZPyLGQBGRYGb3JhY2xlMRUwEwYKCZImiZPyLGQBGRYFY2xvdWQxEzARBgNVBAMTCkNsb3VkOUNBLTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPZn2VAoMsIfWmIJks9exzK+DXaX6qYyBc12dRqDrRpC48v3CBeBchV/GT2E+mjcDp8Hzq8oIpwr9W5kwMja4PU3SPd4/0LB6WKbtLfHOnJxLg9EaT992UpbUGHaHlEq4oRAuVvPgDLp5sSspLZYEBKUh4vJXOyLitE1qsXn7mJNXRKTJZvrJKdfbs1dyTge3V3wk1rwY/wCWMKVgkqCgSzzWCGju8EZWoOrnzlR6BHkA0qZqeV4F7jDW8ucdv+Y20pOlOiaEbIg/ZFYGrZd5VWjlNvgLfU8P4C/YJLSkkcPHgoet3w4jI0S26efu59rVzgU9VsKnKtnqbDL99t81vAgMBAAGjNTAzMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDMA8e55FI5kC12+guIE9xtcIXpFMA0GCSqGSIb3DQEBCwUAA4IBAQC45tOVeqHxA8Bo/Rnv1SHHpULge3HyTC1XV9nmUdrj6g/U6rmbA5hVJ5LshgQ77qopO/YsaNHj5Ru1u/+8VOlZWpbn+kt3CDOuBUCe89CKBZT/KWEDkvtNl2qu16gOkhFnuTQk8NsARvwZZ6KtyPDmsbW4Nc/I5fKwPhdTaMjCV6Lh9RCG4kU77lbdwY3SaXlCBXXQyfPWMouCi7z1thJaF3cNGW4tnsibMR5ej9fJ9j6UvShxNgAIgjNDoihPlC6k0kW3QDR3bBjCHJX47505aIhckojH/eKsP2Or0eE/Ma4WNbndj0IXPE2ae5AVmC8/GRtwAmnoZPnt3g/I2m5j"],"use" : "sig","alg":"RS256","n":"khfJqiO57xMlci4mtvirEGoDfPflsLWQd3G0ZkQQlQK2QcraQRQPkaoP8Lo6KMKA-1mV1TxGfd9QMx9ONmtRL8RIWvt0543Fae6wPfRpaeIcDpknsHAovsTdQ9SwfqwhF7slDg4ciEJ7-gdpCJKMVQcnsiWBDPCoIC1xzB7KbGKrWvaPAmxx1hoM4etjPwBy8h_JvHMfDEF1GkrUtCDiLFPyGBLPv50hmyN6mnTu47lBhzIwzeZ4HqZLgrOdqdA6iSZrBxRzHDi1IWqoj87FYpztkWXnV7VkIN37RwrG6bFKOHGaYEydoF0LmI4pltssTxsdtLyN-Hr8fM402cs7Iw"}
      

Aufgabe 2: OCI Functions für den Aufruf der OCI-SDK-API konfigurieren

  1. OCI Functions und API Gateway verstehen: Es ist eine Best Practice, Ihre Services über ein API-Gateway bereitzustellen. Viele Authentifizierungen können unter Umgehung der Zugangsdaten vom API-Gateway an die Backend-Services ausgeführt werden. Wenn die Backend-Authentifizierung jedoch nicht die geeignete Methode für Ihre Clientanwendung war, können einige Konfigurationen auf API-Gateway-Ebene ausgeführt werden.

    In diesem Schritt erfahren Sie, wie OCI API Gateway uns dabei helfen kann, die OAuth2-Authentifizierung und die Anforderung für einen beliebigen OCI-Service zu integrieren, wie die Vorhersage des Data Science-Modell-Deployments über OCI Functions.

    OCI Functions kann den Job ausführen, um die Bodyanforderung zu empfangen und an den OCI-Service zu übergeben. Einige Services im OCI-Service können sich nicht mit der Methode OAuth2 authentifizieren, sodass wir dies mit OCI Functions tun können.

    In diesem Beispiel kann sich der Vorhersageservice für das Modell-Deployment über den OCI Private Key in OCI IAM authentifizieren. Dies kann vom Resource Principal erfolgen.

    Wenn Sie nicht wissen, wie Sie OCI-Funktionen erstellen und bereitstellen, finden Sie weitere Informationen unter Schnellstart von OCI-Funktionen.

  2. Code verstehen: Dieser Code kann mit OCI API Gateway verwendet werden. In Ihrem API-Deployment konfigurieren wir den Modell-Deployment-Endpunkt im API-Gateway und werden als HEADER-Parameter übergeben. Sie können diese Funktion also für viele Modell-Deployments in jedem benötigten API-Gateway-Deployment verwenden.

    img_3.png

    • Mit der oracle.ads-Bibliothek in Python autorisieren wir von Resource Principal den Zugriff dieser Funktion auf die Modell-Deployment-Instanz (siehe Aufgabe 4).

      ads.set_auth('resource_principal')
      
    • Der Textinhalt kann von dieser Zeile erfasst werden.

      body = json.loads(data.getvalue())
      
    • Wir konfigurieren einen HEADER mit dem Namen model_deployment im OCI API Gateway. Dieser HEADER enthält die URL für die in der API-Gateway-Anforderung übergebene Modell-Deployment-Prognose.

      endpoint = ctx.Headers()["model_deployment"]
      
    • Dadurch wird die REST-API-POST-Anforderung ausgeführt und das Ergebnis aus dem Modell-Deployment im Data Science-Endpunkt zurückgegeben.

      return requests.post(endpoint, json=body, auth=ads.common.auth.default_signer()['signer']).json()
      
    • Diese requirements.txt-Bibliothek muss in diese Funktion geladen werden.

      requirements.txt
      ---------------------
      fdk>=0.1.54
      requests
      oracle-ads
      

    Stellen Sie OCI Functions bereit, und konfigurieren Sie sie im OCI-API-Gateway.

Aufgabe 3: Deployment-Authentifizierung für API-Gateway konfigurieren

Hinweis: Weitere Informationen zum Entwickeln von OCI-Funktionen und Aufrufen in OCI API Gateway finden Sie unter OCI-Funktionen mit API Gateway aufrufen.

  1. Wählen Sie OAuth 2.0 / OpenID Connect, und geben Sie die folgende Konfiguration ein. Dies ist die Standardmethode zur Authentifizierung über den HEADER.

    Token Location: Header
    JWT token header name: Authorization
    Authentication scheme: Bearer
    
  2. Geben Sie die zuvor erstellte JSON-Web-Key-Zeichenfolge ein, wählen Sie Statische Schlüssel aus, und geben Sie die folgenden Informationen ein.

    Key ID: SIGNING_KEY
    Key format: JSON web key
    JSON web key: <Your JWK string created previously>
    
  3. Geben Sie die Aussteller als https://identity.oraclecloud.com/ und Zielgruppen mit dem zuvor abgerufenen OCI-API-Gateway-Hostnamen ein.

    img.png

    Konfigurieren Sie Ihre OCI-Funktionen, die in der letzten Aufgabe erstellt wurden.

    img_1.png

  4. Konfigurieren Sie den HEADER-Parameter model_deployment, und klicken Sie auf Routenanforderungs-Policys anzeigen.

    img_5.png

  5. Klicken Sie in den HEADER-Transformationen auf Hinzufügen.

    img_2.png

  6. Sie benötigen die Vorhersage-URL für das Data Science-Modell-Deployment. Sie erhalten diese hier: Gehen Sie zum Menü Data Science, wählen Sie Ihre Data Science-Instanz und das Modell-Deployment aus, und klicken Sie auf Modell aufrufen.

    Hinweis: Speichern Sie die Modell-Deployment-OCID hier. Sie müssen die Policys später konfigurieren.

    img_3.png

    Ihre Vorhersage-URL für das Data Science-Modell-Deployment.

    img_4.png

  7. Geben Sie als Headernamen model_deployment und als Vorhersage-URL für das Data Science-Modell-Deployment Werte ein.

    img_3.png

    img_4.png

    Hinweis: Nachdem Sie das API-Gateway-Deployment gespeichert haben, müssen Sie sich an den API-Deployment-Endpunkt erinnern.

    img_2.png

Aufgabe 4: OCI-Gruppe und -Policys konfigurieren

Erstellen Sie eine dynamische Gruppe, um Zugriff von OCI Functions auf Ihre OCI-Ressource zu erteilen. In diesem Tutorial wird das Data Science-Modell-Deployment verwendet. Weitere Informationen zur Verwendung des Resource Principals finden Sie unter Resource Principal.

  1. Rufen Sie die OCID der Modell-Deployment-Instanz ab. Geben Sie die OCID in die Zeichenfolge der dynamischen Gruppe ein.

    ALL {resource.type = 'fnfunc', resource.id = 'ocid1.datasciencemodeldeployment.oc1.sa-saopaulo-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'}
    

    Hinweis: resource.id ist die OCID, die zuvor auf dem Bildschirm der Modell-Deployment-Konsole abgerufen wurde.

    img_4.png

  2. Erstellen Sie eine Policy, um die dynamische Gruppe zuzulassen. Weitere Informationen finden Sie unter Modell-Deployment-Policys.

    allow dynamic-group hoshikawa_datascience to {DATA_SCIENCE_MODEL_DEPLOYMENT_PREDICT} in tenancy
    allow dynamic-group hoshikawa_datascience to manage data-science-model-deployments in tenancy
    

    img_4.png

Aufgabe 5: API testen

Nun simulieren wir die OAuth2-Anforderung Ihrer Anwendung für Ihren Modell-Deployment-Service in OCI Data Science.

  1. Rufen Sie das Token ab, das die Client-ID und das Client Secret an Ihren Oracle Identity Cloud Service-Provider übergibt.

    img_2.png

  2. Geben Sie den OCI-API-Gateway-Deployment-Endpunkt ein, und wählen Sie die REST-Anforderung POST aus. Kopieren Sie den Wert access_token, und übergeben Sie ihn an das OCI-API-Gateway-Deployment. Denken Sie daran, dass Ihr Token eine Stunde lang ist.

    img_5.png

    Und hier ist das Ergebnis!

    img.png

Danksagungen

Weitere Lernressourcen

Lernen Sie andere Übungen auf docs.oracle.com/learn kennen, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube Channel zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.

Produktdokumentation finden Sie im Oracle Help Center.