データ API ビルダーを使用すると、開発者は、要求を行っているユーザーを認証するために Data API ビルダーが使用する認証メカニズム (ID プロバイダー) を定義できます。
認証は、アクセス トークンを発行できるサポートされている ID プロバイダーに委任されます。 取得したアクセス トークンは、Data API ビルダーへの受信要求に含める必要があります。 データ API ビルダーは、提示されたアクセス トークンを検証し、データ API ビルダーがトークンの対象ユーザーであることを確認します。
サポートされている ID プロバイダーの構成オプションは次のとおりです。
- StaticWebApps
- JSON Web トークン (JWT)
開発中 (AZ ログイン)
Azure SQL Database 接続文字列で Authentication='Active Directory Default'
を使用すると、クライアントは Microsoft Entra 資格情報を使用して認証されます。 正確な認証方法は、環境によって決まります。 開発者が az login
を実行すると、Azure CLI によってブラウザー ウィンドウが開き、ユーザーは Microsoft アカウントまたは会社の資格情報でサインインするように求められます。 認証されると、Azure CLI は Microsoft Entra ID にリンクされたトークンを取得してキャッシュします。 このトークンは、接続文字列で資格情報を必要とせずに Azure サービスへの要求を認証するために使用されます。
"data-source": {
"connection-string": "...;Authentication='Active Directory Default';"
}
ローカル資格情報を設定するには、az login
をインストールした後、 を使用します。
az login
Azure Static Web Apps 認証 (EasyAuth)
データ API ビルダーでは、Azure Static Web Apps 認証 (EasyAuth) が要求を認証し、オプション X-MS-CLIENT-PRINCIPAL
を使用するときに、認証されたユーザーに関するメタデータを StaticWebApps
HTTP ヘッダーに提供することを想定しています。 Static Web Apps によって提供される認証されたユーザー メタデータは、次のドキュメントで参照できます。ユーザー情報へのアクセス。
StaticWebApps
プロバイダーを使用するには、構成ファイルの runtime.host
セクションで次の構成を指定する必要があります。
"authentication": {
"provider": "StaticWebApps"
}
StaticWebApps
プロバイダーの使用は、Azure でデータ API ビルダーを実行し、App Service を使用してホストし、コンテナーで実行する場合に便利です。Azure App Serviceでカスタム コンテナーを実行します。
JWT
JWT プロバイダーを使用するには、受信した JWT トークンを確認するために必要な情報を指定して、runtime.host.authentication
セクションを構成する必要があります。
"authentication": {
"provider": "AzureAD",
"jwt": {
"audience": "<APP_ID>",
"issuer": "https://login.microsoftonline.com/<AZURE_AD_TENANT_ID>/v2.0"
}
}
ロールの選択
使用可能なオプションのいずれかを使用して要求が認証されると、トークンで定義されているロールを使用して、要求 承認 アクセス許可規則がどのように評価されるかを判断できます。 ユーザー ロールが使用を要求されていない限り、認証された要求は authenticated
システム ロールに自動的に割り当てられます。 詳細については、権限 参照してください。
匿名要求
認証されずに要求を行うこともできます。 このような場合、要求は自動的に anonymous
システム ロールに割り当てられ、適切に されます。
X-MS-API-ROLE 要求ヘッダー
データ API ビルダーでは、カスタム ロールを使用して要求を承認するためにヘッダー X-MS-API-ROLE
が必要です。
X-MS-API-ROLE
の値は、トークンで指定されたロールと一致する必要があります。 たとえば、トークンに Sample.Role ロールがある場合、X-MS-API-ROLE も Sample.Role する必要があります。 詳細については、承認ユーザー ロール を参照してください。