SMS-Anbieter

FoxIDs unterstützt das Senden von SMS-Nachrichten mit Access URL, Gateway API, Smstools und Telia SMS Gateway. Der SMS-Anbieter kann als SMS-Anbieter in jeder Umgebung oder generell in der FoxIDs Site-Konfiguration konfiguriert werden.

FoxIDs sendet SMS-Nachrichten an Benutzer für Verifizierungscodes, passwortlose Anmeldung und Multi-Faktor-Authentifizierung, wenn SMS im Login-Flow aktiviert ist.

FoxIDs enthält Standard-SMS-Anbieter für unterstützte Anbieter-APIs und einen generischen Access URL SMS-Anbieter für Anbieter, die nicht integriert sind. Verwenden Sie die Standardanbieter, wenn die Anbieter-API einer der unterstützten Integrationen entspricht. Verwenden Sie Access URL, wenn der Anbieter eine HTTPS GET-Anfrage mit anbieterspezifischen Query-Parametern empfangen kann.

Access URL

Der Access URL-Anbieter ist ein generischer Anbieter für flexible SMS-Integrationen. Er ruft einen anbieterspezifischen HTTPS-Endpunkt mit den Query-Parametern auf, die der konkrete SMS-Anbieter benötigt. Die API URL ist eine absolute HTTPS base URL ohne Query-Parameter. Query-Parameter werden separat konfiguriert und können feste Werte oder Platzhalter verwenden.

Unterstützte Platzhalter:

  • {phone} - die Telefonnummer des Benutzers.
  • {message} - der SMS-Nachrichtentext.
  • {fromName} - der konfigurierte SMS-Absendername.

Beispiel einer Access URL-Konfiguration:

  • API URL: https://some-provider.dk/sms/
  • username = xxxxxx
  • password = yyyyyy
  • recipient = {phone}
  • from = zzzzzz oder {fromName}
  • message = {message}

FoxIDs sendet die Anfrage als HTTP GET und URL-encodiert jeden Query-Parameterwert. Die API URL wird zusammen mit der Telefonnummer protokolliert. Query-Parameter werden nicht protokolliert. Wenn der Anbieter einen Fehler zurückgibt, protokolliert FoxIDs Telefonnummer, SMS-Nachricht, HTTP-Statuscode und die Antwort des Anbieters.

SMS-Anbieter in der Umgebung konfigurieren

Der SMS-Anbieter kann in jeder Umgebung konfiguriert werden, wobei der Absendername erforderlich ist. Wenn ein SMS-Anbieter in der Umgebung konfiguriert ist, wird er anstelle eines generell konfigurierten SMS-Anbieters verwendet.

Access URL

Konfigurieren Sie Access URL mit einer API URL und den Query-Parametern, die der SMS-Anbieter benötigt. Die API URL muss eine absolute HTTPS base URL ohne Query-Parameter sein. Fügen Sie jeden Query-Parameter separat hinzu und verwenden Sie Platzhalter, wenn der Wert beim Senden eingesetzt werden soll.

Access URL SMS-Anbieter in der Umgebung konfigurieren

Erforderliche Werte:

  • Type: AccessUrl
  • Absendername
  • API URL
  • Query-Parameter mit mindestens einem {phone} Platzhalter und einem {message} Platzhalter

Gateway API

Konfigurieren Sie Gateway API mit dem Anbieter-Endpunkt und Token. Der Absendername wird als SMS-Absender gesendet, und das optionale Label wird an Gateway API gesendet.

Gateway API SMS-Anbieter in der Umgebung konfigurieren

Erforderliche Werte:

  • Type: GatewayApi
  • Absendername
  • API URL
  • Client secret

Optionale Werte:

  • Label

Smstools

Konfigurieren Sie Smstools mit dem Anbieter-Endpunkt, Client ID und Client secret. Der Absendername wird als SMS-Absender gesendet.

Smstools SMS-Anbieter in der Umgebung konfigurieren

Erforderliche Werte:

  • Type: Smstools
  • Absendername
  • API URL
  • Client ID
  • Client secret

Telia SMS Gateway

Konfigurieren Sie Telia SMS Gateway mit dem Anbieter-Endpunkt, sender address, API key und mTLS-Zertifikat. Der Absendername wird als SMS-Absendername gesendet, und die Client ID wird als sender address gesendet.

Telia SMS Gateway-Anbieter in der Umgebung konfigurieren

Erforderliche Werte:

  • Type: TeliaSmsGateway
  • Absendername
  • API URL
  • Client ID (sender address)
  • Client secret (API key)
  • mTLS-Zertifikat

SMS-Anbieter generell konfigurieren

Der SMS-Anbieter kann optional generell in den FoxIDs Site Application Settings konfiguriert werden. Der Absendername ist erforderlich.

Die API URL muss für alle SMS-Anbieter eine absolute HTTPS URL sein. Für Access URL muss die API URL außerdem eine base URL ohne Query-Parameter sein, und die Query-Parameter müssen mindestens einen {phone} Platzhalter und einen {message} Platzhalter enthalten.

Access URL

Access URL mit Application Settings konfigurieren:

"Settings": {
  "Sms": {
    "Type": "AccessUrl",
    "FromName": "My-sender",
    "ApiUrl": "https://some-provider.dk/sms/",
    "Parameters": [
      {
        "Name": "username",
        "Value": "xxxxxx"
      },
      {
        "Name": "password",
        "Value": "yyyyyy"
      },
      {
        "Name": "recipient",
        "Value": "{phone}"
      },
      {
        "Name": "from",
        "Value": "{fromName}"
      },
      {
        "Name": "message",
        "Value": "{message}"
      }
    ]
  }
}

Konfigurieren Sie Access URL Query-Parameter in Parameters. Jeder Parameter hat einen Name und einen Value. Die Query-Parameter müssen mindestens einen {phone} Platzhalter und einen {message} Platzhalter enthalten. Die Platzhalter {phone}, {message} und {fromName} können in Parameterwerten verwendet werden.

Wenn FoxIDs in Kubernetes bereitgestellt wird, konfigurieren Sie dieselben Application Settings als Umgebungsvariablen im foxids-Container. Verwenden Sie doppelte Unterstriche (__), um Konfigurationsebenen zu trennen. Die Parameters-Einstellung ist eine Liste, daher verwendet jeder Query-Parameter einen nullbasierten Index im Variablennamen:

env:
  - name: "Settings__Sms__Type"
    value: "AccessUrl"
  - name: "Settings__Sms__FromName"
    value: "My-sender"
  - name: "Settings__Sms__ApiUrl"
    value: "https://some-provider.dk/sms/"
  - name: "Settings__Sms__Parameters__0__Name"
    value: "username"
  - name: "Settings__Sms__Parameters__0__Value"
    value: "xxxxxx"
  - name: "Settings__Sms__Parameters__1__Name"
    value: "password"
  - name: "Settings__Sms__Parameters__1__Value"
    valueFrom:
      secretKeyRef:
        name: sms-secret
        key: access-url-password
  - name: "Settings__Sms__Parameters__2__Name"
    value: "recipient"
  - name: "Settings__Sms__Parameters__2__Value"
    value: "{phone}"
  - name: "Settings__Sms__Parameters__3__Name"
    value: "from"
  - name: "Settings__Sms__Parameters__3__Value"
    value: "{fromName}"
  - name: "Settings__Sms__Parameters__4__Name"
    value: "message"
  - name: "Settings__Sms__Parameters__4__Value"
    value: "{message}"

Fügen Sie einen weiteren Query-Parameter hinzu, indem Sie den nächsten Index verwenden, zum Beispiel Settings__Sms__Parameters__5__Name und Settings__Sms__Parameters__5__Value. Sensible feste Werte wie Passwörter oder API keys sollten aus einem Kubernetes Secret mit valueFrom.secretKeyRef gelesen werden.

Gateway API

Gateway API mit Application Settings konfigurieren:

"Settings": {
  "Sms": {
    "Type": "GatewayApi",
    "FromName": "My-sender",
    "ApiUrl": "https://gatewayapi.eu/rest/mtsms",
    "ClientSecret": "gateway-api-token",
    "Label": FoxIDs
  }
}

ClientSecret wird als Gateway API-Token gesendet. Label ist optional.

Smstools

Smstools mit Application Settings konfigurieren:

"Settings": {
  "Sms": {
    "Type": "Smstools",
    "FromName": "My-sender",
    "ApiUrl": "https://app.smstools.com",
    "ClientId": "client-id",
    "ClientSecret": "client-secret"
  }
}

Telia SMS Gateway

Telia SMS Gateway mit Application Settings konfigurieren:

"Settings": {
  "Sms": {
    "Type": "TeliaSmsGateway",
    "FromName": "My-sender",
    "ApiUrl": "https://smsgw.teliamobile.dk:12123/messaging/v1/outbound/12345/requests",
    "ClientId": "12345",
    "ClientSecret": "b7dc08b6-54c8-46c2-ba37-21855d0acca4",
    "CertificatePemCrt": "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----",
    "CertificatePemKey": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----"
  }
}

ClientId wird als sender address gesendet. ClientSecret wird als API key gesendet. Das Zertifikat und der private Schlüssel werden für mTLS verwendet.