OAuth 2.0-applikationsregistrering

En FoxIDs OAuth 2.0-applikationsregistrering representerar antingen en skyddad API-resource eller en backendapplikation som använder maskin-till-maskin-autentisering. Registrera ett API för att exponera scopes och registrera en Backend Application för att hämta access tokens med Client Credentials Grant.

FoxIDs OAuth 2.0-applikationsregistrering

Viktiga funktioner omfattar flera API-audiences i ett access token, scope-baserad API-åtkomst, klientautentisering med secrets eller certifikat, claim-transformation och token exchange.

Konfiguration

I FoxIDs Control:

  1. Välj den miljö där API:et eller backendapplikationen ska registreras.
  2. Öppna Applications och klicka på Add application.
  3. Aktivera Show all options.
  4. Välj API eller Backend Application.
  5. Konfigurera applikationen och klicka på Create.

Välj en OAuth 2.0-applikationstyp

Efter att applikationen har skapats kan du klicka på Change application för att granska eller ändra alla applikationsinställningar. Aktivera endast Show advanced när den inställning som behövs är avancerad.

OAuth 2.0 API

Välj API för att registrera ett skyddat backend-API som en OAuth 2.0-resource. API-registreringen definierar dess resource name, scopes och den audience som används i access tokens.

Följande exempel registrerar ett Customers API:

  1. Ange Customers som Name.
  2. Ange customers-api som Resource name.
  3. Lägg till scopes read och write.
  4. Klicka på Create.

Skapa ett OAuth 2.0-API med scopes

De fullständiga scope-värdena är customers-api:read och customers-api:write. En klient begär ett eller båda värdena från token-endpointen och det resulterande access token innehåller customers-api som audience.

API:et måste validera access tokenets issuer, audience, livslängd och obligatoriska scope. En anropande applikation beviljas åtkomst separat genom att lägga till API-resourcen och de scopes som den får begära.

Backendapplikation och Client Credentials Grant

Välj Backend Application för en tjänst, daemon, schemalagd uppgift eller bakgrundsprocess. FoxIDs skapar den som en konfidentiell klient som begär ett access token utan en användare genom Client Credentials Grant.

Följande exempel skapar den anropande tjänsten:

  1. Ange Backend service som Name.
  2. Ange backend-service som Client ID eller låt FoxIDs generera det.
  3. Kopiera den genererade Client secret innan du lämnar resultatet av skapandet. Hela den genererade secreten visas endast när applikationen skapas.
  4. Klicka på Create.

Skapa en OAuth 2.0-backendapplikation

Ge åtkomst till ett API

När backendapplikationen har skapats klickar du på Change application och konfigurerar Resource and scopes på fliken OAuth 2.0 Client:

  1. Låt Default resource 'backend-service' for the application itself vara avmarkerad eftersom klienten inte fungerar som sitt eget API.
  2. Klicka på Add Resource and scopes.
  3. Ange customers-api som Resource.
  4. Lägg till scopes read och write.
  5. Klicka på Update.

Tillåt en backendapplikation att anropa Customers API

Backendapplikationen kan nu begära customers-api:read, customers-api:write eller båda. De scopes som klienten begär valideras mot de scopes som exponeras av API-registreringen.

Access tokens kan innehålla flera audiences och därmed ge åtkomst till flera API:er som registrerats som OAuth 2.0-resources i FoxIDs. Lägg till varje nödvändig resource och dess tillåtna scopes i backendapplikationen.

Klientautentisering

Standardmetoden för klientautentisering vid token-endpointen är client secret post. För att ändra den klickar du på Change application, aktiverar Show advanced och väljer:

  • client secret basic för att skicka client ID och secret med HTTP Basic-autentisering.
  • client secret post för att skicka client ID och secret i token request body.
  • private key JWT för att autentisera med en signerad client assertion.

Konfigurera OAuth 2.0-klientautentisering

Upp till 10 secrets och 4 klientcertifikat kan konfigureras för att stödja rotation av autentiseringsuppgifter. Förvara secrets och privata nycklar säkert och skriv dem inte i källkod eller loggar.

Följande request använder standardmetoden client secret post för att hämta ett access token för Customers API:

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-svaret innehåller ett access token för customers-api-audience med scopet customers-api:read.

Autentisera med ett certifikat

Välj private key JWT och ladda upp klientcertifikatet efter att backendapplikationen har skapats. Klienten behåller motsvarande privata nyckel och signerar en kortlivad client assertion för varje token request.

Registrera överlappande certifikat innan du ersätter ett certifikat som är på väg att upphöra, så att klienten kan rotera nycklar utan att avbryta token requests.

Client secrets

FoxIDs hashar client secrets med den konfigurerade password hash-algoritmen. En genererad secret kan inte återställas efter att den har skapats. För secrets som är längre än 20 tecken behåller FoxIDs de tre första tecknen som identifieringsinformation och visar dem med en ellips, till exempel 6j9....

Lägg till en ersättande secret innan du tar bort den tidigare för att rotera autentiseringsuppgifter utan driftstopp.

Claims som utfärdas till en klient eller ett API kan ändras med claim transforms och claim tasks.

Resource Owner Password Credentials Grant

FoxIDs stöder inte Resource Owner Password Credentials Grant eftersom det kräver att applikationen hanterar användarens lösenord och inte lämpar sig för säker, modern autentisering.