アクセスAAD保護Azure関数
7338 ワード
資源確保は本当に重要です.あなたがAPIや他のウェブサイトを作成し、公開インターネットに公開するときは、あなたのエンドポイントを保護する必要があります.
IP制限はエンドポイントにアクセスできるクライアントを制限する一般的な方法です.しかし、クライアントがどこからでもあなたのサービスにアクセスするので、最近クライアントのすべての公共のIPを管理するのは、より難しくなっています.
マイクロソフトAzureで、Azure Active Directory(AAD)は、OAuth 2.0、OpenID Connect、SAMLなどを通してあなたのAPI/ウェブを保護します.あなたがAzureウェブApps/Azure機能のようなPAASを使うとき、ちょうど特徴を回すことはあなたにあなたの終点を保護させました.
ApacheでAADでAPIを保護し、アクセスする方法を説明します.
Azure Active Directory(AAD)が何であるかについて、このポストは説明しません.それに興味があるなら、あなたはこれをチェックすることができます. Application and service principal objects in Azure Active Directory Azure Web AppsやAzure関数を作成していない場合は、最初にそれらを作成することをお勧めします. Quickstart: Create an ASP.NET Core web app in Azure Quickstart: Create a function in Azure using Visual Studio Code
まず最初に、APIをホストするAzureリソースを作成する必要があります.
Httptrigger関数を作成するQuickstart: Create a function in Azure using Visual Studio Code .
あなた自身のAPIを数分で公開できます.
Atureにhttptrigger関数を展開した後、curlコマンドから呼び出します.Postman またはHTTPリクエストを作成する他のツール.
認証レベルが設定されている場合
詳細についてはAzure Functions HTTP trigger .
1 .成功した郵便配達人要請
開発やステージング環境では、関数のアプリケーションを保護するためにファンクションキーを使用することができます.しかし、生産では、機能を呼び出すすべてのクライアントにキーを配布するときに確実に機能キーを管理することは困難です.
一度キーが漏れている場合は、すべてのアプリケーションの設定を変更する必要があります.
あなたのアプリケーションを確保し、認証/認証を管理するには、Azureアクティブディレクトリ(AAD)を使用することができます.
Aadは、各アプリケーションで一意のIDを割り当て、それぞれの認証が記録されます.
Azure Webアプリケーション/Azure機能では、AzureポータルまたはコマンドからAAD認証機能を有効にすることができます.
AAd AuthはAzure関数のLinux消費プランには利用できません.
参照Configure your App Service or Azure Functions app to use Azure AD login .
あなたの関数のアプリの機能を有効にした後
2 .機能をアプリケーションに不正な要求
AADの保護された関数のアプリにアクセスするためには、関数のアプリケーションのAADからのアクセストークンを取得する必要があります.
API呼び出しの場合は
Aadでクライアントアプリケーションを作成して、アプリケーションを認証する必要があります.
あなたが使うならばAzure CLI , 以下のようなテストのクライアントAADアプリケーションを作成することができます.
イチジク3 .ACLU CLI結果
関数のアプリケーションのアクセストークンを取得するには、Azureポータルからターゲットとしてコピー機能アプリAADのIDをコピーします.
あなたは[認証/承認]ブレードからチェックすることができます.
イチジク4 .機能アプリID
呼び出し
curlを使用する場合は、以下のコマンドを実行します.
機能アプリケーションを要求する前に、関数のアプリケーションのためのAADのアプリの設定を変更する必要があります.チェック
機能アプリと要求
これで、関数authレベルを0から設定できます
今、あなたはAADでAPIを保護します.しかし、まだAADクライアントアプリケーションの資格情報を管理する必要があります.より安全な方法は、機能アプリが秘密なしでAzureサービスを認証するのを可能にするマネージアイデンティティを使用することです.
マネージIDが有効になっているWebアプリケーションや機能アプリケーションなどの特定のサービスでコードが実行されている場合、Azureは自動的に認証を管理します.
What are managed identities for Azure resources?
IP制限はエンドポイントにアクセスできるクライアントを制限する一般的な方法です.しかし、クライアントがどこからでもあなたのサービスにアクセスするので、最近クライアントのすべての公共のIPを管理するのは、より難しくなっています.
マイクロソフトAzureで、Azure Active Directory(AAD)は、OAuth 2.0、OpenID Connect、SAMLなどを通してあなたのAPI/ウェブを保護します.あなたがAzureウェブApps/Azure機能のようなPAASを使うとき、ちょうど特徴を回すことはあなたにあなたの終点を保護させました.
ApacheでAADでAPIを保護し、アクセスする方法を説明します.
必要条件
Azure Active Directory(AAD)が何であるかについて、このポストは説明しません.それに興味があるなら、あなたはこれをチェックすることができます.
Azure関数を作成する
まず最初に、APIをホストするAzureリソースを作成する必要があります.
Httptrigger関数を作成するQuickstart: Create a function in Azure using Visual Studio Code .
あなた自身のAPIを数分で公開できます.
Atureにhttptrigger関数を展開した後、curlコマンドから呼び出します.Postman またはHTTPリクエストを作成する他のツール.
認証レベルが設定されている場合
function
, 機能キーを使用してAPIを呼び出すことができますcode=xxxx
クエリパラメータまたはx-functions-key: xxxx
リクエストヘッダで.詳細についてはAzure Functions HTTP trigger .
1 .成功した郵便配達人要請
認証を有効にする
開発やステージング環境では、関数のアプリケーションを保護するためにファンクションキーを使用することができます.しかし、生産では、機能を呼び出すすべてのクライアントにキーを配布するときに確実に機能キーを管理することは困難です.
一度キーが漏れている場合は、すべてのアプリケーションの設定を変更する必要があります.
あなたのアプリケーションを確保し、認証/認証を管理するには、Azureアクティブディレクトリ(AAD)を使用することができます.
Aadは、各アプリケーションで一意のIDを割り当て、それぞれの認証が記録されます.
Azure Webアプリケーション/Azure機能では、AzureポータルまたはコマンドからAAD認証機能を有効にすることができます.
AAd AuthはAzure関数のLinux消費プランには利用できません.
参照Configure your App Service or Azure Functions app to use Azure AD login .
This feature is currently not available on Linux Consumption plan for Azure Functions
あなたの関数のアプリの機能を有効にした後
HTTP 401 unauthrized
AADがあなたの終点を保護するので.2 .機能をアプリケーションに不正な要求
認証トークン
AADの保護された関数のアプリにアクセスするためには、関数のアプリケーションのAADからのアクセストークンを取得する必要があります.
API呼び出しの場合は
Bearer
トークンAuthroization
ヘッダ.Aadでクライアントアプリケーションを作成して、アプリケーションを認証する必要があります.
あなたが使うならばAzure CLI , 以下のようなテストのクライアントAADアプリケーションを作成することができます.
az ad sp create-for-rbac -n "TestAuthClientApp"
結果をJSONとして出力します.ストアユアappId
and password
関数のアプリケーションを認証する.イチジク3 .ACLU CLI結果
関数のアプリケーションのアクセストークンを取得するには、Azureポータルからターゲットとしてコピー機能アプリAADのIDをコピーします.
あなたは[認証/承認]ブレードからチェックすることができます.
イチジク4 .機能アプリID
呼び出し
https://login.microsoftonline.com/<Your AAD Tenant ID>/oauth2/token
アクセストークンを取得するにはcurlを使用する場合は、以下のコマンドを実行します.
curl -X POST https://login.microsoftonline.com/<TENANT ID>/oauth2/token \
-F grant_type=client_credentials \
-F resource=<Web App CLIENT ID> \
-F client_id=<Client Application ID> \
-F client_secret=<SECRET>
機能アプリケーションを要求する前に、関数のアプリケーションのためのAADのアプリの設定を変更する必要があります.チェック
Access tokens
プログラムを得るaccess_token
明示的な付与の流れを伴う.トークンでリクエスト機能アプリ
機能アプリと要求
Authroization:Bearer xxxx
ヘッダー間の空白を必要とするヘッダーBearer
and token
その後、取得する必要がありますHTTP 200 OK
.これで、関数authレベルを0から設定できます
function
to anonymous
AADはAPIを保護するので.次のステップ
今、あなたはAADでAPIを保護します.しかし、まだAADクライアントアプリケーションの資格情報を管理する必要があります.より安全な方法は、機能アプリが秘密なしでAzureサービスを認証するのを可能にするマネージアイデンティティを使用することです.
マネージIDが有効になっているWebアプリケーションや機能アプリケーションなどの特定のサービスでコードが実行されている場合、Azureは自動的に認証を管理します.
What are managed identities for Azure resources?
アクセスAADは、管理されたアイデンティティとアプリケーションを保護
掛山・ 月29日・ 3分読む
Reference
この問題について(アクセスAAD保護Azure関数), 我々は、より多くの情報をここで見つけました https://dev.to/kemurayama/access-aad-protected-azure-web-apps-azure-functions-2oc1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol