DokumentationAnmelden mit Learnya

Betreiben

Anmelden mit Learnya

Lassen Sie Personen sich mit ihrem Learnya-Konto bei Ihrer Anwendung anmelden. OAuth 2.1 und OpenID Connect, auf auth.learnya.ai.

Auf dieser Seite
  1. Das Discovery-Dokument
  2. Welchen Flow wählen
  3. Autorisierungscode mit PKCE
  4. Ein Token prüfen
  5. Ebenfalls verfügbar
  6. Ihre Anwendung registrieren

Das Discovery-Dokument

Alles, was eine OpenID-Connect-Bibliothek braucht, ist unter einer Adresse veröffentlicht. Die meisten lassen sich allein damit konfigurieren.

cURL
curl https://auth.learnya.ai/.well-known/openid-configuration
Antwort
{
  "issuer": "https://auth.learnya.ai",
  "authorization_endpoint": "https://auth.learnya.ai/authorize",
  "token_endpoint": "https://auth.learnya.ai/token",
  "jwks_uri": "https://auth.learnya.ai/.well-known/jwks.json",
  "grant_types_supported": [
    "authorization_code",
    "refresh_token",
    "client_credentials",
    "urn:ietf:params:oauth:grant-type:token-exchange"
  ],
  "code_challenge_methods_supported": ["S256"]
}

Welchen Flow wählen

Ihr FallOAuth-Flow
Eine Person meldet sich bei Ihrer Anwendung anauthorization_code
Ihr Server handelt im eigenen Namenclient_credentials
Eine Sitzung offen haltenrefresh_token
Ein Dienst handelt im Auftrag eines anderentoken-exchange

Autorisierungscode mit PKCE

PKCE ist für alle Anwendungen Pflicht, mit der Methode S256. Die Redirect-URI muss exakt der registrierten entsprechen.

  1. Die Person zur Anmeldung weiterleiten

    HTTP
    GET https://auth.learnya.ai/authorize
      ?response_type=code
      &client_id=lyc_your_client
      &redirect_uri=https://app.example.ch/callback
      &scope=openid profile email offline_access
      &state=a value you check on return
      &code_challenge=BASE64URL(SHA256(verifier))
      &code_challenge_method=S256
  2. Den Code gegen Tokens tauschen

    cURL
    curl https://auth.learnya.ai/token \
      -u "lyc_your_client:$CLIENT_SECRET" \
      -d grant_type=authorization_code \
      -d code=the_code_from_the_callback \
      -d redirect_uri=https://app.example.ch/callback \
      -d code_verifier=the_verifier_you_generated
    Antwort
    {
      "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6ImF0K2p3dCJ9…",
      "token_type": "Bearer",
      "expires_in": 900,
      "refresh_token": "…",
      "id_token": "eyJhbGciOiJSUzI1NiJ9…",
      "scope": "openid profile email offline_access"
    }

Ein Token prüfen

Zugriffstokens sind mit RS256 signierte JWT. Prüfen Sie sie mit den veröffentlichten öffentlichen Schlüsseln, ohne gemeinsames Secret. Fünf Prüfungen zählen: der Algorithmus fest auf RS256, der Typ at+jwt, der Aussteller, Ihre Audience und der Ablauf.

import jwt from "jsonwebtoken"

const ISSUER = "https://auth.learnya.ai"
const AUDIENCE = "https://api.example.ch"

// keyFor maps a kid to a public key from the JWKS.
export function verifyAccessToken(token, keyFor) {
  const decoded = jwt.decode(token, { complete: true })
  if (!decoded?.header.kid) throw new Error("no kid in header")
  if (decoded.header.typ !== "at+jwt")
    throw new Error("not an access token")
  return jwt.verify(token, keyFor(decoded.header.kid), {
    algorithms: ["RS256"],
    issuer: ISSUER,
    audience: AUDIENCE,
  })
}

Ebenfalls verfügbar

FunktionFür
Pushed Authorization RequestsDie Anfrage direkt an den Server senden statt in der URL
DPoPEin Token an einen Schlüssel binden, den Ihre Anwendung besitzt
Widerruf und IntrospectionEin Token sperren oder abfragen, ob es noch gültig ist
AbmeldungDie Learnya-Sitzung aus Ihrer Anwendung beenden

Ihre Anwendung registrieren

Jede Anwendung wird von Learnya registriert, mit ihren exakten Redirect-URIs. Schreiben Sie uns den Namen Ihrer Anwendung, ihre Redirect-URIs und die Angaben, die Sie über die Person benötigen.

Anwendung registrieren