簡體   English   中英

如何在不需要管理員同意的情況下在兩個應用程序之間授予 Azure AD 應用程序權限?

[英]How to grant Azure AD application permissions between two apps without requiring admin consent?

我有兩個單租戶 Azure AD 應用程序 A 和 B。應用程序 A 代表服務,應用程序 B 代表客戶端。 我試圖允許 B 使用使用 AAD OAuth2 客戶端憑據流獲取的 AAD JWT 令牌訪問 A。 我在清單中為 A 定義了一個appRole ,並通過App registrations -> API Permissions -> Add a permission -> My APIs -> A -> Application permissions將其添加為 B 的App registrations -> API Permissions -> Add a permission -> My APIs -> A -> Application permissions

即使我是這兩個應用程序的所有者,這也需要管理員同意。

有沒有辦法在不需要管理員干預的情況下授予此權限,因為我擁有暴露應用程序角色的應用程序? 在授予訪問可能包含敏感用戶數據的目錄的權限時,我了解管理員同意要求,但這里純粹是我擁有的兩個應用程序之間的權限。

應用 A 的清單中的應用角色如下:

{
    "allowedMemberTypes": [
        "User",
        "Application"
    ],
    "description": "...",
    "displayName": "MyPermission",
    "id": "00000000-aaaa-bbbb-cccc-ddddddddddddd",
    "isEnabled": true,
    "lang": null,
    "origin": "Application",
    "value": "MyPermission"
}

不幸的是,這是不可能的! 在向客戶端應用程序授予應用程序權限時,您必須授予管理員同意 否則,當您使用訪問令牌訪問api應用程序時,它會提示您“權限不足”。

您可以看到,當您向客戶端應用程序授予自定義應用程序權限時, Admin consent required顯示為Yes ,表明這是 AAD 強制執行的,您無法繞過此步驟。

在此處輸入圖片說明

另外,還可以通過解析token來查看。 只有 admin 同意申請權限,token 中才會有roles聲明,否則不會顯示聲明。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM