Flow für OAuth-Autorisierungscode-Gewährung

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 2 Minuten Lesedauer
  • Der Flow für die Gewährung von Autorisierungscodes ermöglicht einem Anwender den Zugriff auf eine Ressource, indem er sich direkt bei einem OAuth-Server authentifiziert, der der Ressource vertraut, im Gegensatz zur Authentifizierung mit Anwendername/Passwort-Anmeldeinformationen.

    Diese Implementierung des OAuth-Autorisierungscode-Flows ermöglicht den Zugriff auf eine Ressource über REST. Das Autorisierungscode-Framework ruft das Zugriffstoken über die autorisierte URL ab, die der Anwender konfiguriert, anstatt den Anwender zu zwingen, einen Anwendernamen/ein Passwort einzugeben. Der Anwendername/das Passwort wird nie dem Client zugänglich gemacht, der Zugriff auf die Ressource anfordert.

    A ServiceNowInstanz als Autorisierungsserver

    Der OAuth-Server ist normalerweise ein Autorisierungsserver einer Drittpartei. Sie können auch angeben ServiceNowInstanz als Autorisierungsserver, der die Token für den Autorisierungscode-Flow ausgibt.

    Der Anwender, der die eingeschränkte Ressource besitzt, muss den Zugriff autorisieren. Der Anwender kann das ausgestellte Zugriffstoken auch jederzeit widerrufen, um den Zugriff zu beenden.

    Flow-Prozess für Autorisierungscode-Gewährung

    Der Flow-Prozess für die Gewährung von Autorisierungscodes besteht aus diesen drei Schritten:

    In Schritt 1 initiiert die Client-Anwendung oder -Website einen REST-API-Aufruf in Form einer GET-Anforderung an die Instanz über den Anwender-Agent. Normalerweise wird der REST-Aufruf initiiert, wenn der Endanwender auf eine Schaltfläche oder einen Link in der Client-Anwendung oder -Website klickt, um ein Zugriffstoken anzufordern. In der Client-Anwendung muss der Endanwender auch die Autorisierungs-URL, die Token-URL, die Client-ID und den geheimen Client angeben. Eine Erklärung dieser Elemente finden Sie in den Feldbeschreibungen in diesem Thema: Verwenden Sie einen externen OAuth-Anbieter . Wenn der Client einen Gewährungstyp anfordert, muss der Endanwender auswählen Autorisierungscode .

    Beispiel für „Anforderung von der Client-Anwendung an die Instanz ABRUFEN“:
    https://myinstance.service-now.com/oauth_auth.do?response_type=code&redirect_uri={the_redirect_url}&client_id={the_client_identifier}
    Hinweis:
    Die Response_type Muss sein Code Dient zur Verwendung des standardmäßigen OAuth-Codegewährungs-Flows.
    Der Endanwender muss manuell Zugriff auf die eingeschränkte Ressource in der Instanz zulassen. In ServiceNowImplementierung muss der Endanwender bei der Instanz angemeldet sein. Die Instanz fordert den Endanwender mit einer UI-Seite auf, die hat Zulassen Und Ablehnen Schaltflächen.

    Das Element, von dem die Clientanwendung das Token tatsächlich anfordert, ist der von Ihnen erstellte Registrierungsdatensatz der OAuth-Anbieteranwendung, auch als Autorisierungs-Endpunkt bezeichnet (siehe Verwenden Sie einen externen OAuth-Anbieter ). Der Authentifizierungscode wird vom Autorisierungsendpunkt an den Client gesendet. Es wird nicht direkt an den Client weitergeleitet, sondern an Umleitungs-URL Die Sie im Formular „Autorisierungs-Endpunkt“ angeben. Diese URL wird auch als Rückruf-URL bezeichnet. Sie können diese URL aus der Client-Anwendung oder -Website abrufen.

    Beispielantwort von der Instanz an die Client-Anwendung mit einem Autorisierungscode:
    https/http://{callbackURL}?code={the actual auth code}

    Da die Client-Anwendung jetzt über den Autorisierungscode verfügt, verwendet der Client den Code, um das Zugriffstoken anzufordern. Der Autorisierungscode belegt, dass der Anwender in Schritt 1 zugestimmt hat.

    Beispiel für EINE POST-Anforderung von der Client-Anwendung an ServiceNowInstanz, die den Authentifizierungscode bereitstellt und das Zugriffstoken anfordert:
    https://myinstance.service-now.com/oauth_token.do?grant_type=authorization_code&code={the auth code}&redirect_uri={the_same_redirect_url}&client_id={the_same_client_identifier}&client_secret={client_secret_value}

    Der Endpunkt in der Instanz gibt ein Zugriffstoken und ein Aktualisierungstoken zurück. Das Aktualisierungstoken kann verwendet werden, um zusätzliche Zugriffstoken anzufordern.

    Sie können die Token in der Instanz verwalten, einschließlich des Widerrufs des Tokens. Siehe Verwalten Sie OAuth-Token .

    Die Client-Anwendung verwendet das Zugriffstoken, um sich bei der REST-API zu authentifizieren. Nach der Authentifizierung der Client-Anwendung gibt die REST-API die angeforderten Daten in einer JSON-Nutzlast zurück.

    Beispiel für DIE Anforderung ZUM ABRUFEN der JSON-Nutzlast von Daten für die Tabelle „Incident [Incident]“:
    https://myinstance.service-now.com/api/now/table/incident?access_token={the_token}
    Hinweis:
    Das System unterstützt auch Implizite OAuth-Zuschüsse , Auch als Flow für implizite Zuschusscode bezeichnet.

    Integrationsunterstützung

    Der Autorisierungscode-Flow unterstützt die folgenden Integrationen in der Instanz:
    • Multi-SSO
    • SAML 2,0-Update 1
    • Multifaktor-Authentifizierung

    Die mobile Schnittstelle wird ebenfalls unterstützt.