在本文中,您將瞭解如何在 Microsoft Entra ID 中,將全租用戶的管理員同意授與應用程式。 若要瞭解如何設定個別使用者同意設定,請參閱 設定使用者同意應用程式的方式。
當您對應用程式授予租用戶層級的管理員同意時,您便是為整個組織授予應用程式對所要求權限的存取權。 代表貴組織授與管理員同意是具有安全性顧慮的作業,可能會允許應用程式的發行者存取組織資料的重要部分,或執行具有高度權限作業的權限。 這類作業的範例有可能是角色管理、所有信箱或網站的完整存取,以及完整使用者模擬。 因此,您需要仔細檢閱應用程式要求的權限,然後再授與同意。
根據預設,若對應用程式授與租戶範圍的管理員同意,除非另有其他限制,否則將允許所有使用者存取該應用程式。 若要限制哪些使用者可以登入應用程式,請將應用程式設定為 要求使用者指派 ,然後將 使用者或群組指派給應用程式。
重要
授與整個租用戶的管理員同意時,可能會撤銷已經針對該應用程式所授與整個租用戶的權限。 使用者已代表自己授與的權限不會受到影響。
必要條件
若要授與全租用戶的管理員同意,您必須以有權代表組織同意的使用者身分登入。
若要授與全租用戶管理員同意,您需要:
具有下列其中一個角色的 Microsoft Entra 使用者帳戶:
- 「特殊權限角色管理員」用於為要求任何 API 任何權限的應用程式授與同意。
- 雲端應用程式管理員或應用程式管理員,用於授與要求任何 API 任何許可權的應用程式同意,但 Microsoft Graph 應用程式角色 (應用程式許可權) 除外 。
- 自定義目錄角色,包括具有將 授予應用程式許可權的權限,以滿足應用程式所需的許可權。
在企業應用程式窗格中授與全租用戶的管理員同意
如果在您的租用戶中已設置應用程式,您可以透過 [ 企業應用程式 ] 窗格授予租用戶層級的系統管理員同意。 例如,如果至少有一位使用者同意該應用程式,則該應用程式可以在您的租戶中佈建。 如需詳細資訊,請參閱 如何將應用程式新增至 Microsoft Entra ID。
若要將全租用戶系統管理員同意授與 企業應用程式 窗格中所列的應用程式:
- 以至少雲端應用程式管理員身分登入 Microsoft Entra 系統管理中心。
- 流覽至 Entra ID>企業應用程式>所有應用程式。
- 在搜尋方塊中輸入現有應用程式的名稱,然後從搜尋結果中選取應用程式。
- 選取 [許可權] 在 [安全性] 底下。
- 仔細檢查應用程式所需的權限。 如果您同意應用程式所需的權限,請選取 [授與管理員同意]。
在應用程式註冊窗格中授與管理員同意
您可以在 Microsoft Entra 管理中心的 應用程式註冊中,為組織直接在 Microsoft Entra 租用戶中開發和註冊的應用程式授與整個租用戶的管理員同意。
若要從 應用程式註冊授與全租用戶的系統管理員同意:
- 在 Microsoft Entra 系統管理中心中,瀏覽至 Entra ID>應用程式註冊>所有應用程式。
- 在搜尋方塊中輸入現有應用程式的名稱,然後從搜尋結果中選取應用程式。
- 選取 API 許可權 在 管理 下。
- 仔細檢查應用程式所需的權限。 如果您同意,請選取 [授與管理員同意]。
建構用來授予租戶範圍管理員同意的 URL
使用前一章節所述的任一方法授與全租用戶的管理員同意時,系統會從Microsoft Entra 系統管理中心開啟一個視窗,提示您提供全租用戶的管理員同意。 如果您知道應用程式的用戶端識別碼 (也稱為應用程式識別碼),您可以建立相同的 URL 來授與全租用戶的管理員同意。
全租用戶管理員同意 URL 會遵循下列格式:
https://login.microsoftonline.com/{organization}/adminconsent?client_id={client-id}
哪裡:
-
{client-id}是應用程式的用戶端識別碼 (也稱為應用程式識別碼)。 -
{organization}是您想要授予應用程式同意的租用戶識別碼或其任何已驗證的網域名稱。 您可以使用值organizations,這將使您登入的使用者在其主要租用戶中授予同意。
一如往常,請先仔細檢閱應用程式所要求的權限,再授與同意。
如需建構全租用戶系統管理員同意 URL 的詳細資訊,請參閱 Microsoft 身分識別平臺上的管理員同意。
使用 Microsoft Graph PowerShell 授與委派權限的管理員同意
在本節中,您會將委派權限授與您的應用程式。 委派權限是您應用程式必須代表登入使用者存取 API 的權限。 權限是由資源 API 所定義,並授與您企業應用程式,也就是用戶端應用程式。 此同意會代表所有使用者授與。
在下列範例中,資源 API 是物件識別碼 aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 的 Microsoft Graph。 Microsoft Graph API 會定義委派的許可權、User.Read.All和 Group.Read.All。 consentType 是 AllPrincipals,表示您代表租戶中的所有使用者進行同意。 用戶端企業應用程式的物件識別碼為 aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb。
警告
請務必小心! 以程式設計方式授與的權限不需要檢閱或確認。 其會立即生效。
線上到 Microsoft Graph PowerShell,並至少以 雲端應用程式管理員身分登入。
Connect-MgGraph -Scopes "Application.ReadWrite.All", "DelegatedPermissionGrant.ReadWrite.All"擷取租用戶應用程式中 Microsoft Graph (資源應用程式) 所定義的所有委派權限。 識別您需要授與用戶端應用程式的委派權限。 在此範例中,委派權限為
User.Read.All和Group.Read.AllGet-MgServicePrincipal -Filter "displayName eq 'Microsoft Graph'" -Property Oauth2PermissionScopes | Select -ExpandProperty Oauth2PermissionScopes | fl執行下列要求,將委派的權限授與用戶端企業應用程式。
$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執行下列要求以確認您已授與全租用戶管理員同意。
Get-MgOauth2PermissionGrant -Filter "clientId eq '00001111-aaaa-2222-bbbb-3333cccc4444' and consentType eq 'AllPrincipals'"
使用 Microsoft Graph PowerShell 授與應用程式權限的管理員同意
在本節中,您會將應用程式權限授與企業應用程式。 應用程式權限是應用程式存取資源 API 所需的權限。 許可權是由資源 API 所定義,並授與您企業應用程式,也就是主體應用程式。 將資源 API 的存取權授與應用程式之後,它會以背景服務或精靈的形式執行,而不需要登入的使用者。 應用程式權限也稱為應用程式角色。
在下列範例中,您會為 Microsoft Graph 應用程式 (識別碼 aaaaaaaa-bbbb-cccc-1111-222222222222 的主體) 授與由資源 API df021288-bdef-4463-88db-98f22de89214 公開的識別碼 11112222-bbbb-3333-cccc-4444dddd5555 的應用程式角色 (應用程式權限)。
連線到 Microsoft Graph PowerShell,並以至少 特權角色管理員身分登入。
Connect-MgGraph -Scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"擷取您的租用戶中 Microsoft Graph 所定義的應用程式角色。 識別您需要授與給用戶端企業應用程式的應用程式角色。 在此範例中,應用程式角色識別碼為
df021288-bdef-4463-88db-98f22de89214。Get-MgServicePrincipal -Filter "displayName eq 'Microsoft Graph'" -Property AppRoles | Select -ExpandProperty appRoles |fl執行下列要求,將應用程式權限 (應用程式角色) 授與主體應用程式。
$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 Explorer 來授予委派和應用權限。
使用 Microsoft Graph API 授與委派權限的管理員同意
在本節中,您會將委派權限授與您的應用程式。 委派權限是您應用程式必須代表登入使用者存取 API 的權限。 權限是由資源 API 所定義,並授與您企業應用程式,也就是用戶端應用程式。 此同意會代表所有使用者授與。
您必須至少以 雲端應用程式管理員身分登入。
在下列範例中,資源 API 是物件識別碼 aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 的 Microsoft Graph。 Microsoft Graph API 會定義委派的權限 User.Read.All 和 Group.Read.All。 consentType 是 AllPrincipals,表示您代表租戶中的所有使用者進行同意。 用戶端企業應用程式的物件識別碼為 aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb。
警告
請務必小心! 以程式設計方式授與的權限不受限於檢閱或確認。 其會立即生效。
擷取租用戶應用程式中 Microsoft Graph (資源應用程式) 所定義的所有委派權限。 識別您需要授與用戶端應用程式的委派權限。 在此範例中,委派權限為
User.Read.All和Group.Read.AllGET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq 'Microsoft Graph'&$select=id,displayName,appId,oauth2PermissionScopes執行下列要求,將委派的權限授與用戶端企業應用程式。
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" }執行下列要求以確認您已授與全租用戶管理員同意。
GET https://graph.microsoft.com/v1.0/oauth2PermissionGrants?$filter=clientId eq '00001111-aaaa-2222-bbbb-3333cccc4444' and consentType eq 'AllPrincipals'
使用 Microsoft Graph API 授予應用程式權限的管理員同意權限
在本節中,您會將應用程式權限授與企業應用程式。 應用程式權限是應用程式存取資源 API 所需的權限。 許可權是由資源 API 所定義,並授與您企業應用程式,也就是主體應用程式。 將資源 API 的存取權授與應用程式之後,它會以背景服務或精靈的形式執行,而不需要登入的使用者。 應用程式權限也稱為應用程式角色。
在下列範例中,您會將應用程式角色 (應用程式權限),識別碼 00001111-aaaa-2222-bbbb-3333cccc4444,授予應用程式 Microsoft Graph (識別碼 df021288-bdef-4463-88db-98f22de89214 的主體),此角色由識別碼 11112222-bbbb-3333-cccc-4444dddd5555 的資源企業應用程式公開。
您必須至少以 特權角色管理員 身份登入。
擷取您的租用戶中 Microsoft Graph 所定義的應用程式角色。 識別您需要授與給用戶端企業應用程式的應用程式角色。 在此範例中,應用程式角色識別碼為
df021288-bdef-4463-88db-98f22de89214GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq 'Microsoft Graph'&$select=id,displayName,appId,appRoles執行下列要求,將應用程式權限 (應用程式角色) 授與主體應用程式。
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" }