共用方式為


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

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

當您對應用程式授與整個租用戶的管理員同意時,您會代表整個組織對所要求的權限提供應用程式存取權。 代表貴組織授與管理員同意是具有安全性顧慮的作業,可能會允許應用程式的發行者存取組織資料的重要部分,或執行具有高度權限作業的權限。 這類作業的範例有可能是角色管理、所有信箱或網站的完整存取,以及完整使用者模擬。 因此,您需要仔細檢閱應用程式要求的權限,然後再授與同意。

根據預設,除非另有限制,否則對應用程式授與整個租用戶的管理員同意會允許所有使用者存取應用程式。 若要限制哪些使用者可以登入應用程式,請將應用程式設為需要使用者指派,然後將使用者或群組指派給應用程式

重要

授與整個租用戶的管理員同意時,可能會撤銷已經針對該應用程式所授與整個租用戶的權限。 使用者已代表自己授與的權限不會受到影響。

必要條件

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

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

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

    • 「特殊權限角色管理員」用於為要求任何 API 任何權限的應用程式授與同意。
    • 「雲端應用程式管理員」或「應用程式管理員」,用於為要求任何 API 的任何權限的應用程式授與同意,但 Microsoft Graph 應用程式角色 (應用程式權限) 除外
    • 自訂目錄角色,其包含的權限可針對應用程式所需的權限授與應用程式權限

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

提示

根據您開始使用的不同入口網站,本文中的步驟可能略有變化。

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

  1. 以至少 雲端應用程式系統管理員 的身分登入 Microsoft Entra 系統管理中心
  2. 瀏覽至 [身分識別] > [應用程式] > [企業應用程式] > [所有應用程式]
  3. 在搜尋方塊中輸入現有應用程式的名稱,然後從搜尋結果中選取應用程式。
  4. [安全性] 下,選取 [權限]顯示如何授與整個租用戶管理員同意的螢幕擷取畫面。
  5. 仔細檢查應用程式所需的權限。 如果您同意應用程式所需的權限,請選取 [授與管理員同意]

針對您組織開發的應用程式,或直接在您的 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 是物件識別碼 aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 的 Microsoft Graph。 Microsoft Graph API 會定義委派的權限 User.Read.AllGroup.Read.All。 consentType 是 AllPrincipals,表示您代表租用戶中的所有使用者同意。 用戶端企業應用程式的物件識別碼為 aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb

警告

請務必小心! 以程式設計方式授與的權限不受限於檢閱或確認。 其會立即生效。

  1. 連線到 Microsoft Graph PowerShell,並至少以雲端應用程式管理員的身分登入。

    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" = "00001111-aaaa-2222-bbbb-3333cccc4444"
    "ConsentType" = "AllPrincipals"
    "ResourceId" = "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1"
    "Scope" = "User.Read.All Group.Read.All"
    }
    
    New-MgOauth2PermissionGrant -BodyParameter $params | 
    Format-List Id, ClientId, ConsentType, ResourceId, Scope
    
  4. 執行下列要求,確認您已獲授與全租用戶的管理員同意。

 Get-MgOauth2PermissionGrant -Filter "clientId eq '00001111-aaaa-2222-bbbb-3333cccc4444' and consentType eq 'AllPrincipals'" 

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

在下列範例中,您會為 Microsoft Graph 應用程式 (識別碼 aaaaaaaa-bbbb-cccc-1111-222222222222 的主體) 授與由資源 API 11112222-bbbb-3333-cccc-4444dddd5555 公開的識別碼 df021288-bdef-4463-88db-98f22de89214 的應用程式角色 (應用程式權限)。

  1. 連線到 Microsoft Graph PowerShell,並至少以特殊權限角色管理員 (部分機器翻譯) 身分登入。

    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" ="aaaaaaaa-bbbb-cccc-1111-222222222222"
  "ResourceId" = "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1"
  "AppRoleId" = "df021288-bdef-4463-88db-98f22de89214"
}

New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId 'aaaaaaaa-bbbb-cccc-1111-222222222222' -BodyParameter $params | 
  Format-List Id, AppRoleId, CreatedDateTime, PrincipalDisplayName, PrincipalId, PrincipalType, ResourceDisplayName

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

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

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

在下列範例中,資源 API 是物件識別碼 aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 的 Microsoft Graph。 Microsoft Graph API 會定義委派的權限 User.Read.AllGroup.Read.All。 consentType 是 AllPrincipals,表示您代表租用戶中的所有使用者同意。 用戶端企業應用程式的物件識別碼為 aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb

警告

請務必小心! 以程式設計方式授與的權限不受限於檢閱或確認。 其會立即生效。

  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": "00001111-aaaa-2222-bbbb-3333cccc4444",
       "consentType": "AllPrincipals",
       "resourceId": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
       "scope": "User.Read.All Group.Read.All"
    }
    
  3. 執行下列要求,確認您已獲授與全租用戶的管理員同意。

    GET https://graph.microsoft.com/v1.0/oauth2PermissionGrants?$filter=clientId eq '00001111-aaaa-2222-bbbb-3333cccc4444' and consentType eq 'AllPrincipals'
    

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

在下列範例中,您會授予應用程式,為 Microsoft Graph (識別碼 00001111-aaaa-2222-bbbb-3333cccc4444 的主體) 授與由資源企業應用程式識別碼 11112222-bbbb-3333-cccc-4444dddd5555 公開的識別碼 df021288-bdef-4463-88db-98f22de89214 的應用程式角色 (應用程式權限)。

您必須至少以特殊權限角色管理員身分登入。

  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/11112222-bbbb-3333-cccc-4444dddd5555/appRoleAssignedTo
    
    Request body
    
    {
       "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
       "resourceId": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
       "appRoleId": "df021288-bdef-4463-88db-98f22de89214"
    }
    

下一步