對應用程式授與全租用戶的管理員同意

在本文中,您將瞭解如何將全租用戶系統管理員同意授與 Microsoft Entra 識別碼中的應用程式。 若要瞭解如何設定個別使用者同意設定,請參閱 設定使用者同意應用程式的方式。

當您將全租用戶系統管理員同意授與應用程式時,您會將代表整個組織要求的許可權授與應用程式存取權。 代表組織授與系統管理員同意是一項敏感性作業、可能允許應用程式的發行者存取貴組織數據的重要部分,或執行高度特殊許可權作業的許可權。 這類作業的範例可能是角色管理、所有信箱或所有網站的完整存取權,以及完整用戶模擬。 因此,您必須在授與同意之前,仔細檢閱應用程式所要求的許可權。

根據預設,除非另有限制,否則將全租用戶系統管理員同意授與應用程式,可讓所有使用者存取應用程式。 若要限制哪些使用者可以登入應用程式,請將應用程式設定為 要求使用者指派 ,然後將 使用者或群組指派給應用程式

重要

授與全租用戶系統管理員同意,可能會撤銷已為該應用程式授與整個租用戶的許可權。 使用者已代表自己授與的許可權不會受到影響。

必要條件

若要授與全租用戶的管理員同意,您必須以有權代表組織同意的使用者身分登入。

若要授與全租用戶的系統管理員同意,您需要:

  • 具有下列其中一個角色的 Microsoft Entra 用戶帳戶:

    • 全域管理員或特殊權限角色管理員,用於為要求任何 API 任何權限的應用程式授與同意。
    • Cloud Application 管理員 istrator 或 Application 管理員 istrator,用於授與要求任何 API 任何許可權的應用程式同意,但 Microsoft Graph 應用程式角色除外(應用程式許可權)。
    • 自定義目錄角色,其中包含 將許可權授與應用程式的許可權,以取得應用程式所需的許可權。

如果您的租使用者中已佈建應用程式,您可以透過 [企業應用程式 ] 窗格授與全租用戶的系統管理員同意。 例如,如果至少一個使用者已對應用程式同意,則應用程式可佈建在您的租用戶中。 如需詳細資訊,請參閱 如何將應用程式新增至 Microsoft Entra ID 和原因。

提示

本文中的步驟可能會根據您從開始的入口網站稍有不同。

若要將全租用戶系統管理員同意授與企業應用程式窗格中所列 的應用程式

  1. 以至少雲端應用程式 管理員 istrator 身分登入 Microsoft Entra 系統管理中心
  2. 流覽至 [身分>識別應用程式>企業應用程式>] [所有應用程式]。
  3. 在搜尋方塊中輸入現有應用程式的名稱,然後從搜尋結果中選取應用程式。
  4. 選取 [安全性] 底下的 [許可權]。 Screenshot shows how to grant tenant-wide admin consent.
  5. 仔細檢閱應用程式所需的許可權。 如果您同意應用程式所需的許可權,請選取 [ 授與管理員同意]。

您可以授 應用程式註冊 與全租用戶系統管理員同意,從 Microsoft Entra 系統管理中心的 Microsoft Entra 系統管理中心,為您的組織開發並直接在 Microsoft Entra 租用戶中註冊的應用程式。

若要從 應用程式註冊 授與全租用戶的系統管理員同意:

  1. 在 Microsoft Entra 系統管理中心上,流覽至 [身分>識別應用程式> 應用程式註冊> 所有應用程式]。
  2. 在搜尋方塊中輸入現有應用程式的名稱,然後從搜尋結果中選取應用程式。
  3. 選取 [管理] 底下的 [API 許可權]。
  4. 仔細檢閱應用程式所需的許可權。 如果您同意,請選取 [ 授與管理員同意]。

當您使用上一節所述的任一種方法授與全租使用者管理員同意時,會從 Microsoft Entra 系統管理中心開啟視窗,以提示全租使用者管理員同意。 如果您知道應用程式的用戶端識別碼 (也稱為應用程式識別碼),您可以建立相同的 URL 來授與全租用戶的管理員同意。

全租用戶管理員同意 URL 會遵循下列格式:

https://login.microsoftonline.com/{organization}/adminconsent?client_id={client-id}

其中:

  • {client-id} 是應用程式的用戶端識別碼 (也稱為應用程式識別碼)。
  • {organization} 是租用戶標識碼或任何您想要同意應用程式之租使用者的已驗證功能變數名稱。 您可以使用值 organizations,讓同意在您登入之使用者的主租用戶中發生。

一如往常,請先仔細檢閱應用程式所要求的權限,再授與同意。

如需建構全租使用者管理員同意 URL 的詳細資訊,請參閱 Microsoft 身分識別平台 管理員 同意

在本節中,您會將委派的許可權授與您的應用程式。 委派的許可權是您應用程式必須代表登入使用者存取 API 的許可權。 許可權是由資源 API 所定義,並授與您企業應用程式,也就是用戶端應用程式。 此同意會代表所有使用者授與。

在下列範例中,資源 API 是對象識別碼 7ea9e944-71ce-443d-811c-71e8047b557a的 Microsoft Graph。 Microsoft Graph API 會定義委派的權限和 User.Read.AllGroup.Read.All。 consentType 是 AllPrincipals,表示您代表租使用者中的所有使用者同意。 用戶端應用程式的物件識別碼為 b0d9b9e3-0ecf-4bfd-8dab-9273dd055a941

警告

請務必小心! 以程序設計方式授與的許可權不受檢閱或確認。 他們立即生效。

  1. 連線 至 Microsoft Graph PowerShell 並至少登入雲端應用程式 管理員 istrator

    Connect-MgGraph -Scopes "Application.ReadWrite.All", "DelegatedPermissionGrant.ReadWrite.All"
    
  2. 擷取您租使用者應用程式中 Microsoft graph (資源應用程式) 所定義的所有委派許可權。 識別您需要授與用戶端應用程式的委派許可權。 在此範例中,委派許可權為 User.Read.AllGroup.Read.All

    Get-MgServicePrincipal -Filter "displayName eq 'Microsoft Graph'" -Property Oauth2PermissionScopes | Select -ExpandProperty Oauth2PermissionScopes | fl
    
  3. 執行下列要求,將委派的許可權授與用戶端應用程式。

    $params = @{
    
    "ClientId" = "b0d9b9e3-0ecf-4bfd-8dab-9273dd055a94"
    "ConsentType" = "AllPrincipals"
    "ResourceId" = "7ea9e944-71ce-443d-811c-71e8047b557a"
    "Scope" = "User.Read.All Group.Read.All"
    }
    
    New-MgOauth2PermissionGrant -BodyParameter $params | 
    Format-List Id, ClientId, ConsentType, ResourceId, Scope
    
  4. 執行下列要求,確認您已授與租使用者廣泛的系統管理員同意。

 Get-MgOauth2PermissionGrant -Filter "clientId eq 'b0d9b9e3-0ecf-4bfd-8dab-9273dd055a94' and consentType eq 'AllPrincipals'" 

在本節中,您會將應用程式許可權授與企業應用程式。 應用程式許可權是應用程式存取資源 API 所需的許可權。 許可權是由資源 API 所定義,並授與您企業應用程式,也就是主體應用程式。 將資源 API 的存取權授與應用程式之後,它會以背景服務或精靈的形式執行,而不需要登入的使用者。 應用程式許可權也稱為應用程式角色。

在下列範例中,您會將標識符的資源 API 7ea9e944-71ce-443d-811c-71e8047b557a公開的應用程式角色(應用程式許可權)授與 Microsoft Graph 應用程式(標識符的b0d9b9e3-0ecf-4bfd-8dab-9273dd055a94主體)df021288-bdef-4463-88db-98f22de89214應用程式角色(應用程式許可權)。

  1. 連線 至 Microsoft Graph PowerShell,並以 登入身分登入全域 管理員 istrator

    Connect-MgGraph -Scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
    
  2. 擷取您租使用者中 Microsoft Graph 所定義的應用程式角色。 識別您需要授與用戶端應用程式的應用程式角色。 在這裡範例中,應用程式角色識別碼為 df021288-bdef-4463-88db-98f22de89214

    Get-MgServicePrincipal -Filter "displayName eq 'Microsoft Graph'" -Property AppRoles | Select -ExpandProperty appRoles |fl
    
  3. 執行下列要求,將應用程式許可權(應用程式角色)授與主體應用程式。

 $params = @{
  "PrincipalId" ="b0d9b9e3-0ecf-4bfd-8dab-9273dd055a94"
  "ResourceId" = "7ea9e944-71ce-443d-811c-71e8047b557a"
  "AppRoleId" = "df021288-bdef-4463-88db-98f22de89214"
}

New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId 'b0d9b9e3-0ecf-4bfd-8dab-9273dd055a94' -BodyParameter $params | 
  Format-List Id, AppRoleId, CreatedDateTime, PrincipalDisplayName, PrincipalId, PrincipalType, ResourceDisplayName

使用 Graph 總管 來授與委派和應用程式許可權。

在本節中,您會將委派的許可權授與您的應用程式。 委派的許可權是您應用程式必須代表登入使用者存取 API 的許可權。 許可權是由資源 API 所定義,並授與您企業應用程式,也就是用戶端應用程式。 此同意會代表所有使用者授與。

您必須至少以雲端應用程式 管理員 istrator 身分登入。

在下列範例中,資源 API 是對象識別碼 7ea9e944-71ce-443d-811c-71e8047b557a的 Microsoft Graph。 Microsoft Graph API 會定義委派的權限和 User.Read.AllGroup.Read.All。 consentType 是 AllPrincipals,表示您代表租使用者中的所有使用者同意。 用戶端應用程式的物件識別碼為 b0d9b9e3-0ecf-4bfd-8dab-9273dd055a941

警告

請務必小心! 以程序設計方式授與的許可權不受檢閱或確認。 他們立即生效。

  1. 擷取您租使用者應用程式中 Microsoft graph (資源應用程式) 所定義的所有委派許可權。 識別您需要授與用戶端應用程式的委派許可權。 在此範例中,委派許可權為 User.Read.AllGroup.Read.All

    GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq 'Microsoft Graph'&$select=id,displayName,appId,oauth2PermissionScopes
    
  2. 執行下列要求,將委派的許可權授與用戶端應用程式。

    POST https://graph.microsoft.com/v1.0/oauth2PermissionGrants
    
    Request body
    {
       "clientId": "b0d9b9e3-0ecf-4bfd-8dab-9273dd055a94",
       "consentType": "AllPrincipals",
       "resourceId": "7ea9e944-71ce-443d-811c-71e8047b557a",
       "scope": "User.Read.All Group.Read.All"
    }
    
  3. 執行下列要求,確認您已授與租使用者廣泛的系統管理員同意。

    GET https://graph.microsoft.com/v1.0/oauth2PermissionGrants?$filter=clientId eq 'b0d9b9e3-0ecf-4bfd-8dab-9273dd055a94' and consentType eq 'AllPrincipals'
    

在本節中,您會將應用程式許可權授與企業應用程式。 應用程式許可權是應用程式存取資源 API 所需的許可權。 許可權是由資源 API 所定義,並授與您企業應用程式,也就是主體應用程式。 將資源 API 的存取權授與應用程式之後,它會以背景服務或精靈的形式執行,而不需要登入的使用者。 應用程式許可權也稱為應用程式角色。

在下列範例中,您會將標識符的資源企業應用程式公開的應用程式角色(應用程式許可權)授與應用程式 Microsoft Graph(標識符的b0d9b9e3-0ecf-4bfd-8dab-9273dd055a947ea9e944-71ce-443d-811c-71e8047b557a主體)df021288-bdef-4463-88db-98f22de89214應用程式角色(應用程式許可權)。

您必須以 Global 管理員 istrator 簽署

  1. 擷取您租使用者中 Microsoft Graph 所定義的應用程式角色。 識別您需要授與用戶端應用程式的應用程式角色。 在此範例中,應用程式角色識別碼為 df021288-bdef-4463-88db-98f22de89214

    GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq 'Microsoft Graph'&$select=id,displayName,appId,appRoles
    
  2. 執行下列要求,將應用程式許可權(應用程式角色)授與主體應用程式。

    POST https://graph.microsoft.com/v1.0/servicePrincipals/7ea9e944-71ce-443d-811c-71e8047b557a/appRoleAssignedTo
    
    Request body
    
    {
       "principalId": "b0d9b9e3-0ecf-4bfd-8dab-9273dd055a94",
       "resourceId": "7ea9e944-71ce-443d-811c-71e8047b557a",
       "appRoleId": "df021288-bdef-4463-88db-98f22de89214"
    }
    

下一步