共用方式為


數據 API 產生器中的 Azure 驗證

數據 API 產生器可讓開發人員定義驗證機制(識別提供者),他們希望 Data API 產生器用來驗證發出要求的人員。

驗證會委派給可發出存取令牌的支持識別提供者。 取得的存取令牌必須包含在數據 API 產生器的連入要求中。 然後,數據 API 產生器會驗證任何呈現的存取令牌,確保數據 API 產生器是令牌的預期物件。

支持的識別提供者組態選項如下:

  • StaticWebApps
  • JSON Web 令牌 (JWT)

在開發中 (AZ 登入)

在 Azure SQL Database 連接字串中使用 Authentication='Active Directory Default' 表示用戶端會使用 Azure Active Directory (AAD) 認證進行驗證。 確切的驗證方法是由環境所決定。 當開發人員執行 az login時,Azure CLI 會開啟瀏覽器視窗,提示使用者使用Microsoft帳戶或公司認證登入。 驗證之後,Azure CLI 會擷取並快取連結至 Azure Active Directory 身分識別的令牌。 接著,此令牌會用來驗證對 Azure 服務的要求,而不需要連接字串中的認證。

"data-source": {
    "connection-string": "...;Authentication='Active Directory Default';"
}

若要設定本機認證,只需在安裝 Azure CLI之後使用 az login

az login

Azure Static Web Apps 驗證 (EasyAuth)

數據 API 產生器預期 Azure Static Web Apps 驗證 (EasyAuth) 會驗證要求,並在使用 選項 StaticWebApps時,在 X-MS-CLIENT-PRINCIPAL HTTP 標頭中提供已驗證使用者的元數據。 靜態 Web Apps 所提供的已驗證使用者元數據可以在下列檔案中參考:存取使用者資訊

若要使用 StaticWebApps 提供者,您必須在組態檔的 runtime.host 區段中指定下列組態:

"authentication": {
    "provider": "StaticWebApps"
}

當您打算在 Azure 中執行數據 API 產生器、使用 App Service 裝載並在容器中執行時,使用 StaticWebApps 提供者很有用:在 Azure App Service中執行自定義容器。

JWT

若要使用 JWT 提供者,您必須配置 [runtime.host.authentication] 區段,提供所需的信息,以驗證收到的 JWT 令牌。

"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。 如需詳細資訊,請參閱 授權使用者角色。