Dodawanie uwierzytelniania podczas wywoływania niestandardowych interfejsów API z usługi Azure Logic Apps
Aby zwiększyć bezpieczeństwo wywołań interfejsów API, możesz skonfigurować uwierzytelnianie firmy Microsoft Entra za pośrednictwem witryny Azure Portal, aby nie trzeba było aktualizować kodu. Alternatywnie można wymagać i wymuszać uwierzytelnianie za pomocą kodu interfejsu API.
Uwierzytelnianie można dodać w następujący sposób:
Brak zmian kodu: ochrona interfejsu API za pomocą identyfikatora Entra firmy Microsoft za pośrednictwem witryny Azure Portal, więc nie trzeba aktualizować kodu ani ponownie wdrażać interfejsu API.
Uwaga
Domyślnie uwierzytelnianie firmy Microsoft Entra wybrane w witrynie Azure Portal nie zapewnia szczegółowej autoryzacji. Na przykład to uwierzytelnianie blokuje interfejs API tylko dla określonej dzierżawy, a nie dla określonego użytkownika lub aplikacji.
Zaktualizuj kod interfejsu API: Chroń interfejs API, wymuszając uwierzytelnianie certyfikatów, uwierzytelnianie podstawowe lub uwierzytelnianie firmy Microsoft Entra za pomocą kodu.
Uwierzytelnianie wywołań interfejsu API bez zmieniania kodu
Poniżej przedstawiono ogólne kroki dla tej metody:
Utwórz dwie tożsamości aplikacji Firmy Microsoft Entra: jedną dla zasobu aplikacji logiki i jedną dla aplikacji internetowej (lub aplikacji interfejsu API).
Aby uwierzytelnić wywołania interfejsu API, użyj poświadczeń (identyfikatora klienta i wpisu tajnego) dla jednostki usługi skojarzonej z tożsamością aplikacji Entra firmy Microsoft dla aplikacji logiki.
Uwzględnij identyfikatory aplikacji w definicji przepływu pracy aplikacji logiki.
Część 1. Tworzenie tożsamości aplikacji Microsoft Entra dla aplikacji logiki
Zasób aplikacji logiki używa tej tożsamości aplikacji Entra firmy Microsoft do uwierzytelniania względem identyfikatora Entra firmy Microsoft. Musisz skonfigurować tę tożsamość tylko raz dla katalogu. Możesz na przykład użyć tej samej tożsamości dla wszystkich aplikacji logiki, mimo że można tworzyć unikatowe tożsamości dla każdej aplikacji logiki. Te tożsamości można skonfigurować w witrynie Azure Portal lub użyć programu PowerShell.
W witrynie Azure Portal wybierz pozycję Microsoft Entra ID.
Upewnij się, że znajdujesz się w tym samym katalogu co aplikacja internetowa lub aplikacja interfejsu API.
Napiwek
Aby przełączyć katalogi, wybierz swój profil i wybierz inny katalog. Możesz też wybrać pozycję Przegląd>Przełącz katalog.
W menu katalogu w obszarze Zarządzaj wybierz pozycję Rejestracje aplikacji> Nowa rejestracja.
Lista Wszystkie rejestracje zawiera wszystkie rejestracje aplikacji w katalogu. Aby wyświetlić tylko rejestracje aplikacji, wybierz pozycję Aplikacje należące.
Podaj nazwę aplikacji logiki dla tożsamości aplikacji logiki. Wybierz obsługiwane typy kont. W polu Identyfikator URI przekierowania wybierz pozycję Sieć Web, podaj unikatowy adres URL, w którym ma zostać zwrócona odpowiedź uwierzytelniania, a następnie wybierz pozycję Zarejestruj.
Lista Aplikacje należące do użytkownika zawiera teraz utworzoną tożsamość aplikacji. Jeśli ta tożsamość nie jest wyświetlana, na pasku narzędzi wybierz pozycję Odśwież.
Z listy rejestracje aplikacji wybierz nową tożsamość aplikacji.
W menu nawigacji tożsamości aplikacji wybierz pozycję Przegląd.
W okienku Przegląd w obszarze Podstawy skopiuj i zapisz identyfikator aplikacji, który ma być używany jako "identyfikator klienta" dla aplikacji logiki w części 3.
W menu nawigacji tożsamości aplikacji wybierz pozycję Certyfikaty i wpisy tajne.
Na karcie Wpisy tajne klienta wybierz pozycję Nowy klucz tajny klienta.
W polu Opis podaj nazwę wpisu tajnego. W obszarze Wygasa wybierz czas trwania wpisu tajnego. Gdy wszystko będzie gotowe, wybierz pozycję Dodaj.
Utworzony wpis tajny działa jako "wpis tajny" lub hasło tożsamości aplikacji logiki.
W okienku Certyfikaty i wpisy tajne w obszarze Wpisy tajne klienta wpis tajny jest teraz wyświetlany wraz z wartością wpisu tajnego i identyfikatorem wpisu tajnego.
Skopiuj wartość wpisu tajnego do późniejszego użycia. Podczas konfigurowania aplikacji logiki w części 3 należy określić tę wartość jako "wpis tajny" lub hasło.
Część 2. Tworzenie tożsamości aplikacji Entra firmy Microsoft dla aplikacji internetowej lub aplikacji interfejsu API
Jeśli aplikacja internetowa lub aplikacja interfejsu API jest już wdrożona, możesz włączyć uwierzytelnianie i utworzyć tożsamość aplikacji w witrynie Azure Portal. W przeciwnym razie można włączyć uwierzytelnianie podczas wdrażania przy użyciu szablonu usługi Azure Resource Manager.
Tworzenie tożsamości aplikacji dla wdrożonej aplikacji internetowej lub aplikacji interfejsu API w witrynie Azure Portal
W witrynie Azure Portal znajdź i wybierz aplikację internetową lub aplikację interfejsu API.
W obszarze Ustawienia wybierz pozycję Uwierzytelnianie Dodaj>dostawcę tożsamości.
Po otworzie okienka Dodawanie dostawcy tożsamości na karcie Podstawy z listy Dostawca tożsamości wybierz pozycję Microsoft, aby używać tożsamości usługi Microsoft Entra, a następnie wybierz pozycję Dodaj.
Teraz utwórz tożsamość aplikacji dla aplikacji internetowej lub aplikacji interfejsu API w następujący sposób:
W polu Typ rejestracji aplikacji wybierz pozycję Utwórz nową rejestrację aplikacji.
W polu Nazwa podaj nazwę tożsamości aplikacji.
W obszarze Obsługiwane typy kont wybierz typy kont odpowiednie dla danego scenariusza.
W obszarze Ogranicz dostęp wybierz pozycję Wymagaj uwierzytelniania.
W przypadku nieuwierzytelnionych żądań wybierz opcję opartą na scenariuszu.
Gdy wszystko będzie gotowe, wybierz pozycję Dodaj.
Tożsamość aplikacji utworzona dla aplikacji internetowej lub aplikacji interfejsu API jest teraz wyświetlana w sekcji Dostawca tożsamości:
Napiwek
Jeśli tożsamość aplikacji nie jest wyświetlana, na pasku narzędzi wybierz pozycję Odśwież.
Teraz musisz znaleźć identyfikator aplikacji (klienta) i identyfikator dzierżawy dla tożsamości aplikacji utworzonej właśnie dla aplikacji internetowej lub aplikacji interfejsu API. Te identyfikatory są używane w części 3. W związku z tym wykonaj następujące kroki w witrynie Azure Portal.
Znajdowanie identyfikatora klienta i identyfikatora dzierżawy tożsamości aplikacji dla aplikacji internetowej lub aplikacji interfejsu API w witrynie Azure Portal
W menu nawigacji aplikacji internetowej wybierz pozycję Uwierzytelnianie.
W sekcji Identity provider (Dostawca tożsamości) znajdź wcześniej utworzoną tożsamość aplikacji. Wybierz nazwę tożsamości aplikacji.
Po otworze okienka Przegląd tożsamości aplikacji znajdź wartości identyfikatora aplikacji (klienta) i identyfikatora katalogu (dzierżawy). Skopiuj i zapisz wartości do użycia w części 3.
W razie potrzeby można również użyć identyfikatora GUID identyfikatora dzierżawy w szablonie wdrożenia aplikacji internetowej lub aplikacji interfejsu API. Ten identyfikator GUID to identyfikator GUID określonej dzierżawy ("identyfikator dzierżawy") i powinien zostać wyświetlony w tym adresie URL:
https://sts.windows.net/{GUID}
Konfigurowanie uwierzytelniania podczas wdrażania przy użyciu szablonu usługi Azure Resource Manager
Jeśli używasz szablonu usługi Azure Resource Manager (szablonu usługi ARM), nadal musisz utworzyć tożsamość aplikacji Entra firmy Microsoft dla aplikacji internetowej lub aplikacji interfejsu API, która różni się od tożsamości aplikacji logiki. Aby utworzyć tożsamość aplikacji, a następnie znaleźć identyfikator klienta i identyfikator dzierżawy, wykonaj poprzednie kroki opisane w części 2 dla witryny Azure Portal. Użyjesz zarówno identyfikatora klienta, jak i identyfikatora dzierżawy w szablonie wdrożenia aplikacji, a także w części 3.
Ważne
Podczas tworzenia tożsamości aplikacji Microsoft Entra dla aplikacji internetowej lub aplikacji interfejsu API należy użyć witryny Azure Portal, a nie programu PowerShell. Polecenie cmdlet programu PowerShell nie konfiguruje wymaganych uprawnień do logowania użytkowników do witryny internetowej.
Po otrzymaniu identyfikatora klienta i identyfikatora dzierżawy dołącz te identyfikatory jako podźródło aplikacji internetowej lub aplikacji interfejsu API w szablonie wdrożenia:
"resources": [
{
"apiVersion": "2015-08-01",
"name": "web",
"type": "config",
"dependsOn": ["[concat('Microsoft.Web/sites/','parameters('webAppName'))]"],
"properties": {
"siteAuthEnabled": true,
"siteAuthSettings": {
"clientId": "<client-ID>",
"issuer": "https://sts.windows.net/<tenant-ID>/"
}
}
}
]
Aby automatycznie wdrożyć pustą aplikację internetową i aplikację logiki wraz z uwierzytelnianiem firmy Microsoft Entra, wyświetl kompletny szablon tutaj lub wybierz następujący przycisk Wdróż na platformie Azure :
Część 3. Wypełnianie sekcji Autoryzacja w aplikacji logiki
Poprzedni szablon ma już skonfigurowaną tę sekcję autoryzacji, ale jeśli bezpośrednio tworzysz definicję aplikacji logiki, musisz dołączyć pełną sekcję autoryzacji.
Otwórz definicję aplikacji logiki w widoku kodu.
Przejdź do definicji akcji HTTP, znajdź sekcję Autoryzacja i dołącz następujące właściwości:
{
"tenant": "<tenant-ID>",
"audience": "<client-ID-from-Part-2-web-app-or-API app>",
"clientId": "<client-ID-from-Part-1-logic-app>",
"secret": "<secret-from-Part-1-logic-app>",
"type": "ActiveDirectoryOAuth"
}
Właściwości | Wymagania | opis |
---|---|---|
tenant |
Tak | Identyfikator GUID dzierżawy firmy Microsoft Entra |
audience |
Tak | Identyfikator GUID zasobu docelowego, do którego chcesz uzyskać dostęp, czyli identyfikator klienta z tożsamości aplikacji dla aplikacji internetowej lub aplikacji interfejsu API |
clientId |
Tak | Identyfikator GUID klienta żądający dostępu, czyli identyfikator klienta z tożsamości aplikacji dla aplikacji logiki |
secret |
Tak | Wpis tajny lub hasło z tożsamości aplikacji dla klienta, który żąda tokenu dostępu |
type |
Tak | Typ uwierzytelniania. W przypadku uwierzytelniania ActiveDirectoryOAuth wartość to ActiveDirectoryOAuth . |
Na przykład:
{
"actions": {
"HTTP": {
"inputs": {
"method": "POST",
"uri": "https://your-api-azurewebsites.net/api/your-method",
"authentication": {
"tenant": "tenant-ID",
"audience": "client-ID-from-azure-ad-app-for-web-app-or-api-app",
"clientId": "client-ID-from-azure-ad-app-for-logic-app",
"secret": "key-from-azure-ad-app-for-logic-app",
"type": "ActiveDirectoryOAuth"
}
}
}
}
}
Bezpieczne wywołania interfejsu API za pomocą kodu
Uwierzytelnianie certyfikatu
Aby zweryfikować przychodzące żądania z przepływu pracy aplikacji logiki do aplikacji internetowej lub aplikacji interfejsu API, możesz użyć certyfikatów klienta. Aby skonfigurować kod, dowiedz się , jak skonfigurować wzajemne uwierzytelnianie tls.
W sekcji Autoryzacja dołącz następujące właściwości:
{
"type": "ClientCertificate",
"password": "<password>",
"pfx": "<long-pfx-key>"
}
Właściwości | Wymagania | opis |
---|---|---|
type |
Tak | Typ uwierzytelniania. W przypadku certyfikatów klienta TLS/SSL wartość musi mieć wartość ClientCertificate . |
password |
Nie. | Hasło dostępu do certyfikatu klienta (plik PFX) |
pfx |
Tak | Zawartość zakodowana w formacie base64 certyfikatu klienta (plik PFX) |
Uwierzytelnianie podstawowe
Aby zweryfikować przychodzące żądania z aplikacji logiki do aplikacji internetowej lub aplikacji interfejsu API, możesz użyć uwierzytelniania podstawowego, takiego jak nazwa użytkownika i hasło. Uwierzytelnianie podstawowe jest typowym wzorcem i można użyć tego uwierzytelniania w dowolnym języku używanym do kompilowania aplikacji internetowej lub aplikacji interfejsu API.
W sekcji Autoryzacja dołącz następujące właściwości:
{
"type": "Basic",
"username": "<username>",
"password": "<password>"
}
Właściwości | Wymagania | opis |
---|---|---|
type |
Tak | Typ uwierzytelniania, którego chcesz użyć. W przypadku uwierzytelniania podstawowego wartość musi mieć wartość Basic . |
username |
Tak | Nazwa użytkownika, której chcesz użyć do uwierzytelniania |
password |
Tak | Hasło, którego chcesz użyć do uwierzytelniania |
Uwierzytelnianie w usłudze Microsoft Entra za pomocą kodu
Domyślnie uwierzytelnianie firmy Microsoft Entra włączone w witrynie Azure Portal nie zapewnia szczegółowej autoryzacji. Na przykład to uwierzytelnianie blokuje interfejs API tylko dla określonej dzierżawy, a nie dla określonego użytkownika lub aplikacji.
Aby ograniczyć dostęp interfejsu API do aplikacji logiki za pomocą kodu, wyodrębnij nagłówek zawierający token internetowy JSON (JWT). Sprawdź tożsamość elementu wywołującego i odrzuć żądania, które nie są zgodne.