OAuth 2.0-applikationsregistrering

En FoxIDs OAuth 2.0-applikationsregistrering repræsenterer enten en beskyttet API-resource eller en backendapplikation, der bruger maskine-til-maskine-autentificering. Registrer et API for at udstille scopes, og registrer en Backend Application for at hente access tokens med Client Credentials Grant.

FoxIDs OAuth 2.0-applikationsregistrering

Vigtige funktioner omfatter flere API-audiences i ét access token, scope-baseret API-adgang, klientautentificering med secrets eller certifikater, claim-transformation og token exchange.

Konfiguration

I FoxIDs Control:

  1. Vælg det miljø, hvor API'et eller backendapplikationen skal registreres.
  2. Åbn Applications, og klik på Add application.
  3. Aktivér Show all options.
  4. Vælg API eller Backend Application.
  5. Konfigurer applikationen, og klik på Create.

Vælg en OAuth 2.0-applikationstype

Efter oprettelsen kan du klikke på Change application for at gennemse eller ændre alle applikationsindstillinger. Aktivér kun Show advanced, når den nødvendige indstilling er avanceret.

OAuth 2.0 API

Vælg API for at registrere et beskyttet backend-API som en OAuth 2.0-resource. API-registreringen definerer dets resource name, scopes og den audience, der bruges i access tokens.

Følgende eksempel registrerer et Customers API:

  1. Angiv Customers som Name.
  2. Angiv customers-api som Resource name.
  3. Tilføj scopes read og write.
  4. Klik på Create.

Opret et OAuth 2.0-API med scopes

De fulde scope-værdier er customers-api:read og customers-api:write. En klient anmoder om en eller begge værdier fra token-endpointet, og det resulterende access token indeholder customers-api som audience.

API'et skal validere access tokenets issuer, audience, levetid og påkrævede scope. En kaldende applikation tildeles adgang separat ved at tilføje API-resourcen og de scopes, den må anmode om.

Backendapplikation og Client Credentials Grant

Vælg Backend Application til en service, daemon, planlagt opgave eller baggrundsproces. FoxIDs opretter den som en fortrolig klient, der anmoder om et access token uden en bruger ved hjælp af Client Credentials Grant.

Følgende eksempel opretter den kaldende service:

  1. Angiv Backend service som Name.
  2. Angiv backend-service som Client ID, eller lad FoxIDs generere det.
  3. Kopiér den genererede Client secret, inden du forlader oprettelsesresultatet. Den fulde genererede secret vises kun under oprettelsen.
  4. Klik på Create.

Opret en OAuth 2.0-backendapplikation

Giv adgang til et API

Når backendapplikationen er oprettet, skal du klikke på Change application og konfigurere Resource and scopes under fanen OAuth 2.0 Client:

  1. Lad Default resource 'backend-service' for the application itself være fravalgt, fordi klienten ikke fungerer som sit eget API.
  2. Klik på Add Resource and scopes.
  3. Angiv customers-api som Resource.
  4. Tilføj scopes read og write.
  5. Klik på Update.

Giv en backendapplikation adgang til at kalde Customers API'et

Backendapplikationen kan nu anmode om customers-api:read, customers-api:write eller begge. De scopes, klienten anmoder om, valideres mod de scopes, der er udstillet af API-registreringen.

Access tokens kan indeholde flere audiences og dermed give adgang til flere API'er, der er registreret som OAuth 2.0-resources i FoxIDs. Tilføj hver påkrævet resource og dens tilladte scopes til backendapplikationen.

Klientautentificering

Standardmetoden til klientautentificering ved token-endpointet er client secret post. For at ændre den skal du klikke på Change application, aktivere Show advanced og vælge:

  • client secret basic for at sende client ID og secret med HTTP Basic-autentificering.
  • client secret post for at sende client ID og secret i token request body.
  • private key JWT for at autentificere med en signeret client assertion.

Konfigurer OAuth 2.0-klientautentificering

Der kan konfigureres op til 10 secrets og 4 klientcertifikater for at understøtte rotation af legitimationsoplysninger. Opbevar secrets og private nøgler sikkert, og skriv dem ikke i kildekode eller logs.

Følgende request bruger standardmetoden client secret post til at hente et access token til Customers API'et:

POST https://foxids.com/tenant-x/environment-y/backend-service(*)/oauth/token HTTP/1.1
Host: foxids.com
Content-Type: application/x-www-form-urlencoded

client_id=backend-service
&client_secret=<client-secret>
&grant_type=client_credentials
&scope=customers-api%3Aread

Token-responset indeholder et access token til customers-api-audience med scopet customers-api:read.

Autentificer med et certifikat

Vælg private key JWT, og upload klientcertifikatet, efter at backendapplikationen er oprettet. Klienten beholder den tilhørende private nøgle og signerer en kortlivet client assertion for hver token request.

Registrer overlappende certifikater, før du udskifter et certifikat, der udløber, så klienten kan rotere nøgler uden at afbryde token requests.

Client secrets

FoxIDs hasher client secrets med den konfigurerede password hash-algoritme. En genereret secret kan ikke gendannes efter oprettelsen. For secrets, der er længere end 20 tegn, gemmer FoxIDs de første tre tegn som identifikationsoplysninger og viser dem med en ellipse, for eksempel 6j9....

Tilføj en ny secret, før du fjerner den tidligere, for at rotere legitimationsoplysninger uden nedetid.

Claims, der udstedes til en klient eller et API, kan ændres med claim transforms og claim tasks.

Resource Owner Password Credentials Grant

FoxIDs understøtter ikke Resource Owner Password Credentials Grant, fordi det kræver, at applikationen håndterer brugerens adgangskode, og det er ikke egnet til sikker, moderne autentificering.