Bessere Twilio-Authentifizierung mit API-Schlüssel
Lesezeit: 4 Minuten
Twilio generiert einen Kontostring-Identifikator (SID) und ein Authentifizierungstoken, wenn Sie ein Twilio-Konto erstellen. Mit diesen Anmeldeinformationen können Sie alle in der Twilio-API verfügbaren Funktionen ausführen.
Jedes Mal, wenn Sie die Konto-SID und das Authentifizierungstoken an ein Gerät oder eine Person weitergeben, steigt das Risiko, dass diese Anmeldeinformationen kompromittiert werden. Gut, dass Twilio Funktionen bietet, um dieses Risiko zu minimieren. In diesem Artikel geht es um:
- Authentifizierungstoken
- Unterkonten
- API-Schlüssel
Authentifizierungstoken
Wenn Sie ein neues (Unter-)Konto erstellen, generiert Twilio eine Konto-SID und ein Authentifizierungstoken für dieses Konto. Diese Anmeldeinformationen finden Sie auf der Dashboard-Seite Ihres Kontos:
Diese Anmeldeinformationen werden häufig für die Kommunikation mit Twilio über CLI, SDKs oder die API direkt verwendet. Standardmäßig gibt es nur ein Authentifizierungstoken. Daher sollten Sie es nicht weitergeben, um das Risiko einer Kompromittierung zu minimieren. Wenn das Authentifizierungstoken aus irgendeinem Grund kompromittiert wird, erstellen Sie ein sekundäres Authentifizierungstoken, damit das alte unbrauchbar wird.
Um ein sekundäres Authentifizierungstoken zu erstellen, gehen Sie folgendermaßen vor:
- Klicken Sie auf Account (Konto) in der oberen rechten Navigation.
- Klicken Sie im Untermenü auf API keys & tokens (API-Schlüssel und Token).
- Scrollen Sie bis zum Ende der Seite und klicken Sie auf Request a Secondary Token (Sekundäres Token anfordern).
Sobald Sie ein sekundäres Token haben, können Sie dieses zum primären Token machen. Dadurch wird das alte primäre Token entfernt und unbrauchbar gemacht, wie unten dargestellt.
Leider können Sie diese Token nur über die Twilio-Konsole erneuern. Token mit API-Anmeldeinformationen können mit der API nicht erneuert werden. Allerdings können Sie API-Schlüssel erneuern. Darauf gehen wir später in diesem Beitrag ein.
Unterkonten
Unterkonten sind normale Konten, gehören aber zum übergeordneten Konto und können von diesem verwaltet werden. Anstelle der Authentifizierungstoken des übergeordneten Kontos können Sie die Authentifizierungstoken des Unterkontos verwenden. Wenn das Authentifizierungstoken des Unterkontos kompromittiert wird, können Sie damit nicht mehr auf Ressourcen des übergeordneten Kontos oder andere Unterkonten zugreifen.
Um ein Unterkonto mit der Twilio-Konsole zu erstellen, gehen Sie folgendermaßen vor:
- Klicken Sie auf Account (Konto) in der oberen rechten Navigation.
- Klicken Sie im Untermenü auf Subaccounts (Unterkonten).
- Klicken Sie auf das Plus-Symbol (+), wenn Sie bereits andere Unterkonten haben. Andernfalls klicken Sie auf die Schaltfläche Create new Subaccount (Neues Unterkonto erstellen).
- Geben Sie einen Anzeigenamen für das Unterkonto ein.
- Klicken Sie auf die Schaltfläche Create (Erstellen).
Sie können Unterkonten auch mit der CLI, dem SDK und der API von Twilio erstellen, siehe Twilio-Dokumentation.
API-Schlüssel
API-Schlüssel sind die bevorzugte Methode zur Authentifizierung bei Diensten von Twilio. Es gibt zwei Arten von API-Schlüsseln: API-Standard- und Hauptschlüssel.
Mit API-Standardschlüsseln haben Sie Zugriff auf alle Funktionen der Twilio-API, außer der Verwaltung von API-Schlüsseln, Kontokonfigurationen und Unterkonten.
API-Hauptschlüssel haben denselben Zugriff wie Standardschlüssel, können aber auch API-Schlüssel, Kontokonfigurationen und Unterkonten verwalten. Mit API-Hauptschlüsseln haben Sie die gleichen Zugriffsrechte wie mit Authentifizierungstoken.
Gehen Sie folgendermaßen vor, um API-Schlüssel mit der Twilio-Konsole zu erstellen:
- Klicken Sie auf Account (Konto) in der oberen rechten Navigation.
- Klicken Sie im Untermenü auf API keys & tokens (API-Schlüssel und Token).
- Klicken Sie auf die Schaltfläche Create API key (API-Schlüssel erstellen).
- Geben Sie einen Anzeigenamen für Ihren API-Schlüssel ein.
- Wählen Sie die Ihnen am nächsten gelegene Region.
- Wählen Sie aus, ob der Schlüsseltyp Standard oder Haupt sein soll.
Sie können API-Standardschlüssel auch mit der CLI, dem SDK und der API von Twilio erstellen, siehe Twilio-Dokumentation. Um API-Schlüssel zu verwalten, müssen Sie sich mit einem Authentifizierungstoken oder einem API-Hauptschlüssel authentifizieren.
API-Schlüssel erneuern
Einer der Vorteile von API-Schlüsseln gegenüber API-Anmeldeinformationen ist, dass Sie die API zum Erstellen und Löschen von API-Schlüsseln verwenden können. Auf diese Weise können Sie API-Schlüssel vorbeugend programmgesteuert erneuern.
Im Folgenden wird beschrieben, wie Sie die API-Schlüssel mithilfe der Twilio-CLI und PowerShell erneuern:
Hinweis: Stellen Sie sicher, dass Sie die Twilio-CLI installiert haben, bevor Sie diesen Code ausführen.
WARNUNG: Stellen Sie sicher, dass Sie Ihre Anwendung entwickeln und testen, um sicherzustellen, dass der API-Schlüssel ordnungsgemäß erneuert wird.
Im Gegensatz zu API-Anmeldeinformationen, bei denen nur zwei (primäre und sekundäre) Token pro Konto zulässig sind, können Sie beliebig viele API-Schlüssel erstellen. Anstelle von API-Anmeldeinformationen sollten Sie daher API-Schlüssel an Ihr Team und Anwendungen weitergeben. Auf diese Weise können Sie die API-Schlüssel sicher widerrufen, wenn sie nicht mehr verwendet werden.
Von Authentifizierungstoken zu API-Schlüsseln wechseln
Wenn Sie in Ihrem Code bereits Authentifizierungstoken verwenden, können Sie mit nur minimalen Zeilenänderungen zu API-Schlüsseln wechseln. Beachten Sie, dass Sie einige Ihrer Authentifizierungstoken von der Twilio-Konsole abrufen und sie lokal in Umgebungsvariablen speichern müssen, damit der Code ausgeführt werden kann. Weitere Informationen dazu finden Sie in den Anweisungen zum sicheren Speichern von Twilio-Anmeldeinformationen.
Hier sehen Sie, wie Sie sich authentifizieren und eine SMS mit den API-Anmeldeinformationen in C# senden:
Geben Sie zunächst Ihre Konto-SID als username
-Parameter und das Authentifizierungstoken als password
-Paramater in TwilioClient.Init
ein. Senden Sie dann eine Textnachricht mit MessageResource.Create
.
Aktualisieren Sie die an TwilioClient.Init
übergebenen Parameter, um sich mit Ihrem API-Schlüssel und nicht mit den API-Anmeldeinformationen zu authentifizieren:
Geben Sie zunächst anstelle der Konto-SID die SID des API-Schlüssels als username
-Parameter ein. Geben Sie dann anstelle des Authentifizierungstokens den geheimen API-Schlüssel als password
-Parameter ein. Geben Sie schließlich die Konto-SID als accountSid
-Parameter ein.
Zusammenfassung
Sie können sich mit der API von Twilio authentifizieren, indem Sie die Konto-ID als Nutzernamen und das primäre oder sekundäre Authentifizierungstoken verwenden. Wenn das primäre Token kompromittiert wird, können Sie das sekundäre Token zum primären Token machen. Dadurch verliert das alte primäre Token seine Gültigkeit.
Sie können Ihre Anmeldeinformationen schützen, indem Sie Ihr Konto in Unterkonten aufteilen. Wenn ein Autorisierungstoken oder ein API-Schlüssel für ein Unterkonto kompromittiert wird, kann mit dem Token nur auf Ressourcen des Unterkontos zugegriffen werden.
API-Schlüssel sind mittlerweile die bevorzugte Methode zur Authentifizierung bei der API von Twilio. Sie können beliebig viele API-Schlüssel erstellen und entfernen, wenn sie kompromittiert sind oder nicht mehr verwendet werden.
Niels Swimberghe ist ein belgischer Full Stack Developer und technischer Content Creator, der in den USA arbeitet. Folgen Sie Niels auf X (ehemals Twitter) unter @RealSwimburger und lesen Sie Niels‘ Blog über .NET, Azure, Webentwicklung und mehr auf swimburger.net.
Verwandte Posts
Ähnliche Ressourcen
Twilio Docs
Von APIs über SDKs bis hin zu Beispiel-Apps
API-Referenzdokumentation, SDKs, Hilfsbibliotheken, Schnellstarts und Tutorials für Ihre Sprache und Plattform.
Ressourcen-Center
Die neuesten E-Books, Branchenberichte und Webinare
Lernen Sie von Customer-Engagement-Experten, um Ihre eigene Kommunikation zu verbessern.
Ahoy
Twilios Entwickler-Community-Hub
Best Practices, Codebeispiele und Inspiration zum Aufbau von Kommunikations- und digitalen Interaktionserlebnissen.