Authentifizierungsprozess für externe API-Clients

Authentifizierungsprozess für externe API-Clients

Eine wichtige Funktion von FUNDify ist die Bereitstellung einer API, die von externen API-Clients (z. B. der Technischen Universität Wien) genutzt werden kann, um Informationen zu kommentierten Anrufen abzurufen. Diese Informationen werden dann in ihren internen Tools angezeigt, z. B. auf einer Wiki-Seite.
Auf dieser Seite wird beschrieben, wie sich die Clients gegenüber der FUNDify-API authentifizieren können.
Es wird der Standard-oAuth-Client-Authentifizierungsfluss verwendet. Weitere Informationen hierzu finden Sie in dieser ausgezeichneten Dokumentation von Auth0: https://auth0.com/docs/get-started/authentication-and-authorization-flow/client-credentials-flow

Zugriff anfordern

Interessierte Parteien sollten das Kontaktformular ausfüllen und angeben, dass sie die FUNDify-API nutzen möchten.

Erstellen der Konten

  • Die Konten werden vom TU Keycloak-Team erstellt.
  • Beantragen Sie die Erstellung eines API-Clients; Sie sollten Ihnen Folgendes zur Verfügung stellen:
    • Client-ID
    • Client-Geheimnis
    • Benutzer-ID des Dienstkontos

Festlegen von Berechtigungen für das Dienstkonto

Nachdem das Konto erstellt wurde, müssen in FUNDify die entsprechenden Berechtigungen konfiguriert werden.
Dazu gehören:

  • Zuweisen der Rolle EXTERNAL_API_CLIENT zum Dienstkonto
  • Festlegen der richtigen Zugehörigkeits-ID

Diese Eigenschaften werden über die FUNDify-Anwendung verwaltet.

Senden von Anmeldedaten an die anfragende Partei

Die API-Nutzer benötigen Folgendes:

  • Client-ID (ähnlich wie ein Benutzername)
  • Client-Geheimnis (ähnlich einem Passwort)
  • Token-Endpunkt (ähnlich einer Anmeldeseite)


Die Client-ID und das Client-Geheimnis sind hochsensible Informationen und sollten über einen sicheren Kanal übertragen werden, beispielsweise über die Freigabefunktion eines Passwort-Managers (siehe 1Password Secure Sharing). Jeder, der Zugriff auf die Client-ID und das Client-Geheimnis hat, kann im Namen des Dienstkontos handeln.

Authentifizierung von APIs von Dritten

Zur Authentifizierung müssen Clients Folgendes tun:

Code-Beispiel (cURL)

Mit dieser einfachen Anfrage kann ein Zugriffstoken abgerufen werden.

            
                    curl -X POST \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=client_credentials' \
-d 'client_id=YOUR_CLIENT_ID' \
-d 'client_secret=YOUR_CLIENT_SECRET'
                
        

Um es zu verwenden, senden Sie es im Authorization-Header mit „Bearer“

            
                    curl -H "Authorization: Bearer"
                
        

Zusammengefasst können Sie Folgendes tun:

Den Zugriffstoken abrufen und in einer Variablen speichern

            
                    ACCESS_TOKEN=$(curl -X POST \ 
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=client_credentials' \
-d 'client_id=YOUR_CLIENT_ID' \
-d 'client_secret=YOUR_CLIENT_SECRET' | jq -r '.access_token')
                
        

Senden des Tokens auf Anfrage an die FUNDify-API

            
                    curl -H "Authorization: Bearer $ACCESS_TOKEN"
                
        

Inhalte von fundify.arisnet.ac.at anzeigen

Folgende Institutionen nutzen dieses Tool: 

  • WWTF - Wiener Wissenschafts-, Forschungs- und Technologiefonds
Name Beschreibung Description Vocabulary
funding Eine Drittmittelförderung in Form eine Geldbetrags für Forschungsaktivitäten. Funding is an amount of money or an inkind equivalent value.
id Die ID des Programms/Calls oder der Laufenden Einreichung. The id of the funding programme, call or ongoing call.
type Die Art der Förderung. The type of the funding. Funding type
name Name der Entität Name of Entity
acronym Das Akronym des Programms/Calls oder der Laufenden Einreichung. The acronym of the funding programme/call or ongoing call.
description Qualitative Beschreibung des Programms/Calls. Qualitative Description of the programme/call.
startDate Das Datum an dem das Förderprogramm begonnen hat.  The startdate of the funding programme.
endDate Das Datum an dem das Förderprogramm beendet wurde. The enddate of the funding programme if a funding programme is not open anymore.
funder Verknüpfung von Förderprogramm und Fördergeber oder weiteren Geldgebern. Linking of the funding programme and the funding body or further joint call parters.
funderType (funder) Die Rolle der Förderorganisation in der Abwicklung des Calls. The role of the funding organisation in managing the call. Funder type
id (funder) Die ID der Förderorganisation. The id of the funding organisation.
fundingScheme Die Art der finanziellen Unterstützung, die ein Call anbietet. The type of financial support that is offered by a call. Funding Type
legalType Rechtlicher Typ der Förderung gemäß Universitätsgesetz. Legal type of funding according to university law. Legal Type
website Der Link zum Förderprogramm/Call. The link to the funding programme/call.
characteristics Klassifizierung der Eigenschaften eines Programms/Calls. A classification of characteristics of the programme/call. Funding Characteristics
targetGroup Breite Definition der Zielgruppen nach Institutionstyp. The target group adressed by the programme/call classified by organisation types. Target Group
subject Klassifikation der Wissenschaftszweige, die einreichberechtigt sind. The subject classification(s) scientific disciplines which are eligible for funding.  Vocabulary (external)
fraction (subject) Anteil bzw. Gewichtung der jeweiligen Wissenschaftszweige (bei mehrfacher Auswahl). Fraction or proportion of the respective fields of science (in the case of multiple selection).
thematicOrientation Thematische Gruppierung von Calls, die keinem Förderprogramm zugeordnet sind. Thematic clustering of calls that are not assigned to a funding programme.
careerStage Zielgruppen des Calls hinsichtlich der Karrierestufe der Antragssteller*innen. Target group of the call with regard to the career stage of the applicants. Career Stage
programmeTrack Bezeichnung für eine Gruppe von Programmen. The label for a group of programmes that are similar.
partOf Verknüpfung von Call zu Förderprogramm. Chain up to the larger funding that encompasses this funding.
amount Gesamtsumme, die für die jeweilige Ausschreibung zur Verfügung steht. The total amount of funding that is available for a specific call.
callVolumeProjects Die max. Anzahl an Projekte, die in einer Ausschreibung gefördert werden können The maximum number of projects that can be funded in a specific call.
decisionProcessDetails Beschreibung des Auswahlverfahrens Description of decision processes
decisionProcess Art des Auswahlverfahrens. Types of decision processes. Decision Process
dmpRequired Angabe ob ein Datenmanagementplan gemäß den Anforderungen des Fördergebers erforderlich ist. Indication of whether a data management plan is required according to the funder's guidelines.
dmpGuidelines Link zu den vom Geldgeber zur Verfügung gestellten Leitlinien für den Datenmanagementplan. Link to the data management plan guidelines provided by the funder.
ProjectStart Angabe bis wann spätestens eine Projektstart zu erfolgen hat. The lasted possbile date by which a funded project has to start.
targetGroupSpecified Beschreibung der Zielgruppe (Antragstellende) eines Programms bzw. eines Calls. A description of the target groups adressed by the programme/call.
eligibleApplicants Genaue Beschreibung der Antragsberechtigten. A description of the eligible applicants.
eligibleApplicantsScope Die Förderfähigkeit ist auf einen nationalen oder regionalen Bereich beschränkt. The eligibility for funding is limited to a national or regional scope.
eligibleApplicantsRegion Antragsteller*innen aus diesen Regionen sind förderfähig. Applicants from these regions are eligible.
minProjectVolume Die minimale Summe, die beantragt werden muss The min. amount of money a proposal must claim
maxProjectVolume Die maximal mögliche Summe, die beantragt werden kann The max. amount of money a proposal is elible to claim 
fullyFunded Gibt an, ob ein Projekt zu 100 % durch die ausgeschriebene Förderung finanziert werden kann oder nicht. Indicates whether or not a project can be funded 100% by the funding.
minInkind Mindesthöhe der zu erbringenden Eigenleistungen seitens der Forschungsstätte. The min. amount of in-kind contributions expected from the research institution.
inkindDetails Detailierte Beschreibung der zu erbringenden Eigenleistungen. More detailed description of the in-kind contributions to be made.
maxOverHeads Max. Anteil des Gemeinkostenzuschlags, der vom Fördergeber übernommen wird. The maximum percentage of overhead costs covered by the funding.
overheadsDetails Beschreibung worauf sich die Berechnung der Gemeinkosten bezieht (Gesamtkosten, Personalkosten, ...)  Description of how the overhad costs are calculated (total costs, personnel costs, ...) 
minProjectDuration Minimale Dauer des beantragten Vorhabens. The minimum duration of the project.
maxProjectDuration Maximale Dauer des beantragten Vorhabens. The maximum duration of the project.
reportingPeriod Häufigkeit der Berichtslegung (z.B. jährlich nach Projektende). Frequency of the reporting (e.g. annually and after completion of the project). 
number (callStages) Zählung der Callstufen bei mehrstufigen Antragsverfahren. Count of call stages in multi-stage application procedures.
callStageStart (callStages) Das Startdatum der Call-Stufe. The start date of a call stage.
callStageEnd (callStages) Datum und Zeitpunkt ab dem keine Projekte mehr in der definierten Call-Stufe eingereicht werden können. The end date of a call stage.
callStageDescription (callStages) A description of a call stage. Beschreibung der Call-Stufe.
name (contact) Name der verantwortlichen Kontaktperson eines Calls. Name of the contact person responsible for a call.
email (contact) E-Mail Adresse der verantwortlichen Kontaktperson eines Calls oder allgemeine E-Mail Adresse des Fördergebers. E-mail address of the responsible contact person of a call or general e-mail address of the funding organisation.
phone (contact) Allgemeine Telefonnumer des Fördergebers. Funder's general phone number.
submissionMode Der Modus über welchen die Antragsinformationen an den Fördergeber übermittelt werden.  The mode in which an application for a funding can be submitted. Submission Mode
applicationLanguage Die Sprache in der die Antragsunterlagen verfasst sein müssen.  The language of the application required for the submission of applications.
address Adresse des Fördergebers The address of the funder