Security for Crowdin Apps

For at sikre et højt sikkerhedsniveau i situationer, hvor Crowdin-appen aebejder med data fra Enterprise (f.eks. bruger godkendelsen via authorization_code), er der udviklet en sikkerhedsmekanisme. Hovedprincippet i denne sikkerhedsmekanisme er baseret på udvekslingen af JWT-token mellem Enterprise og Crowdin-appen. JWT-token’et er signeret med en OAuth Client-hemmelighed kun kendt af de to deltagende parter. På denne måde kan Crowdin-appen få en bekræftelse af, at siden er åbnet specifikt i Enterprise.

Implementering

Følg disse trin for at implementere godkendelse og bekræftelse i Crowdin-appen:

  • Tilføj godkendelsen via authorization_code til app-descriptor’en og tilføj OAuth Client ID’et, der vil blive brugt til godkendelse.
  • Tilføj tilbagekald til den Crowdin-app, der vil håndtere Installationsbegivenheden.
  • Angiv det aktuelle sæt af udstrækninger krævet for Crowdin-appen i app-deskriptor’en. Det angivne sæt af udtrækninger bør ikke overskride udtrækningerne angivet i OAuth.

Vha. ovenstående metoder for hver forespørgsel til Crowdin-appen, vil Enterprise videreformidle et sæt parametre sammen med et sikkerhedstoken, som kan valideres af en hemmelighed fra OAuth.

Nedenfor ses et eksempel på den URL, der af Enterprise bruges til at åbne en modulside.

https://eksempel.dk/app-module?jwtToken=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJCcjRhMmhwUW……MX0.yt-lbv3Z8JyIGX4jG405mjZvX8lwc1q0EfWdTtm9GCc&origin=https://{domain}.crowdin.com&clientId=client-id

Forespørgselsparametre:

jwtToken

Type: string

Beskrivelse: JWT-token bruges til godkendelse.

origin

Type: string (url)

Beskrivelse: Vært brugt til at åbne en modulside.

clientId

Type: string

Beskrivelse: OAuth-klients ID brugt til godkendelse.

Den bedste praksis vil være at føje middleware til Crowdin-appen for at bekræfte, om hver anmodning har et token med en gyldig signatur og udløbsdato. Et af de eksisterende biblioteker kan bruges til at bekræfte token-ægtheden.

JWT-tokenstruktur

Et JWT-token udgøres af flg. dele:

  • Header - indeholder information om typen af token og kodningsalgoritmer.
  • Payload - indeholder yderligere oplysninger om udstedelses- og udløbsdatoer for token’et, oplysninger om tokenudstederen og anmoderen samt yderligere kontekstuel information.
  • Signatur - delen med en signatur baseret på header og payload.

JWT-token payload eks.:

{
  "aud": "Br4a2hpQiNW96anuuO4a",
  "sub": "1",
  "domain": null,
  "context": {},
  "iat": 1600000000,
  "exp": 1600000900
}

Egenskaber:

aud

Type: string

Beskrivelse: OAuth-klients ID brugt til tokenudstedelse.

sub

Type: string

Beskrivelse: Identifikator for den bruger, der fremsætter en anmodning til Crowdin-appen.

domain

Type: string|null

Required: yes

Beskrivelse: Navnet på organisationen, hvorfra appen tilgås.

context

Type: object

Beskrivelse: Informationen om miljøet, hvori Crowdin app-modulet åbnes (f.eks. projekt, organisation, landestandard, brugers tidszone mv.).

iat

Type: int

Beskrivelse: Identificerer token-udstedelsestidspunktet.

exp

Type: int

Beskrivelse: Identificerer token-udløbstidspunktet.

IP Allowlist for Crowdin Apps

If you configured an IP allowlist for your Crowdin Enterprise organization, you need to add your Crowdin app’s IP address to your organization’s IP allowlist. Also, implement the same IP allowlist in your Crowdin app for improved security. In this case, make sure to add the following IP addresses of Crowdin Enterprise:

Se også

Var denne artikel nyttig?